ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች

ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች

በዚህ ምሽት ይከናወናል ቀጣዩ የኩበርኔትስ ልቀት - 1.14. ለብሎጋችን ባዘጋጀው ወግ መሠረት፣ በአዲሱ የዚህ አስደናቂ የክፍት ምንጭ ምርት ውስጥ ስላሉት ቁልፍ ለውጦች እየተነጋገርን ነው።

ይህንን ቁሳቁስ ለማዘጋጀት ጥቅም ላይ የሚውለው መረጃ የተወሰደው ከ የኩበርኔትስ ማሻሻያዎች መከታተያ ሰንጠረዦች, ለውጥ-1.14 እና ተዛማጅ ጉዳዮች፣ የመሳብ ጥያቄዎች፣ Kubernetes Enhancement Proposals (KEP)።

ከ SIG ክላስተር-የህይወት ዑደት ጠቃሚ መግቢያ እንጀምር፡- ተለዋዋጭ ያልተሳካላቸው ስብስቦች Kubernetes (ወይም የበለጠ ትክክለኛ ለመሆን፣ በራስ የሚስተናገዱ የHA ማሰማራቶች) አሁን ነው። መፍጠር ይቻላል። የሚታወቁ (በነጠላ መስቀለኛ መንገድ ስብስቦች አውድ) ትዕዛዞችን በመጠቀም kubeadm (init и join). በአጭሩ ለዚህ፡-

  • በክላስተር ጥቅም ላይ የዋሉ የምስክር ወረቀቶች ወደ ሚስጥሮች ተላልፈዋል;
  • የ etcd ክላስተርን በK8s ክላስተር ውስጥ የመጠቀም እድል (ማለትም ቀደም ሲል የነበረውን የውጭ ጥገኝነት ማስወገድ) ወዘተ-ከዋኝ;
  • ስህተትን የሚቋቋም ውቅር የሚያቀርበውን ለውጫዊ ጭነት ሚዛን የሚመከሩትን መቼቶች ይመዘግባል (ወደፊት ይህንን ጥገኝነት ለማስወገድ የታቀደ ነው ፣ ግን በዚህ ደረጃ ላይ አይደለም)።

ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች
በkubeadm የተፈጠረ የኩበርኔትስ HA ክላስተር አርክቴክቸር

የአተገባበሩን ዝርዝሮች በ ውስጥ ማግኘት ይቻላል የንድፍ ፕሮፖዛል. ይህ ባህሪ በእውነት ለረጅም ጊዜ ሲጠበቅ የነበረው ነበር፡ የአልፋ ስሪት በK8s 1.9 ተመልሶ ነበር የሚጠበቀው፣ ግን አሁን ብቻ ነው የሚታየው።

ኤ ፒ አይ

ቡድን apply እና በአጠቃላይ መናገር ገላጭ ነገር አስተዳደር አለፈkubectl apiserver ውስጥ. ገንቢዎቹ ራሳቸው ይህን በመናገር ውሳኔያቸውን በአጭሩ ያብራራሉ kubectl apply - በ Kubernetes ውስጥ ካሉ ውቅሮች ጋር አብሮ የመስራት ዋና አካል ፣ ሆኖም ፣ “በችግሮች የተሞላ እና ለመጠገን አስቸጋሪ ነው” እና ስለዚህ ይህ ተግባር ወደ መደበኛው መመለስ እና ወደ መቆጣጠሪያው አውሮፕላን መተላለፍ አለበት። ዛሬ ላሉ ችግሮች ቀላል እና ግልጽ ምሳሌዎች

ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች

ስለ አፈፃፀሙ ዝርዝሮች ቀርበዋል ቁልፍ. የአሁኑ ዝግጁነት አልፋ ነው (ለቅድመ-ይሁንታ ማስተዋወቅ ለሚቀጥለው የኩበርኔትስ ልቀት የታቀደ ነው)።

