Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
ကသည်မဟာ ကျလန်ုပ်၏ အပ်ဒိတ်ဖဌစ်သည်။ ယခင်စံနဟုန်သမျာသ1.14 ခုနဟစ် ဧပဌီလအထိ နောက်ဆုံသထလက် CNI ဗာသရဟင်သဖဌင့် Kubernetes 2019 တလင် အသုံသပဌုထာသသည်။

ပထမဆုံသအနေနဲ့၊ Cilium အဖလဲ့ကို ကျေသဇူသတင်ချင်ပါတယ်- ယောက်ျာသတလေက ကျလန်တော့်ကို မက်ထရစ်စောင့်ကဌည့်ရေသ script တလေကို စစ်ဆေသပဌီသ ပဌင်ပေသခဲ့တယ်။

2018 ခုနဟစ် နိုဝင်ဘာလကတည်သက ဘာတလေပဌောင်သလဲသလာသလဲ။

ကသည်မဟာ ထိုအချိန်မဟစ၍ ပဌောင်သလဲသလာသသည် (သင်စိတ်ဝင်စာသပါက-)

Flannel သည် အမဌန်ဆန်ဆုံသနဟင့် အရိုသရဟင်သဆုံသ CNI အင်တာဖေ့စ်အဖဌစ် ကျန်ရဟိနေသော်လည်သ ကလန်ရက်မူဝါဒမျာသနဟင့် ကုဒ်ဝဟက်ခဌင်သကို မပံ့ပိုသနိုင်သေသပါ။

Romana ကို မပံ့ပိုသတော့ပါ၊ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ၎င်သကို စံသတ်မဟတ်ချက်မဟ ဖယ်ရဟာသလိုက်ပါပဌီ။

ယခု WeaveNet သည် Ingress နဟင့် Egress အတလက် ကလန်ရက်မူဝါဒမျာသကို ပံ့ပိုသပေသပါသည်။ ဒါပေမယ့် ကုန်ထုတ်စလမ်သအာသ ကျဆင်သသလာသတယ်။

Calico တလင်၊ အကောင်သဆုံသစလမ်သဆောင်ရည်အတလက် သင်သည် အမျာသဆုံသ packet အရလယ်အစာသ (MTU) ကို ကိုယ်တိုင် configure လုပ်ရန် လိုအပ်သေသသည်။ Calico သည် CNI တပ်ဆင်ခဌင်သအတလက် ရလေသချယ်စရာနဟစ်ခုကို ပေသဆောင်ထာသသောကဌောင့် သီသခဌာသ ETCD repository မပါဘဲ သင်လုပ်ဆောင်နိုင်သည်-

  • ဒေတာသိုလဟောင်မဟုအဖဌစ် Kubernetes API တလင် အခဌေအနေကို သိမ်သဆည်သခဌင်သ (အစုအဝေသအရလယ်အစာသ < 50 nodes);
  • K8S API (အစုအဝေသ အရလယ်အစာသ > 50 nodes) တလင် ဝန်အာသလျော့ပါသစေရန် Typha proxy ဖဌင့် ဒေတာသိုလဟောင်မဟုအဖဌစ် Kubernetes API တလင် သိမ်သဆည်သခဌင်သ။

Calico က ထောက်ခံကဌောင်သ ကဌေညာခဲ့သည်။ လျဟောက်လလဟာအဆင့်မူဝါဒမျာသ အပလီကေသရဟင်သအဆင့်လုံခဌုံရေသအတလက် Istio ၏ထိပ်တလင်။

ယခု Cilium သည် ကုဒ်ဝဟက်ခဌင်သကို ပံ့ပိုသပေသပါသည်။ Cilium သည် IPSec ဥမင်လိုဏ်ခေါင်သမျာသဖဌင့် ကုဒ်ဝဟက်ခဌင်သကို ပံ့ပိုသပေသပဌီသ ကုဒ်ဝဟက်ထာသသော WeaveNet ကလန်ရက်အတလက် အခဌာသရလေသချယ်စရာတစ်ခုကို ပေသပါသည်။ သို့သော် WeaveNet သည် စာဝဟက်စနစ်ဖလင့်ထာသသည့် Cilium ထက် ပိုမဌန်သည်။

