ይህ የእኔ ዝመና ነው።
በመጀመሪያ የሲሊየም ቡድንን ማመስገን እፈልጋለሁ፡ ወንዶቹ የመለኪያ መከታተያ ስክሪፕቶችን እንዳጣራ እና እንዳስተካክል ረድተውኛል።
ከኖቬምበር 2018 ጀምሮ ምን ተቀይሯል
ከዚያን ጊዜ ጀምሮ የተለወጠው ይኸውና (ከፍላጎትህ)
Flannel ፈጣኑ እና ቀላሉ የCNI በይነገጽ ሆኖ ይቆያል፣ ነገር ግን አሁንም የአውታረ መረብ ፖሊሲዎችን እና ምስጠራን አይደግፍም።
ሮማና ከአሁን በኋላ አይደገፍም፣ ስለዚህ ከቤንችማርክ አስወግደነዋል።
WeaveNet አሁን የአውታረ መረብ ፖሊሲዎችን ለ Ingress እና Egress ይደግፋል! ነገር ግን ምርታማነት ቀንሷል.
በካሊኮ ውስጥ አሁንም ከፍተኛውን የፓኬት መጠን (MTU) ለበለጠ አፈፃፀም እራስዎ ማዋቀር ያስፈልግዎታል። ካሊኮ CNI ን ለመጫን ሁለት አማራጮችን ይሰጣል ፣ ስለሆነም ያለ የተለየ ETCD ማከማቻ ማድረግ ይችላሉ ።
- ሁኔታን በ Kubernetes ኤፒአይ ውስጥ እንደ የውሂብ ማከማቻ ማከማቸት (ክላስተር መጠን <50 ኖዶች);
- በK8S API (ክላስተር መጠን > 50 ኖዶች) ላይ ያለውን ጭነት ለማቃለል ሁኔታን በ Kubernetes API እንደ የውሂብ ማከማቻ ከTypha ፕሮክሲ ጋር ማከማቸት።
Calico ድጋፍ አስታወቀ
ሲሊየም አሁን ምስጠራን ይደግፋል! ሲሊየም ከአይፒሴክ ዋሻዎች ጋር ምስጠራን ያቀርባል እና ከተመሰጠረው WeaveNet አውታረ መረብ ሌላ አማራጭ ይሰጣል። ነገር ግን WeaveNet ምስጠራ ከነቃ ከሲሊየም የበለጠ ፈጣን ነው።
ሲሊየም አሁን አብሮ በተሰራው የ ETCD ኦፕሬተር ለማሰማራት ቀላል ሆኗል።
የሲሊየም ቡድን የማህደረ ትውስታ ፍጆታን እና የሲፒዩ ወጪዎችን በመቀነስ ከ CNI የተወሰነ ክብደትን ለመቀነስ ሞክሯል፣ ነገር ግን ተፎካካሪዎቹ አሁንም ቀላል ናቸው።
የቤንችማርክ አውድ
መለኪያው በ10 Gb ሱፐርሚክሮ ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማስተካከያ በሦስት ምናባዊ ባልሆኑ ሱፐርሚክሮ አገልጋዮች ላይ ይሰራል። አገልጋዮቹ በቀጥታ ከመቀየሪያው ጋር በፓስቲቭ DAC SFP+ ኬብሎች የተገናኙ እና በተመሳሳይ VLAN ላይ ከጃምቦ ፍሬሞች (MTU 9000) ጋር የተዋቀሩ ናቸው።
Kubernetes 1.14.0 በኡቡንቱ 18.04 LTS ከDocker 18.09.2 ጋር ተጭኗል (በዚህ የተለቀቀው ነባሪ Docker ስሪት)።
እንደገና መባዛትን ለማሻሻል, ጌታውን ሁልጊዜ በመጀመሪያው መስቀለኛ መንገድ ላይ ለማዋቀር ወስነናል, የአገልጋዩን የቤንችማርክ ክፍል በሁለተኛው አገልጋይ ላይ እና የደንበኛውን ክፍል በሦስተኛው ላይ ያስቀምጡ. ይህንን ለማድረግ, NodeSelector በ Kubernetes ማሰማራት ውስጥ እንጠቀማለን.
የቤንችማርክ ውጤቶችን በሚከተለው ሚዛን እንገልጻለን፡
ለቤንችማርክ CNI መምረጥ
ይህ በክፍል ውስጥ ካለው ዝርዝር ውስጥ ለ CNI ብቻ መለኪያ ነው።
የሚከተሉትን CNIs እናነፃፅራለን፡-
- ካሊኮ v3.6
- ካናል v3.6 (በዋናነት Flannel ለአውታረ መረብ + Calico እንደ ፋየርዎል)
- ሲሊየም 1.4.2
- Flannel 0.11.0
- ኩቤ-ራውተር 0.2.5
- WeaveNet 2.5.1
ቅንብር
የ CNI መጫን ቀላል ነው, የእኛ የመጀመሪያ ግንዛቤ የተሻለ ይሆናል. ከቤንችማርክ ሁሉም CNIዎች ለመጫን በጣም ቀላል ናቸው (በአንድ ወይም ሁለት ትዕዛዞች)።
እንደተናገርነው፣ አገልጋዮቹ እና ማብሪያዎቹ የተዋቀሩ ከጃምቦ ፍሬሞች ጋር ነው (MTU ን ወደ 9000 እናስቀምጣለን)። CNI በአመቻቾች ውቅር ላይ በመመስረት MTU ን በራስ-ሰር ከወሰነ ደስተኞች ነን። ነገር ግን ይህንን የተቆጣጠሩት ሲሊየም እና ፍላኔል ብቻ ናቸው። የተቀሩት CNIs አውቶማቲክ MTU ግኝትን ለመጨመር በ GitHub ላይ ጥያቄዎች አሏቸው፣ ነገር ግን ConfigMap ለ Calico፣ Canal እና Kube-router በመቀየር ወይም የአካባቢ ተለዋዋጭ ለWeaveNet በማለፍ እናዋቅረዋለን።
የተሳሳተ MTU ችግር ምንድነው? ይህ ሥዕላዊ መግለጫ በWeaveNet በነባሪ MTU እና በጃምቦ ፍሬሞች መካከል ያለውን ልዩነት ያሳያል፡-
MTU ለአፈጻጸም ምን ያህል አስፈላጊ እንደሆነ አይተናል፣ አሁን የእኛ CNIs እንዴት በራስ-ሰር እንደሚወስኑት እንይ፡-
ግራፉ እንደሚያሳየው MTU ን ለ Calico, Canal, Kube-router እና WeaveNet ን ለተሻለ አፈፃፀም ማዋቀር ያስፈልግዎታል. ሲሊየም እና ፍላኔል MTU ን እራሳቸውን ያለምንም ቅንጅቶች በትክክል መወሰን ችለዋል።
ደህንነት
የ CNI ደህንነትን በሁለት ገፅታዎች እናነፃፅራለን-የተላለፈ መረጃን የማመስጠር ችሎታ እና የ Kubernetes አውታረ መረብ ፖሊሲዎችን መተግበር (በእውነተኛ ሙከራዎች ላይ የተመሰረተ እንጂ በሰነድ አይደለም)።
ሁለት CNIዎች ብቻ መረጃን ያመሰጥሩ፡ሲሊየም እና ዌቭኔት። ምስጠራ WeaveNet የኢንክሪፕሽን ይለፍ ቃል እንደ CNI አካባቢ ተለዋዋጭ በማዘጋጀት የነቃ። ውስጥ
የኔትወርክ ፖሊሲ አተገባበርን በተመለከተም ተሳክቶላቸዋል Calico, Canal, Cilium እና WeaveNet, በውስጡ የ Ingress እና Egress ደንቦችን ማዋቀር ይችላሉ. ለ ኩቤ-ራውተር ለ Ingress ብቻ ደንቦች አሉ, እና Flannel ምንም የአውታረ መረብ ፖሊሲዎች በጭራሽ የሉም።
አጠቃላይ ውጤቶቹ እነሆ፡-
ምርታማነት
ይህ መመዘኛ በእያንዳንዱ የፈተና ጊዜ ቢያንስ በሶስት ጊዜ አማካይ የውጤት መጠን ያሳያል። የTCP እና UDP (Iperf3ን በመጠቀም)፣ እንደ HTTP ያሉ እውነተኛ አፕሊኬሽኖች (በNginx እና curl) ወይም FTP (ከ vsftpd እና curl) እና በመጨረሻም የመተግበሪያ አፈጻጸምን በSCP ላይ የተመሰረተ ምስጠራን (ደንበኛ እና አገልጋይ OpenSSHን በመጠቀም) እንፈትሻለን።
ለሁሉም ሙከራዎች፣ የCNI አፈጻጸምን ከአገርኛ አውታረ መረብ አፈጻጸም ጋር ለማነፃፀር ባዶ የብረት መለኪያ (አረንጓዴ መስመር) አድርገናል። እዚህ ተመሳሳይ መለኪያ እንጠቀማለን, ግን በቀለም:
- ቢጫ = በጣም ጥሩ
- ብርቱካን = ጥሩ
- ሰማያዊ = እንዲሁ - እንዲሁ
- ቀይ = መጥፎ
በስህተት የተዋቀሩ CNIዎችን አንወስድም እና ለ CNIዎች ትክክለኛውን MTU ብቻ እናሳያለን። (ማስታወሻ፡ ሲሊየም ኢንክሪፕሽንን ካነቃቁ ኤምቲዩን በትክክል አያሰላም፣ ስለዚህ MTU ን በራስ 8900 ወደ 1.4 መቀነስ አለቦት። የሚቀጥለው እትም 1.5፣ ይህን በራስ ሰር ያደርገዋል።)
ውጤቶቹ እነሆ፡-
ሁሉም CNIዎች በTCP ቤንችማርክ ውስጥ ጥሩ አፈጻጸም አሳይተዋል። ምስጠራ ውድ ስለሆነ CNI ከማመስጠር ጋር ወደ ኋላ ቀርቷል።
እዚህ ደግሞ ሁሉም CNIዎች ጥሩ እየሰሩ ነው። CNI ከማመስጠር ጋር ተመሳሳይ ውጤት አሳይቷል። ሲሊየም ከውድድሩ በስተጀርባ ትንሽ ነው, ነገር ግን ከባዶ ብረት 2,3% ብቻ ነው, ስለዚህ መጥፎ ውጤት አይደለም. ሲሊየም እና ፍላኔል ብቻ MTU ን በትክክል እንደወሰኑ አይርሱ ፣ እና እነዚህ ያለ ተጨማሪ ውቅር ውጤቶቻቸው ናቸው።
ስለ እውነተኛ መተግበሪያስ? እንደሚመለከቱት፣ አጠቃላይ የኤችቲቲፒ አፈጻጸም ከTCP በትንሹ ያነሰ ነው። ኤችቲቲፒን ከTCP ጋር ብትጠቀምም በHTCP ቤንችማርክ ውስጥ የኤችቲቲፒ ቤንችማርክን የሚጎዳ ቀርፋፋ ጅምርን ለማስወገድ iperf3ን አዋቅረነዋል። እዚህ ሁሉም ሰው ጥሩ ስራ ሰርቷል። Kube-router ግልጽ የሆነ ጥቅም አለው, ነገር ግን WeaveNet ጥሩ ውጤት አላመጣም: ከባዶ ብረት 20% የከፋ ነው. ሲሊየም እና ዌቭኔት ከምስጠራ ጋር በጣም የሚያሳዝኑ ይመስላሉ።
በኤፍቲፒ፣ ሌላ በTCP ላይ የተመሰረተ ፕሮቶኮል፣ ውጤቶቹ ይለያያሉ። ፍላኔል እና ኩቤ-ራውተር ስራውን ያከናውናሉ, ነገር ግን ካሊኮ, ካናል እና ሲሊየም ትንሽ ከኋላ ናቸው እና ከባዶ ብረት 10% ቀርፋፋ ናቸው. WeaveNet በ 17% ያህል ኋላ ቀርቷል፣ ግን ኢንክሪፕት የተደረገው WeaveNet ከተመሰጠረ ሲሊየም በ40% ይበልጣል።
በSCP አማካኝነት የኤስኤስኤች ምስጠራ ምን ያህል እንደሚያስወጣን ወዲያውኑ ማየት እንችላለን። ሁሉም ማለት ይቻላል CNIs ጥሩ እየሰሩ ነው፣ ነገር ግን WeaveNet እንደገና ወደ ኋላ ቀርቷል። ሲሊየም እና ዌቭኔት ከምስጠራ ጋር በድርብ ምስጠራ (SSH + CNI) ምክንያት በጣም መጥፎ ናቸው ተብሎ ይጠበቃል።
ውጤቱን የያዘ ማጠቃለያ ሰንጠረዥ ይኸውና፡-
የሀብት ፍጆታ
አሁን CNI በከባድ ሸክሞች (በTCP ሽግግር ወቅት፣ 10 Gbps) ሃብቶችን እንዴት እንደሚጠቀም እናወዳድር። በአፈፃፀም ሙከራዎች CNI ን ከባዶ ብረት (አረንጓዴ መስመር) ጋር እናነፃፅራለን። ለንብረት ፍጆታ፣ ንፁህ Kubernetes (ሐምራዊ መስመር) ያለ CNI እናሳይ እና CNI ምን ያህል ተጨማሪ ሃብቶችን እንደሚጠቀም እንይ።
በማስታወስ እንጀምር። በሚተላለፉበት ጊዜ በሜባ ውስጥ ያለው የአንጓዎች ራም (ማቋቋሚያ እና መሸጎጫ ሳይጨምር) አማካይ ዋጋ እዚህ አለ።
Flannel እና Kube-ራውተር ጥሩ ውጤት አሳይተዋል - 50 ሜባ ብቻ። ካሊኮ እና ካናል እያንዳንዳቸው 70. WeaveNet በግልፅ ከሌሎቹ የበለጠ ፍጆታ አላቸው - 130 ሜባ ፣ እና ሲሊየም እስከ 400 ድረስ ይጠቀማል።
አሁን የሲፒዩውን ጊዜ ፍጆታ እንፈትሽ። ትኩረት የሚስብሥዕላዊ መግለጫው በመቶኛ አይደለም ፣ ግን ppm ፣ ማለትም ፣ 38 ፒፒኤም ለ “ባዶ ብረት” 3,8% ነው። ውጤቶቹ እነሆ፡-
Calico, Canal, Flannel እና Kube-router በጣም ውጤታማ ሲፒዩ ናቸው - CNI ከሌለው Kubernetes 2% ብቻ ይበልጣል። WeaveNet በ 5% ተጨማሪ ወደ ኋላ ቀርቷል ፣ሲሊየም በ 7% ይከተላል።
የሀብት ፍጆታ ማጠቃለያ ይኸውና፡-
ውጤቶች
ከሁሉም ውጤቶች ጋር ሰንጠረዥ:
መደምደሚያ
በመጨረሻው ክፍል በውጤቶቹ ላይ የእኔን ተጨባጭ አስተያየት እገልጻለሁ. ያስታውሱ ይህ ማመሳከሪያ የአንድ ነጠላ ግኑኝነትን መጠን የሚፈትነው በጣም ትንሽ ዘለላ (3 ኖዶች) ላይ ብቻ ነው። ለትልቅ ዘለላዎች (<50 nodes) ወይም ትይዩ ግንኙነቶችን አይመለከትም።
እንደ ሁኔታው የሚከተሉትን CNIs እንድትጠቀም እመክራለሁ።
- በክላስተርህ ውስጥ አለህ ጥቂት ሀብቶች ያላቸው አንጓዎች (በርካታ ጂቢ ራም ፣ በርካታ ኮሮች) እና የደህንነት ባህሪዎች አያስፈልጉዎትም - ይምረጡ Flannel. ይህ በጣም ወጪ ቆጣቢ CNIs አንዱ ነው። እና ከተለያዩ ስነ-ህንፃዎች (amd64፣ ክንድ፣ ክንድ64፣ ወዘተ) ጋር ተኳሃኝ ነው። በተጨማሪም, ይህ ከሁለቱ አንዱ ነው (ሌላኛው Cilium) CNI በራስ-ሰር MTU ን ሊወስን ይችላል, ስለዚህ ምንም ነገር ማዋቀር የለብዎትም. Kube-router እንዲሁ ተስማሚ ነው, ግን እንደ መደበኛ አይደለም እና MTU ን እራስዎ ማዋቀር ያስፈልግዎታል.
- አስፈላጊ ከሆነ አውታረ መረቡን ማመስጠር ለደህንነት, ይውሰዱ WeaveNet. የጃምቦ ፍሬሞችን እየተጠቀሙ ከሆነ የMTU መጠንን መግለጽዎን አይርሱ፣ እና በአከባቢ ተለዋዋጭ በኩል የይለፍ ቃል በመግለጽ ምስጠራን ማንቃት። ግን ስለ አፈፃፀም መርሳት ይሻላል - ይህ የኢንክሪፕሽን ዋጋ ነው።
- ለ መደበኛ አጠቃቀም советую ካሊኮ. ይህ CNI በተለያዩ የኩበርኔትስ ማሰማሪያ መሳሪያዎች (Kops, Kubespray, Rancher, ወዘተ) ውስጥ በስፋት ጥቅም ላይ ይውላል. እንደ WeaveNet፣ የጃምቦ ፍሬሞችን ከተጠቀሙ በ ConfigMap ውስጥ MTU ን ማዋቀርዎን ያረጋግጡ። ከሀብት ፍጆታ፣ ከአፈጻጸም እና ከደህንነት አንፃር ቀልጣፋ የሆነ ባለብዙ-ተግባር መሳሪያ ነው።
እና በመጨረሻም እድገቱን እንድትከተሉ እመክራችኋለሁ ሲሊየም. ይህ CNI በምርታቸው (ባህሪያት፣ ሃብት ቁጠባ፣ አፈጻጸም፣ ደህንነት፣ ስብስብ...) ላይ ብዙ የሚሰራ በጣም ንቁ ቡድን አለው እና በጣም አስደሳች እቅዶች አሏቸው።
ምንጭ: hab.com