በአልፋ ስሪት ውስጥ ይገኛል። ዕድል የ OpenAPI v3 እቅድን በመጠቀም ለ CustomResources የOpenAPI ሰነድ መፍጠር እና ማተም (CR) ለማፅደቅ (አገልጋይ-ጎን) K8s በተጠቃሚ የተገለጹ ሀብቶች (CustomResourceDefinition፣ CRD) ጥቅም ላይ ይውላል። ክፍት ኤፒአይን ለሲአርዲ ማተም ደንበኞችን ይፈቅዳል (ለምሳሌ፦ kubectl) በጎንዎ ላይ ማረጋገጫ ያከናውኑ (ውስጥ kubectl create и kubectl apply) እና በእቅዱ መሰረት ሰነዶችን ያወጣል (kubectl explain). ዝርዝሮች - ውስጥ ቁልፍ.

ቅድመ-ነባር ምዝግብ ማስታወሻዎች አሁን ይከፈታሉ ባንዲራ ያለው O_APPEND (ግን አይደለም O_TRUNC) በአንዳንድ ሁኔታዎች የምዝግብ ማስታወሻዎችን መጥፋት ለማስወገድ እና ለማሽከርከር ውጫዊ መገልገያዎችን ለመቁረጥ አመቺነት.

እንዲሁም በ Kubernetes ኤፒአይ አውድ ውስጥ፣ ውስጥ መሆኑን ልብ ሊባል ይችላል። PodSandbox и PodSandboxStatus ታክሏል መስክ runtime_handler ስለ መረጃ ለመመዝገብ RuntimeClass በፖድ ውስጥ (ስለ ጽሑፉ ስለ እሱ የበለጠ ያንብቡ Kubernetes 1.12 መለቀቅ, ይህ ክፍል እንደ አልፋ ስሪት የታየበት) እና በመግቢያ Webhooks ውስጥ ተተግብሯል የትኞቹን ስሪቶች የመወሰን ችሎታ AdmissionReview ይደግፋሉ። በመጨረሻም፣ የመግቢያ Webhooks ደንቦች አሁን ናቸው። ሊገደብ ይችላል በስም ቦታዎች እና በክላስተር ማዕቀፎች የመጠቀማቸው መጠን።

የማጠራቀሚያ ተቋማት

PersistentLocalVolumesከተለቀቀ በኋላ የቅድመ-ይሁንታ ሁኔታ የነበረው K8s 1.10, አስታወቀ የተረጋጋ (GA): ይህ የባህሪ በር ከአሁን በኋላ አልተሰናከለም እና በ Kubernetes 1.17 ውስጥ ይወገዳል.

ዕድል የሚባሉ የአካባቢ ተለዋዋጮችን በመጠቀም የታች ኤፒአይ (ለምሳሌ ፣ የፖድ ስም) እንደ የተጫኑ ማውጫዎች ስሞች subPath, ተፈጠረ - በአዲስ መስክ መልክ subPathExpr, አሁን የሚፈለገውን የማውጫ ስም ለመወሰን ጥቅም ላይ ይውላል. ባህሪው መጀመሪያ ላይ በኩበርኔትስ 1.11 ውስጥ ታየ ፣ ግን ለ 1.14 በአልፋ ሥሪት ሁኔታ ውስጥ ቆይቷል።

ልክ እንደ ቀደመው የኩበርኔትስ ልቀት፣ በንቃት ለሚገነባው CSI (የኮንቴይነር ማከማቻ በይነገጽ) ብዙ ጉልህ ለውጦች ቀርበዋል።

በ CSI

የሚገኝ ሆነ (እንደ የአልፋ ሥሪት አካል) ድጋፍ ለ CSI ጥራዞች መጠን መቀየር. እሱን ለመጠቀም የተጠራውን የባህሪ በር ማንቃት ያስፈልግዎታል ExpandCSIVolumes, እንዲሁም ለዚህ ቀዶ ጥገና በአንድ የተወሰነ የሲኤስአይ አሽከርካሪ ውስጥ ድጋፍ መኖሩ.

በአልፋ ስሪት ውስጥ ለ CSI ሌላ ባህሪ - ዕድል በቀጥታ (ማለትም PV/PVC ሳይጠቀሙ) በፖድ ዝርዝር ውስጥ ወደ CSI ጥራዞች ይመልከቱ። ይህ CSI እንደ ልዩ የርቀት የውሂብ ማከማቻ አጠቃቀም ላይ ያለውን ገደብ ያስወግዳልለእነርሱ ለዓለም በሮች ይከፍታሉ የአካባቢያዊ ኢፌመር ጥራዞች. ለመጠቀም (ምሳሌ ከሰነድ) መንቃት አለበት። CSIInlineVolume ባህሪ በር.