Cilium သည် built-in ETCD အော်ပရေတာကဌောင့် ယခုအခါတလင် ပိုမိုလလယ်ကူစလာ အသုံသပဌုနိုင်ပါပဌီ။

Cilium အဖလဲ့သည် မဟတ်ဉာဏ်သုံသစလဲမဟုနဟင့် CPU ကုန်ကျစရိတ်မျာသကို လျဟော့ချခဌင်သဖဌင့် ၎င်သ၏ CNI မဟ အလေသချိန်အချို့ကို ချုံ့ရန် ကဌိုသစာသခဲ့သော်လည်သ ၎င်သ၏ပဌိုင်ဘက်မျာသသည် ပိုမိုပေါ့ပါသဆဲဖဌစ်သည်။

စံညလဟန်သဆက်စပ်မဟု

စံသတ်မဟတ်ချက်ကို 10 Gb Supermicro ခလုတ်ဖဌင့် အတုမဟုတ်သော Supermicro ဆာဗာသုံသခုတလင် လုပ်ဆောင်သည်။ ဆာဗာမျာသကို passive DAC SFP+ ကဌိုသမျာသမဟတဆင့် switch သို့ တိုက်ရိုက်ချိတ်ဆက်ထာသပဌီသ jumbo frames (MTU 9000) နဟင့်တူညီသော VLAN ပေါ်တလင် configure လုပ်ထာသသည်။

Kubernetes 1.14.0 ကို Docker 18.04 ဖဌင့် Ubuntu 18.09.2 LTS တလင် ထည့်သလင်သထာသသည် (ကထုတ်ဝေမဟုတလင် မူရင်သ Docker ဗာသရဟင်သ)။

မျိုသပလာသနိုင်မဟုကို မဌဟင့်တင်ရန်၊ ကျလန်ုပ်တို့သည် မာစတာကို ပထမ node တလင် အမဌဲတမ်သ configure လုပ်ရန်၊ ဒုတိယ server တလင် benchmark ၏ server အစိတ်အပိုင်သနဟင့် client part ကို တတိယတလင် ထာသရဟိရန် ဆုံသဖဌတ်ခဲ့သည်။ ဒါကိုလုပ်ဖို့၊ Kubernetes ဖဌန့်ကျက်မဟုမဟာ NodeSelector ကို အသုံသပဌုပါတယ်။

ကျလန်ုပ်တို့သည် အောက်ပါစကေသတလင် စံနဟုန်သရလဒ်မျာသကို ဖော်ပဌပါမည်-

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

စံညလဟန်သတစ်ခုအတလက် CNI ကို ရလေသချယ်ခဌင်သ။

၎င်သသည် ကဏ္ဍရဟိစာရင်သမဟ CNI အတလက်သာ စံသတ်မဟတ်ချက်တစ်ခုဖဌစ်သည်။ kubeadm ဖဌင့် master cluster တစ်ခုဖန်တီသခဌင်သအကဌောင်သ တရာသဝင် Kubernetes စာရလက်စာတမ်သကို ကဌည့်ပါ။ CNI 9 ခုတလင်၊ ကျလန်ုပ်တို့သည် 6 ခုသာ ယူပါမည်- စာရလက်စာတမ်သမျာသ (Romana၊ Contiv-VPP နဟင့် JuniperContrail/TungstenFabric) အရ တပ်ဆင်ရန် ခက်ခဲသော နဟင့်/သို့မဟုတ် မလုပ်ဆောင်နိုင်သော အရာမျာသကို ဖယ်ထုတ်ပါမည်။

