የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

TL; DR: ሁሉም CNIs እንደ ሚገባው ይሰራሉ ​​ከኩቤ-ራውተር እና ከኩቤ-ኦቪኤን በስተቀር ካሊኮ ከአውቶማቲክ MTU ፈልጎ ማግኘት በስተቀር ምርጡ ነው።

ያለፉ ቼኮች ፅሑፍ ማዘመን (2018 и 2019በሙከራ ጊዜ ኩበርኔትስ 1.19ን በኡቡንቱ 18.04 ከተዘመኑ CNIዎች ጋር እስከ ኦገስት 2020 እየተጠቀምኩ ነው።

ወደ መለኪያዎች ከመግባታችን በፊት...

ከኤፕሪል 2019 ጀምሮ ምን አዲስ ነገር አለ?

  • በራስዎ ክላስተር መሞከር ይችላሉ፡ የእኛን መሳሪያ በመጠቀም በራስዎ ክላስተር ላይ ሙከራዎችን ማካሄድ ይችላሉ። የኩበርኔትስ አውታረ መረብ ቤንችማርክ:
  • አዳዲስ አባላት ታይተዋል።
  • አዲስ ሁኔታዎች፡ የአሁን ፍተሻዎች "Pod-to-Pod" የአውታረ መረብ አፈጻጸም ሙከራዎችን ያካሂዳሉ፣ እና አዲስ "Pod-to- Service" ስክሪፕት ተጨምሯል፣ ይህም ፈተናዎችን ከእውነታው ዓለም ሁኔታዎች ጋር ያቀርባል። በተግባር፣ የእርስዎ ፖድ ከኤፒአይ ጋር የሚሠራው ከመሠረቱ እንደ አገልግሎት ነው፣ እና በPod ip አድራሻ አይደለም (በእርግጥ ሁለቱንም TCP እና UDP ለሁለቱም ሁኔታዎች እንፈትሻለን)።
  • የሃብት ፍጆታ፡ እያንዳንዱ ፈተና አሁን የራሱ የሆነ የንብረት ንፅፅር አለው።
  • የመተግበሪያ ሙከራዎችን ማስወገድ፡ ከህብረተሰቡ እና ከሲኤንአይ ተጠባባቂዎች ጋር ያለን ፍሬያማ ትብብር በCNI ጅምር መዘግየት (የመጀመሪያዎቹ ጥቂት ሰከንዶች የፖድ) ውጤት ላይ በ iperf ውጤቶች በTCP እና በመጠምዘዝ መካከል ያለውን ክፍተት ስላሳየ የኤችቲቲፒ፣ የኤፍቲፒ እና የኤስሲፒ ፈተናዎችን አንሰራም። ጅምር, በእውነተኛ ሁኔታዎች ውስጥ የተለመደ አይደለም).
  • ምንጭ ክፈት፡ ሁሉም የፍተሻ ምንጮች (ስክሪፕቶች፣ yml settings እና original "ጥሬ" ውሂብ) ይገኛሉ እዚህ

የማጣቀሻ ሙከራ ፕሮቶኮል

ፕሮቶኮሉ በዝርዝር ተገልጿል እዚህእባክዎ ልብ ይበሉ ይህ ጽሑፍ ስለ ኡቡንቱ 18.04 ከነባሪው ከርነል ጋር ነው።

ለግምገማ CNI መምረጥ

ይህ ሙከራ በአንድ የያምል ፋይል የተዋቀሩ CNIዎችን ለማነጻጸር ያለመ ነው (ስለዚህ በስክሪፕቶች የተጫኑት ሁሉ እንደ VPP እና ሌሎችም አይካተቱም)።

ለማነጻጸር የመረጥናቸው CNIs፡-

  • አንትሬያ ቁ.0.9.1
  • ካሊኮ v3.16
  • ካናል v3.16 (Flannel network + Calico Network ፖሊሲዎች)
  • ሲሊየም 1.8.2
  • Flannel 0.12.0
  • የኩቤ-ራውተር የቅርብ ጊዜ (2020–08–25)
  • WeaveNet 2.7.0

MTU ለ CNI በማዋቀር ላይ