ለዋና ተጠቃሚዎች (የስርዓት አስተዳዳሪዎች) በጣም የማይታዩ ከሲኤስአይ ጋር በተዛመደ የኩበርኔትስ “ውስጣዊ” ውስጥ መሻሻል ታይቷል ... በአሁኑ ጊዜ ገንቢዎች የእያንዳንዱን የማከማቻ ተሰኪ ሁለት ስሪቶች እንዲደግፉ ይገደዳሉ-አንድ - “በ የድሮ መንገድ”፣ በK8s codebase ውስጥ (በዛፍ ውስጥ)፣ እና ሁለተኛው - እንደ አዲሱ CSI አካል። (ስለ እሱ የበለጠ ያንብቡ ፣ ለምሳሌ ፣ በ እዚህ). ይህ CSI እራሱ ሲያረጋጋ ሊረዱ ​​የሚችሉ ችግሮችን ያስከትላል። በዚህ ምክንያት የውስጣዊ (በዛፍ ውስጥ) ተሰኪዎችን ኤፒአይ በቀላሉ ማሰናከል አይቻልም ተዛማጅ የኩበርኔትስ ፖሊሲ.

ይህ ሁሉ የአልፋ ስሪት መድረሱን እውነታ አስከትሏል የፍልሰት ሂደት የውስጥ ተሰኪ ኮድበሲኤስአይ ፕለጊኖች ውስጥ እንደ ዛፍ ውስጥ የተተገበረ፣ ለዚህም ምስጋና ይግባውና የገንቢዎች ጭንቀቶች አንድ የፕለጊኖቻቸውን ስሪት መደገፍ ይቀንሳሉ፣ እና ከአሮጌ ኤፒአይዎች ጋር ያለው ተኳሃኝነት ይቀራል እና በተለመደው ሁኔታ ጊዜ ያለፈባቸው ናቸው ሊባሉ ይችላሉ። በሚቀጥለው የ Kubernetes (1.15) ልቀቶች ሁሉም የደመና አቅራቢ ተሰኪዎች እንደሚሰደዱ ይጠበቃል፣ ትግበራው የቅድመ-ይሁንታ ሁኔታ ይቀበላል እና በነባሪ በ K8s ጭነቶች ውስጥ ገቢር ይሆናል። ለዝርዝር መረጃ ይመልከቱ የንድፍ ፕሮፖዛል. ይህ ፍልሰትም አስከትሏል። አለመሳካት በተወሰኑ የደመና አቅራቢዎች (AWS፣ Azure፣ GCE፣ Cinder) ከተገለጹ የድምጽ ገደቦች።

በተጨማሪም፣ ከሲኤስአይ ጋር መሣሪያዎችን ለማገድ ድጋፍ (CSIBlockVolume) ተላልፏል ወደ ቤታ ስሪት።

አንጓዎች/Kubelet

የአልፋ ስሪት ቀርቧል አዲስ የመጨረሻ ነጥብ Kubelet ውስጥ, የተነደፈ ለ በቁልፍ ሀብቶች ላይ መለኪያዎችን መመለስ. በአጠቃላይ፣ ከዚህ ቀደም ኩቤሌት የመያዣ አጠቃቀምን በተመለከተ ከ cAdvisor መረጃ ከተቀበለ፣ አሁን ይህ መረጃ የሚመጣው ከመያዣው የአሂድ ጊዜ አካባቢ በ CRI (ኮንቴይነር የሩጫ ጊዜ በይነገጽ) በኩል ነው፣ ነገር ግን ከድሮው የዶከር ስሪቶች ጋር አብሮ ለመስራት ተኳሃኝነት ተጠብቆ ይገኛል። ከዚህ ቀደም በኩቤሌት የተሰበሰቡ ስታቲስቲክስ በREST API ተልኳል፣ አሁን ግን የመጨረሻ ነጥብ የሚገኘው በ /metrics/resource/v1alpha1. የገንቢዎች የረጅም ጊዜ ስትራቴጂ ያቀፈ ነው በኩቤሌት የቀረበውን የመለኪያዎች ስብስብ መቀነስ ነው። በነገራችን ላይ እነዚህ መለኪያዎች እራሳቸው አሁን ይደውላሉ "ዋና መለኪያዎች" ሳይሆን "የሀብት መለኪያዎች", እና "እንደ ሲፒዩ እና ማህደረ ትውስታ ያሉ የመጀመሪያ ደረጃ ሀብቶች" ተብለው ተገልጸዋል.