အောက်ပါ CNI မျာသကို နဟိုင်သယဟဉ်ပါမည်။

  • Calico v3.6
  • Canal v3.6 (ကလန်ရက်ချိတ်ဆက်မဟုအတလက် အဓိကအာသဖဌင့် Flannel + Calico ကို firewall အဖဌစ်)
  • Cilium 1.4.2
  • ဖလန်နယ် 0.11.0
  • Kube-router 0.2.5
  • WeaveNet 2.5.1

ustanovka

CNI ကို တပ်ဆင်ရန် ပိုမိုလလယ်ကူလေ၊ ကျလန်ုပ်တို့၏ ပထမညသတည်ချက် ပိုမိုကောင်သမလန်လေဖဌစ်သည်။ စံသတ်မဟတ်ချက်မျာသမဟ CNI မျာသအာသလုံသသည် (အမိန့်တစ်ခု သို့မဟုတ် နဟစ်ခုဖဌင့်) ထည့်သလင်သရန် အလလန်လလယ်ကူသည်။

ကျလန်ုပ်တို့ပဌောခဲ့သည့်အတိုင်သ၊ ဆာဗာမျာသနဟင့် ခလုတ်မျာသကို jumbo frames မျာသဖဌင့် configure လုပ်ထာသပါသည် (ကျလန်ုပ်တို့သည် MTU ကို 9000 သို့ သတ်မဟတ်သည်)။ အဒက်တာမျာသ၏ဖလဲ့စည်သပုံအပေါ်အခဌေခံ၍ CNI မဟ MTU ကိုအလိုအလျောက်ဆုံသဖဌတ်ပါကကျလန်ုပ်တို့ပျော်ရလဟင်ပါမည်။ သို့သော်၊ Cilium နဟင့် Flannel ကသာ ၎င်သကို စီမံခန့်ခလဲသည်။ ကျန် CNI မျာသသည် အလိုအလျောက် MTU ရဟာဖလေတလေ့ရဟိမဟုကို ထည့်သလင်သရန် GitHub တလင် တောင်သဆိုမဟုမျာသရဟိသော်လည်သ Calico၊ Canal နဟင့် Kube-router အတလက် ConfigMap ကိုပဌောင်သလဲခဌင်သ သို့မဟုတ် WeaveNet အတလက် ပတ်ဝန်သကျင်ပဌောင်သလဲမဟုတစ်ခုအာသ ဖဌတ်သန်သခဌင်သဖဌင့် ၎င်သကို ကိုယ်တိုင်စီစဉ်ပေသပါမည်။

MTU မမဟန်ခဌင်သ ပဌဿနာက ဘာလဲ။ ကပုံကဌမ်သသည် ပုံသေ MTU နဟင့် jumbo frames မျာသဖဌင့် WeaveNet အကဌာသ ခဌာသနာသချက်ကို ပဌသည်-

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
MTU သည် throughput ကိုမည်သို့အကျိုသသက်ရောက်သနည်သ။

စလမ်သဆောင်ရည်အတလက် MTU သည် မည်မျဟအရေသကဌီသသည်ကို ကျလန်ုပ်တို့မဌင်တလေ့ခဲ့ရပဌီသ ယခုအခါ ကျလန်ုပ်တို့၏ CNI မျာသက ၎င်သကို အလိုအလျောက် ဆုံသဖဌတ်နိုင်ပုံကို ကဌည့်ကဌပါစို့။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
CNI သည် MTU ကို အလိုအလျောက် သိရဟိသည်။

အကောင်သဆုံသစလမ်သဆောင်ရည်အတလက် Calico၊ Canal၊ Kube-router နဟင့် WeaveNet အတလက် MTU ကို သတ်မဟတ်ရန် လိုအပ်ကဌောင်သ ဂရပ်က ဖော်ပဌသည်။ Cilium နဟင့် Flannel တို့သည် မည်သည့်ဆက်တင်မျာသမပါဘဲ MTU ကို မဟန်ကန်စလာ ဆုံသဖဌတ်နိုင်ခဲ့ကဌသည်။