በመጀመሪያ ፣ አውቶማቲክ MTU ማወቂያ በ TCP አፈፃፀም ላይ ያለውን ተፅእኖ እንፈትሻለን-

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

MTU በ TCP አፈጻጸም ላይ የሚያሳድረው ተጽዕኖ

ዩዲፒን ሲጠቀሙ የበለጠ ትልቅ ክፍተት ይገኛል፡-

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)
MTU በ UDP አፈጻጸም ላይ የሚያሳድረው ተጽዕኖ

በፈተናዎቹ ውስጥ ከተገለጠው ግዙፍ የአፈጻጸም ተፅእኖ አንጻር ለሁሉም የCNI ጠባቂዎች የተስፋ ደብዳቤ መላክ እንፈልጋለን፡ እባኮትን አውቶማቲክ MTU ማወቅን ወደ CNI ያክሉ። ድመቶችን ፣ ዩኒኮርን እና በጣም ቆንጆ የሆነውን እንኳን ታድናላችሁ-ትንሹ ዴቮፕ።

ነገር ግን፣ ለራስ-ሰር MTU ማወቂያ CNI ያለ ድጋፍ መጠቀም ከፈለጉ አፈፃፀሙን ለማግኘት እራስዎ ማዋቀር ይችላሉ። እባክዎ ይህ Calico, Canal እና WeaveNetን የሚመለከት መሆኑን ልብ ይበሉ.

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)
ለአጃቢ CNIዎች ያቀረብኩት ትንሽ ጥያቄ...

የ CNI ሙከራ፡ ጥሬ ውሂብ

በዚህ ክፍል, CNI ከትክክለኛው MTU (በራስ-ሰር የሚወሰን ወይም በእጅ የተዘጋጀ) ጋር እናነፃፅራለን. እዚህ ያለው ዋናው ግብ ጥሬውን መረጃ በግራፍ ውስጥ ማሳየት ነው.

የቀለም አፈ ታሪክ

  • ግራጫ - ናሙና (ማለትም ባዶ ብረት)
  • አረንጓዴ - የመተላለፊያ ይዘት ከ 9500 ሜጋ ባይት በላይ
  • ቢጫ - የመተላለፊያ ይዘት ከ 9000 Mbps በላይ
  • ብርቱካንማ - የመተላለፊያ ይዘት ከ 8000 ሜጋ ባይት በላይ
  • ቀይ - የመተላለፊያ ይዘት ከ 8000 ሜጋ ባይት በታች
  • ሰማያዊ - ገለልተኛ (ከመተላለፊያ ይዘት ጋር ያልተገናኘ)

የማይጫን የሃብት ፍጆታ

በመጀመሪያ ደረጃ ክላስተር "በእንቅልፍ" በሚሆንበት ጊዜ የንብረት ፍጆታን ያረጋግጡ.

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)
የማይጫን የሃብት ፍጆታ

Pod-to-Pod

ይህ ሁኔታ ደንበኛው ፖድ የአይፒ አድራሻውን በመጠቀም ከአገልጋዩ ፖድ ጋር በቀጥታ እንደሚገናኝ ያስባል።

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)
Pod-to-Pod Scenario

TCP

Pod-to-Pod TCP ውጤቶች እና ተዛማጅ የንብረት ፍጆታ፡-

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

UDP

ከPod-to-Pod UDP ውጤቶች እና ተዛማጅ የንብረት ፍጆታ፡-

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

ፖድ-ወደ-አገልግሎት

ይህ ክፍል ለትክክለኛ አጠቃቀም ጉዳዮች ተገቢ ነው፣ ደንበኛው ፖድ ከአገልጋዩ ፖድ ጋር በClusterIP አገልግሎት በኩል ይገናኛል።

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)
ፖድ-ወደ-አገልግሎት ስክሪፕት

TCP

ከፖድ-ወደ-አገልግሎት TCP ውጤቶች እና ተዛማጅ የንብረት ፍጆታ፡-

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

UDP

ከፖድ-ወደ-አገልግሎት UDP ውጤቶች እና ተዛማጅ የንብረት ፍጆታ፡-

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የአውታረ መረብ ፖሊሲ ​​ድጋፍ