በጣም የሚያስደስት ነገር፡- የ gRPC የመጨረሻ ነጥብ የፕሮሜቲየስን ቅርጸት ከተጠቀምንባቸው የተለያዩ ጉዳዮች ጋር በማነፃፀር ግልጽ የሆነ የአፈጻጸም ጠቀሜታ ቢኖረውም (ከታች ካሉት መመዘኛዎች የአንዱን ውጤት ይመልከቱ), ደራሲዎቹ በማህበረሰቡ ውስጥ የዚህ የክትትል ስርዓት ግልጽ አመራር ምክንያት የፕሮሜቲየስን የጽሑፍ ቅርጸት መርጠዋል.

“gRPC ከዋና ዋና የክትትል ቧንቧዎች ጋር ተኳሃኝ አይደለም። የመጨረሻ ነጥብ መለኪያዎችን ወደ ሜትሪክስ አገልጋይ ለማድረስ ወይም ከእሱ ጋር በቀጥታ የሚዋሃዱ ክፍሎችን ለመከታተል ብቻ ጠቃሚ ይሆናል። በሜትሪክስ አገልጋይ ውስጥ መሸጎጫ ሲጠቀሙ የፕሮሜቴየስ የጽሑፍ ቅርጸት አፈፃፀም ጥሩ በቂ ፕሮሜቴየስን በማህበረሰቡ ውስጥ በሰፊው ተቀባይነት በማግኘቱ ከ gRPC ይልቅ ፕሮሜቴየስን እንድንመርጥ ነው። አንዴ የOpenMetrics ቅርጸቱ ይበልጥ የተረጋጋ ከሆነ፣ የ gRPC አፈጻጸምን በፕሮቶ ላይ በተመሰረተ ቅርጸት መቅረብ እንችላለን።

ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች
በአዲሱ የኩቤሌት የመጨረሻ ነጥብ ለሜትሪዎች gRPC እና Prometheus ቅርጸቶችን ለመጠቀም ከተነፃፃሪ የአፈጻጸም ሙከራዎች አንዱ። ተጨማሪ ግራፎች እና ሌሎች ዝርዝሮች በ ውስጥ ይገኛሉ ቁልፍ.

ከሌሎች ለውጦች መካከል፡-

  • ኩቤሌት አሁን (አንድ ጊዜ) ለማቆም መሞከር እንደገና ከመጀመርዎ በፊት እና ክዋኔዎችን ከመሰረዝዎ በፊት ባልታወቀ ሁኔታ ውስጥ ያሉ መያዣዎች።
  • ሲጠቀሙ PodPresets አሁን ወደ ውስጠቱ መያዣ ታክሏል እንደ መደበኛ መያዣ ተመሳሳይ መረጃ.
  • ኩቤሌት መጠቀም ጀመረ usageNanoCores ከ CRI ስታቲስቲክስ አቅራቢ, እና በዊንዶው ላይ ለአንጓዎች እና መያዣዎች ታክሏል የአውታረ መረብ ስታቲስቲክስ.
  • የስርዓተ ክወና እና የአርክቴክቸር መረጃ አሁን በመለያዎች ውስጥ ተመዝግቧል kubernetes.io/os и kubernetes.io/arch መስቀለኛ ነገሮች (ከቅድመ-ይሁንታ ወደ GA) ተላልፈዋል.
  • በፖድ ውስጥ ለመያዣዎች የተወሰነ የስርዓት ተጠቃሚ ቡድንን የመግለጽ ችሎታ (RunAsGroup፣ ውስጥ ታየ K8s 1.11) የላቀ ከቅድመ-ይሁንታ በፊት (በነባሪነት የነቃ)።
  • du እና በ cAdvisor ውስጥ ጥቅም ላይ ይውላሉ ፣ ተተካ በ Go ትግበራ ላይ.

CLI