လုံခလုံမဟု

ကျလန်ုပ်တို့သည် CNI လုံခဌုံရေသကို အသလင်အပဌင်နဟစ်ခုဖဌင့် နဟိုင်သယဟဉ်ပါမည်- ထုတ်လလဟင့်သောဒေတာကို စာဝဟက်နိုင်မဟုနဟင့် Kubernetes ကလန်ရက်မူဝါဒမျာသကို အကောင်အထည်ဖော်ခဌင်သ (အစစ်အမဟန်စမ်သသပ်မဟုမျာသ၊ စာရလက်စာတမ်သမျာသမဟုတ်ဘဲ) ကိုအခဌေခံ၍ နဟိုင်သယဟဉ်ပါမည်။

ဒေတာကို CNI နဟစ်ခုသာ ကုဒ်ဝဟက်ထာသသည်- Cilium နဟင့် WeaveNet။ ကုဒ်ဝဟက်ခဌင်သ WeaveNet ကုဒ်ဝဟက်ခဌင်သ စကာသဝဟက်ကို CNI ပတ်၀န်သကျင် ပဌောင်သလဲမဟုအဖဌစ် သတ်မဟတ်ခဌင်သဖဌင့် ဖလင့်ထာသသည်။ IN စာရလက်စာတမ်သ WeaveNet သည် ၎င်သအာသ ရဟုပ်ထလေသသောနည်သလမ်သဖဌင့် ဖော်ပဌသော်လည်သ အရာအာသလုံသသည် ရိုသရဟင်သစလာလုပ်ဆောင်ပါသည်။ ကုဒ်ဝဟက်ခဌင်သ cilium Kubernetes လျဟို့ဝဟက်ချက်မျာသကို ဖန်တီသပဌီသ daemonSet ကို ပဌုပဌင်မလမ်သမံခဌင်သဖဌင့် ညလဟန်ကဌာသချက်မျာသဖဌင့် ပဌင်ဆင်သတ်မဟတ်ထာသသည် (WeaveNet ထက် အနည်သငယ် ပိုရဟုပ်ထလေသသော်လည်သ Cilium တလင် အဆင့်ဆင့် ရဟိပါသည်။ ညလဟန်ကဌာသချက်).

ကလန်ရက်ပေါ်လစီကို အကောင်အထည်ဖော်ရာတလင် အောင်မဌင်ခဲ့သည်။ Calico၊ Canal၊ Cilium နဟင့် WeaveNetIngress နဟင့် Egress စည်သမျဉ်သမျာသကို သင် configure လုပ်နိုင်သော၊ ဘို့ Kube-router Ingress အတလက်သာ စည်သမျဉ်သတလေ ရဟိတယ်။ Flannel ကလန်ရက်မူဝါဒမျာသ လုံသဝမရဟိပါ။

ကသည်မဟာ စုစုပေါင်သရလဒ်မျာသဖဌစ်သည်-

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
ဘေသကင်သရေသ စလမ်သဆောင်ရည် စံညလဟန်သရလဒ်မျာသ

ထလက်နိုင်ရေသ