ከላይ ከተጠቀሱት መካከል ፖለቲካን የማይደግፈው ፍላኔል ብቻ ነው። ሁሉም ሌሎች ወደ ውስጥ እና ወደ ውጪ መውጣትን ጨምሮ የአውታረ መረብ ፖሊሲዎችን በትክክል ይተገብራሉ። ታላቅ ስራ!

የ CNI ምስጠራ

ከተረጋገጡት CNIዎች መካከል በፖዶች መካከል የአውታረ መረብ ልውውጥን ማመስጠር የሚችሉ አሉ፡-

  • IPsec በመጠቀም Antrea
  • ሽቦ መከላከያ በመጠቀም Calico
  • ሲሊየም IPsec በመጠቀም
  • IPsec በመጠቀም WeaveNet

የመተላለፊያ ይዘት

ጥቂት የቀሩት CNIዎች ስላሉ፣ ሁሉንም ሁኔታዎች በአንድ ግራፍ ውስጥ እናስቀምጥ፡

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የሀብት ፍጆታ

በዚህ ክፍል በTCP እና UDP ውስጥ Pod-to-Pod ግንኙነትን ሲያካሂዱ ጥቅም ላይ የዋሉትን ሀብቶች እንገመግማለን. ተጨማሪ መረጃ ስለማይሰጥ ከፖድ ወደ አገልግሎት ግራፍ መሳል ምንም ፋይዳ የለውም።

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

ሁሉንም በአንድ ላይ በማጣመር

ሁሉንም ግራፎች ለመድገም እንሞክር ፣ እዚህ ትንሽ ርዕሰ-ጉዳይ አስተዋውቀናል ፣ ትክክለኛ እሴቶችን “vwry fast” ፣ “ዝቅተኛ” ፣ ወዘተ በሚሉት ቃላት በመተካት።

የCNI የአፈጻጸም ግምገማ ከ10G አውታረ መረብ በላይ ለ Kubernetes (ኦገስት 2020)

መደምደሚያ እና የእኔ መደምደሚያዎች

የውጤቶቹን የራሴን ትርጓሜ እያስተላለፍኩ ስለሆነ ይህ ትንሽ ተጨባጭ ነው።

እኔ አዲስ CNIs ብቅ መሆኑን ደስ ብሎኛል, Antrea ጥሩ አከናውኗል, ብዙ ተግባራት ቀደም ስሪቶች ውስጥ እንኳ ተግባራዊ ነበር: ሰር MTU ማወቂያ, ምስጠራ እና ቀላል ጭነት.

አፈፃፀሙን ካነፃፅር ከኩቤ-ኦቪኤን እና ከኩቤ-ራውተር በስተቀር ሁሉም CNIs በደንብ ይሰራሉ። ኩቤ-ራውተር MTU ን ማግኘት አልቻልኩም፣ በሰነዱ ውስጥ የትም ቦታ የማዋቀርበት መንገድ አላገኘሁም (እዚህ በዚህ ርዕስ ላይ ጥያቄ ክፍት ነው).

ከንብረት ፍጆታ አንጻር ሲሊየም አሁንም ከሌሎች የበለጠ RAM ይጠቀማል, ነገር ግን አምራቹ በግልጽ ትላልቅ ስብስቦችን እያነጣጠረ ነው, ይህም በግልጽ በሶስት-ኖድ ክላስተር ላይ ካለው ሙከራ ጋር ተመሳሳይ አይደለም. ኩቤ-ኦቪኤን ብዙ ሲፒዩ እና ራም ሃብቶችን ይበላል ነገር ግን በ Open vSwitch ላይ የተመሰረተ ወጣት CNI ነው (እንደ አንትሬያ የተሻለ ስራ ይሰራል እና ያነሰ ይበላል)።

ከ Flannel በስተቀር ሁሉም ሰው የአውታረ መረብ ፖሊሲዎች አሉት። ግቡ ከእንፋሎት ከተጠበሰ ተርፕ ቀለል ያለ ስለሆነ እሱ በጭራሽ አይደግፋቸውም ። ቀለሉ ፣ የተሻለ ነው።