በ cli-runtime እና kubectl ታክሏል -k ጋር ለመዋሃድ ባንዲራ ማበጀት (በነገራችን ላይ, እድገቱ አሁን በተለየ ማጠራቀሚያ ውስጥ ይከናወናል), ማለትም. ተጨማሪ የ YAML ፋይሎችን ከልዩ ኩስታሚላይዜሽን ማውጫዎች ለማስኬድ (በእነሱ አጠቃቀም ላይ ዝርዝሮችን ለማግኘት ይመልከቱ ቁልፍ):

ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች
ቀላል የፋይል አጠቃቀም ምሳሌ ማበጀት (ተጨማሪ ውስብስብ የሆነ የ kustomiza መተግበሪያ በ ውስጥ ይቻላል ተደራቢዎች።)

በተጨማሪም:

  • ታክሏል። አዲስ ቡድን kubectl create cronjob፣ ስማቸው ለራሱ ይናገራል።
  • В kubectl logs አሁን ይችላሉ። ለማጣመር ባንዲራዎች -f (--follow ለዥረት መዝገቦች) እና -l (--selector ለመለያ ጥያቄ)።
  • kubectl አስተምሯል። በዱር ካርድ የተመረጡ ፋይሎችን ይቅዱ።
  • ለቡድኑ kubectl wait ታክሏል ባንዲራ --all በተጠቀሰው የንብረት አይነት ስም ቦታ ውስጥ ያሉትን ሁሉንም ሀብቶች ለመምረጥ.

ሌላ

የሚከተሉት ችሎታዎች የተረጋጋ (GA) ሁኔታን አግኝተዋል።

በ Kubernetes 1.14 ውስጥ የገቡ ሌሎች ለውጦች፡-

  • ነባሪ የRBAC ፖሊሲ ከአሁን በኋላ የኤፒአይ መዳረሻን አይፈቅድም። discovery и access-review ተጠቃሚዎች ያለ ማረጋገጫ (ያልተረጋገጠ).
  • ኦፊሴላዊ የCoreDNS ድጋፍ የተረጋገጠ ሊኑክስ ብቻ፣ ስለዚህ (CoreDNS) በክላስተር ውስጥ ለማሰማራት kubeadm ሲጠቀሙ ኖዶች በሊኑክስ ላይ ብቻ መሮጥ አለባቸው (nodeSelectors ለዚህ ገደብ ጥቅም ላይ ይውላሉ)።
  • ነባሪው የCoreDNS ውቅር አሁን ነው። ይጠቀማል ወደፊት ተሰኪ በውክልና ፋንታ። እንዲሁም በCoreDNS ውስጥ ታክሏል ዝግጁነት ፕሮብ ፣ ይህም በተገቢው (ለአገልግሎት ዝግጁ ያልሆነ) ፖድ ላይ ጭነት ሚዛንን ይከላከላል።
  • በ kubeadm ፣ በደረጃዎች ላይ init ወይም upload-certs, የሚቻል ሆነ አዲሱን መቆጣጠሪያ-አውሮፕላን ከ kubeadm-certs ሚስጥር ጋር ለማገናኘት የሚያስፈልጉትን የምስክር ወረቀቶች ይጫኑ (ባንዲራውን ይጠቀሙ --experimental-upload-certs).
  • ለዊንዶውስ ጭነቶች የአልፋ ስሪት ታይቷል። ድጋፍ gMSA (የቡድን የሚተዳደር አገልግሎት መለያ) - ልዩ መለያዎች በአክቲቭ ዳይሬክተሩ ውስጥ እንዲሁም በመያዣዎች ሊጠቀሙባቸው ይችላሉ።
  • ለጂ.ሲ.ኢ. ነቅቷል mTLS ምስጠራ በ etcd እና kube-apiserver መካከል።
  • ጥቅም ላይ በሚውል/ጥገኛ ሶፍትዌር ውስጥ ያሉ ማሻሻያዎች፡ Go 1.12.1፣ CSI 1.1፣ CoreDNS 1.3.1፣ Docker 18.09 support in kubeadm፣ እና ዝቅተኛው የሚደገፈው Docker API ስሪት አሁን 1.26 ነው።

PS

በብሎጋችን ላይ ያንብቡ፡-

ምንጭ: hab.com

አስተያየት ያክሉ