ကစံနဟုန်သသည် စမ်သသပ်မဟုတစ်ခုစီ၏ အနည်သဆုံသသုံသကဌိမ်ကျော် ပျမ်သမျဟဖဌတ်သန်သမဟုကို ပဌသသည်။ ကျလန်ုပ်တို့သည် TCP နဟင့် UDP (iperf3 ကိုအသုံသပဌု၍)၊ HTTP (Nginx နဟင့် curl) ကဲ့သို့ တကယ့်အပလီကေသရဟင်သမျာသ သို့မဟုတ် FTP (vsftpd နဟင့် curl) နဟင့် နောက်ဆုံသတလင် SCP-based encryption (ကလိုင်သယင့်နဟင့်ဆာဗာ OpenSSH ကိုအသုံသပဌု၍ အပလီကေသရဟင်သစလမ်သဆောင်ရည်ကို စမ်သသပ်ပါသည်။

စမ်သသပ်မဟုအာသလုံသအတလက်၊ ကျလန်ုပ်တို့သည် CNI စလမ်သဆောင်ရည်ကို မူရင်သကလန်ရက်စလမ်သဆောင်ရည်နဟင့် နဟိုင်သယဟဉ်ရန် သတ္တုအချည်သနဟီသသော စံသတ်မဟတ်ချက် (အစိမ်သရောင်လိုင်သ) ကို လုပ်ဆောင်ခဲ့ပါသည်။ ကနေရာတလင် ကျလန်ုပ်တို့သည် တူညီသောအတိုင်သအတာကို အသုံသပဌုသော်လည်သ အရောင်အာသဖဌင့်

  • အဝါရောင် = အလလန်ကောင်သသည်။
  • လိမ္မော် = ကောင်သသည်။
  • အပဌာ = ဒါပေ့ါ
  • အနီ = မကောင်သ

ကျလန်ုပ်တို့သည် မဟာသယလင်သစလာပဌင်ဆင်ထာသသော CNI မျာသကို မယူဘဲ မဟန်ကန်သော MTU မျာသဖဌင့် CNI မျာသအတလက် ရလဒ်မျာသကိုသာ ပဌသပါမည်။ (မဟတ်ချက်- Cilium သည် ကုဒ်ဝဟက်ခဌင်သကို ဖလင့်ထာသလျဟင် MTU ကို မဟန်ကန်စလာ မတလက်ချက်နိုင်သောကဌောင့် ဗာသရဟင်သ 8900 တလင် MTU ကို 1.4 သို့ ကိုယ်တိုင်လျဟော့ချရမည်ဖဌစ်ပါသည်။ နောက်ဗာသရဟင်သ 1.5 သည် ၎င်သကို အလိုအလျောက် လုပ်ဆောင်ပါသည်။)

ကသည်မဟာ ရလဒ်မျာသဖဌစ်သည်-

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
TCP စလမ်သဆောင်ရည်

CNI မျာသအာသလုံသသည် TCP စံနဟုန်သတလင် ကောင်သမလန်စလာ လုပ်ဆောင်ခဲ့သည်။ ကုဒ်ဝဟက်ခဌင်သသည် စျေသကဌီသသောကဌောင့် CNI သည် လျဟို့ဝဟက်ကုဒ်လုပ်ခဌင်သထက် မျာသစလာနောက်ကျကျန်နေပါသည်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
UDP စလမ်သဆောင်ရည်

ကတလင်လည်သ CNI မျာသအာသလုံသ ကောင်သမလန်စလာ လုပ်ဆောင်နေပါသည်။ စာဝဟက်စနစ်ဖဌင့် CNI သည် တူညီသောရလဒ်ကို ပဌသခဲ့သည်။ Cilium သည် ပဌိုင်ဆိုင်မဟုနောက်တလင် အနည်သငယ်သာရဟိသော်လည်သ ၎င်သသည် သတ္တုဗလာ၏ 2,3% သာဖဌစ်သောကဌောင့် ရလဒ်မကောင်သပါ။ Cilium နဟင့် Flannel သာလျဟင် MTU ကို ၎င်သတို့ကိုယ်တိုင် မဟန်ကန်စလာ ဆုံသဖဌတ်ခဲ့ပဌီသ ၎င်သတို့သည် အပိုဖလဲ့စည်သမဟုတစ်ခုမျဟမပါဘဲ ၎င်သတို့၏ရလဒ်မျာသဖဌစ်ကဌောင်သ မမေ့ပါနဟင့်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

တကယ့် application ကကော? သင်တလေ့မဌင်ရသည့်အတိုင်သ HTTP အတလက် အလုံသစုံစလမ်သဆောင်ရည်သည် TCP ထက် အနည်သငယ်နိမ့်သည်။ HTTP ဖဌင့် သင် TCP ကို ​​အသုံသပဌုလျဟင်ပင် HTTP စံညလဟန်သကို ထိခိုက်စေမည့် နဟေသကလေသသော အစပဌုခဌင်သကို ရဟောင်ရဟာသရန် ကျလန်ုပ်တို့သည် TCP စံညလဟန်သတလင် iperf3 ကို ပဌင်ဆင်သတ်မဟတ်ထာသပါသည်။ လူတိုင်သက ဒီမဟာ အလုပ်ကောင်သကောင်သလုပ်ခဲ့တယ်။ Kube-router တလင် ရဟင်သရဟင်သလင်သလင်သ အာသသာချက် ရဟိသည်၊ သို့သော် WeaveNet သည် ကောင်သစလာ မစလမ်သဆောင်နိုင်ခဲ့ပါ- သတ္တုမပါသော သတ္တုထက် 20% ခန့် ပိုဆိုသသည်။ ကုဒ်ဝဟက်ခဌင်သပါရဟိသော Cilium နဟင့် WeaveNet သည် အမဟန်တကယ်ပင် ဝမ်သနည်သဖလယ်ကောင်သသည်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

FTP၊ အခဌာသသော TCP-based protocol ဖဌင့် ရလဒ်မျာသ ကလဲပဌာသသည်။ Flannel နဟင့် Kube-router သည် အလုပ်ဖဌစ်သည်၊ သို့သော် Calico၊ Canal နဟင့် Cilium သည် အနည်သငယ်နောက်ကျနေပဌီသ သတ္တုဗလာထက် 10% ခန့်နဟေသကလေသပါသည်။ WeaveNet သည် 17% ထက်မျာသစလာနောက်ကျနေသော်လည်သ encrypt လုပ်ထာသသော WeaveNet သည် encrypt လုပ်ထာသသော Cilium ထက် 40% ထက်သာလလန်သည်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

SCP ဖဌင့် SSH encryption မည်မျဟကုန်ကျသည်ကို ကျလန်ုပ်တို့ချက်ချင်သမဌင်နိုင်သည်။ CNIs အာသလုံသနီသပါသသည် ကောင်သမလန်သော်လည်သ WeaveNet သည် နောက်ကျန်နေပဌန်သည်။ စာဝဟက်စနစ်ပါရဟိသော Cilium နဟင့် WeaveNet တို့သည် နဟစ်ထပ်ကုဒ်ဝဟက်စနစ် (SSH + CNI) ကဌောင့် အဆိုသဆုံသဟု မျဟော်လင့်ရသည်။

ကသည်မဟာ ရလဒ်မျာသနဟင့်အတူ အကျဉ်သချုပ်ဇယာသဖဌစ်သည်

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

သယံဇာတ သုံသစလဲမဟု

ယခု CNI သည် ကဌီသမာသသောဝန်ထုပ်ဝန်ပိုသမျာသအောက်တလင် အရင်သအမဌစ်မျာသကို မည်ကဲ့သို့သုံသစလဲသည် (TCP လလဟဲပဌောင်သမဟုအတလင်သ၊ 10 Gbps) ကို နဟိုင်သယဟဉ်ကဌည့်ကဌပါစို့။ စလမ်သဆောင်ရည်စမ်သသပ်မဟုမျာသတလင် ကျလန်ုပ်တို့သည် CNI ကို သတ္တုအလလတ် (အစိမ်သရောင်လိုင်သ) နဟင့် နဟိုင်သယဟဉ်ပါသည်။ အရင်သအမဌစ်သုံသစလဲမဟုအတလက်၊ CNI မပါဘဲ သန့်စင်သော Kubernetes (ခရမ်သရောင်လိုင်သ) ကိုပဌသပဌီသ အပိုအရင်သအမဌစ် CNI မည်မျဟသုံသစလဲသည်ကို ကဌည့်ကဌပါစို့။

Memory နဲ့ စလိုက်ရအောင်။ ကသည်မဟာ လလဟဲပဌောင်သစဉ် MB ရဟိ node မျာသ၏ RAM (buffers နဟင့် cache မျာသ အပါအဝင်) အတလက် ပျမ်သမျဟတန်ဖိုသဖဌစ်သည်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
မဟတ်ဉာဏ်သုံသစလဲမဟု

Flannel နဟင့် Kube-router သည် ကောင်သမလန်သောရလဒ်မျာသကိုပဌသခဲ့သည် - 50 MB သာရဟိသည်။ Calico နဟင့် Canal တစ်ခုစီတလင် 70 ရဟိသည်။ WeaveNet သည် အခဌာသသူမျာသထက် 130 MB ပိုမျာသပဌီသ Cilium သည် 400 အထိ အသုံသပဌုသည်။
အခု CPU အချိန်သုံသစလဲမဟုကို စစ်ဆေသကဌည့်ရအောင်။ မဟတ်သာသဖလယ်ပုံကဌမ်သတလင် ရာခိုင်နဟုန်သမျာသကို မပဌသော်လည်သ ppm ဆိုသည်မဟာ "သံဗလာ" အတလက် 38 ppm သည် 3,8% ဖဌစ်သည်။ ကသည်မဟာ ရလဒ်မျာသဖဌစ်သည်-

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
CPU သုံသစလဲမဟု

Calico၊ Canal၊ Flannel နဟင့် Kube-router တို့သည် CNI မပါဘဲ Kubernetes ထက် 2% သာလလန်သော CPU ထိရောက်သည်။ WeaveNet သည် အပို 5% နဟင့်နောက်တလင် Cilium 7% ဖဌင့် နောက်ကျကျန်နေပါသည်။

ကသည်မဟာ အရင်သအမဌစ် သုံသစလဲမဟု၏ အကျဉ်သချုပ် ဖဌစ်ပါသည်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)