በተጨማሪም, ከሌሎች ነገሮች መካከል, የምስጠራው አፈፃፀም አስደናቂ ነው. ካሊኮ ከቀድሞዎቹ CNIዎች አንዱ ነው፣ ነገር ግን ምስጠራ የተጨመረው ከጥቂት ሳምንታት በፊት ብቻ ነው። ከአይፒሴክ ይልቅ ሽቦ ጠባቂን መርጠዋል፣ እና በቀላል አነጋገር፣ በዚህ የፈተና ክፍል ውስጥ ሌሎች CNIዎችን ሙሉ በሙሉ ግርዶሽ በማድረግ ጥሩ እና አስደናቂ ይሰራል። እርግጥ ነው, በምስጠራ ምክንያት የፍጆታ ፍጆታ ይጨምራል, ነገር ግን የተገኘው ውጤት ዋጋ ያለው ነው (ካሊኮ በሴሊየም ሁለተኛ ደረጃ ላይ ከሚገኘው የኢንክሪፕሽን ሙከራ ስድስት እጥፍ መሻሻል አሳይቷል). በተጨማሪም, Calicoን ወደ ክላስተር ካሰማራህ በኋላ በማንኛውም ጊዜ የሽቦ ጠባቂን ማንቃት ትችላለህ, እና ከፈለጉ ለአጭር ጊዜ ወይም በቋሚነት ማሰናከል ትችላለህ. ምንም እንኳን በማይታመን ሁኔታ ምቹ ነው! ካሊኮ በአሁኑ ጊዜ MTUን በራስ-ሰር እንደማያገኝ እናስታውስዎታለን (ይህ ባህሪ ለወደፊት ስሪቶች የታቀደ ነው) ስለዚህ አውታረ መረብዎ Jumbo Frames (MTU 9000) የሚደግፍ ከሆነ MTU ን ማዋቀርዎን ያረጋግጡ።

ከሌሎች ነገሮች በተጨማሪ ሲሊየም በክላስተር ኖዶች መካከል (እና በፖድ መካከል ብቻ ሳይሆን) ትራፊክን ኢንክሪፕት ሊያደርግ እንደሚችል ልብ ይበሉ ይህም ለሕዝብ ክላስተር ኖዶች በጣም አስፈላጊ ሊሆን ይችላል።

እንደ ማጠቃለያ ፣ የሚከተሉትን የአጠቃቀም ጉዳዮችን እጠቁማለሁ ።

  • CNI እፈልጋለሁ በጣም ትንሽ ዘለላ ወይም ደህንነት አያስፈልገኝም።: ጋር መስራት Flannelበጣም ቀላል እና በጣም የተረጋጋ CNI (እሱ በሆሞ ኩበርናውተስ ወይም በሆሞ ኮንታይቶረስ እንደተፈጠረ በአፈ ታሪክ መሠረት እሱ በጣም ጥንታዊ ከሆኑት አንዱ ነው።). እንዲሁም በጣም ብልህ በሆነው ፕሮጀክት ላይ ፍላጎት ሊኖርዎት ይችላል። k3 ሴ፣ አረጋግጥ!
  • ለመደበኛ ክላስተር CNI ያስፈልጋል: ካሊኮ - የእርስዎ ምርጫ ፣ ግን አስፈላጊ ከሆነ MTU ን ማዋቀርዎን አይርሱ። በአውታረ መረብ ፖሊሲዎች በቀላሉ እና በተፈጥሮ መጫወት፣ ምስጠራን ማብራት እና ማጥፋት፣ ወዘተ ይችላሉ።
  • ለ(በጣም) ትልቅ ደረጃ ዘለላ CNI ያስፈልጋል: ደህና፣ ፈተናው የትልልቅ ስብስቦችን ባህሪ አያሳይም፣ ሙከራዎችን ብሰራ ደስ ይለኛል፣ ግን የ10Gbps ግንኙነት ያላቸው በመቶዎች የሚቆጠሩ አገልጋዮች የሉንም። ስለዚህ በጣም ጥሩው አማራጭ የተሻሻለ ሙከራን በኖዶችዎ ላይ ማካሄድ ነው፣ቢያንስ ከካሊኮ እና ከሲሊየም ጋር።

ምንጭ: hab.com

አስተያየት ያክሉ