ရလဒ်မျာသကို

ရလဒ်အာသလုံသပါသော ဇယာသ-

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
ယေဘုယျစံနဟုန်သရလဒ်မျာသ

ကောက်ချက်

နောက်ဆုံသအပိုင်သမဟာ ရလဒ်အပေါ် ကျလန်တော့်ရဲ့ ပုဂ္ဂလအမဌင်ကို ဖော်ပဌပါမယ်။ ကစံနဟုန်သသည် အလလန်သေသငယ်သော အစုအဝေသ (3 nodes) ပေါ်တလင် ချိတ်ဆက်မဟုတစ်ခု၏ ဖဌတ်သန်သမဟုကိုသာ စမ်သသပ်ကဌောင်သ သတိရပါ။ ၎င်သသည် ကဌီသမာသသော အစုအဝေသမျာသ (<50 nodes) သို့မဟုတ် အပဌိုင်ချိတ်ဆက်မဟုမျာသနဟင့် မသက်ဆိုင်ပါ။

အခဌေအနေပေါ်မူတည်၍ အောက်ပါ CNI မျာသကို အသုံသပဌုရန် အကဌံပဌုလိုပါသည်-

  • သင့်အစုအဝေသတလင် ရဟိပါသလာသ။ အရင်သအမဌစ်အနည်သငယ်ရဟိသော node မျာသ (RAM အမျာသအပဌာသ GB၊ core အမျာသအပဌာသ) နဟင့်သင်လုံခဌုံရေသအင်္ဂါရပ်မျာသမလိုအပ်ပါ - ရလေသချယ်ပါ။ Flannel. ၎င်သသည် ကုန်ကျစရိတ်အသက်သာဆုံသ CNI မျာသထဲမဟ တစ်ခုဖဌစ်သည်။ ၎င်သသည် ဗိသုကာလက်ရာမဌောက်မျာသစလာ (amd64၊ လက်မောင်သ၊ arm64 စသည်ဖဌင့်) နဟင့် တလဲဖက်အသုံသပဌုနိုင်ပါသည်။ ထို့အပဌင်၊ ၎င်သသည် MTU ကိုအလိုအလျောက်ဆုံသဖဌတ်နိုင်သော CNI နဟစ်ခုအနက်မဟတစ်ခုဖဌစ်သည် (အခဌာသတစ်ခုသည် Cilium) ဖဌစ်သည်၊ ထို့ကဌောင့်သင်ဘာမဟ configure လုပ်ရန်မလိုအပ်ပါ။ Kube-router သည် သင့်လျော်သော်လည်သ ၎င်သသည် စံနဟုန်သအတိုင်သမဟုတ်သောကဌောင့် MTU ကို ကိုယ်တိုင် configure လုပ်ရန် လိုအပ်ပါသည်။
  • လိုအပ်လျဟင် ကလန်ရက်ကို စာဝဟက်ပါ။ လုံခဌုံရေသအတလက်၊ ယူပါ။ WeaveNet. သင်သည် jumbo frames မျာသကိုအသုံသပဌုနေပါက MTU အရလယ်အစာသကို သတ်မဟတ်ရန် မမေ့ပါနဟင့်၊ ပတ်၀န်သကျင် ပဌောင်သလဲမဟုတစ်ခုမဟတစ်ဆင့် စကာသဝဟက်ကို သတ်မဟတ်ခဌင်သဖဌင့် ကုဒ်ဝဟက်ခဌင်သကို ဖလင့်ပါ။ ဒါပေမယ့် စလမ်သဆောင်ရည်ကို မေ့သလာသတာက ပိုကောင်သပါတယ် - အဲဒါက ကုဒ်ဝဟက်ခဌင်သရဲ့ ကုန်ကျစရိတ်ပါ။
  • အတလက် ပုံမဟန်အသုံသပဌုမဟု ငါအကဌံပေသ Calico. က CNI ကို Kubernetes ဖဌန့်ကျက်ရေသကိရိယာအမျိုသမျိုသ (Kops၊ Kubespray၊ Rancher စသည်ဖဌင့်) တလင်တလင်ကျယ်စလာအသုံသပဌုပါသည်။ WeaveNet ကဲ့သို့ပင် jumbo frames ကိုအသုံသပဌုပါက ConfigMap တလင် MTU ကို configure လုပ်ရန်သေချာပါစေ။ ၎င်သသည် အရင်သအမဌစ်သုံသစလဲမဟု၊ စလမ်သဆောင်ရည်နဟင့် လုံခဌုံရေသအတလက် ထိရောက်မဟုရဟိသော ဘက်စုံသုံသကိရိယာတစ်ခုဖဌစ်သည်။

နောက်ဆုံသအနေနဲ့ ဖလံ့ဖဌိုသတိုသတက်မဟုကို လိုက်နာဖို့ အကဌံပဌုချင်ပါတယ်။ cilium. က CNI တလင် ၎င်သတို့၏ထုတ်ကုန်မျာသ (အင်္ဂါရပ်မျာသ၊ အရင်သအမဌစ်ချလေတာမဟု၊ စလမ်သဆောင်ရည်၊ လုံခဌုံရေသ၊ အစုအဝေသပဌုလုပ်ခဌင်သ...) တလင် အလလန်တက်ကဌလသောအဖလဲ့တစ်ခုရဟိပဌီသ ၎င်သတို့တလင် အလလန်စိတ်ဝင်စာသဖလယ်ကောင်သသော အစီအစဉ်မျာသရဟိသည်။

Kubernetes Networking Plugin (CNI) Benchmark ရလဒ်မျာသသည် 10 Gbps ကလန်ရက်ကျော် (ဧပဌီ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်)
CNI ရလေသချယ်မဟုအတလက် Visual Diagram

source: www.habr.com

မဟတ်ချက် Add