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

ትላንት፣ ታኅሣሥ 9፣ ወስዷል የሚቀጥለው የ Kubernetes ልቀት - 1.17. ለብሎግችን በተዘጋጀው ወግ መሠረት በአዲሱ ስሪት ውስጥ በጣም አስፈላጊ ስለሆኑት ለውጦች እንነጋገራለን ።

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

ይህንን ቁሳቁስ ለማዘጋጀት ጥቅም ላይ የዋለው መረጃ ከኦፊሴላዊው ማስታወቂያ የተወሰደ ነው ፣ የኩበርኔትስ ማሻሻያዎች መከታተያ ሰንጠረዦች, ለውጥ-1.17 እና ተዛማጅ ጉዳዮች፣ ጥያቄዎችን ይጎትቱ እና የኩበርኔትስ ማበልጸጊያ ፕሮፖዛል (ኬፒ)። ታዲያ ምን አዲስ ነገር አለ?...

ቶፖሎጂን የሚያውቅ ማዘዋወር

የኩበርኔትስ ማህበረሰብ ይህንን ባህሪ ለረጅም ጊዜ ሲጠብቅ ቆይቷል - ቶፖሎጂን የሚያውቅ የአገልግሎት መስመር. ከሆነ ቁልፍ በጥቅምት ወር 2018 ይጀምራል, እና ኦፊሴላዊው ማጎልበት - ከ 2 ዓመታት በፊት, የተለመዱ ጉዳዮች (እንደ ይህም) - እና ከጥቂት አመታት በላይ...

አጠቃላይ ሀሳቡ በኩበርኔትስ ውስጥ ለሚኖሩ አገልግሎቶች "አካባቢያዊ" ማዘዋወርን የመተግበር ችሎታን መስጠት ነው። በዚህ ጉዳይ ላይ "አካባቢ" ማለት "ተመሳሳይ የቶፖሎጂ ደረጃ" ማለት ነው. (ቶፖሎጂ ደረጃ)ምናልባት፡-

  • መስቀለኛ መንገድ ለአገልግሎቶች ተመሳሳይ ነው ፣
  • ተመሳሳይ የአገልጋይ መደርደሪያ ፣
  • ተመሳሳይ ክልል
  • ተመሳሳይ የደመና አቅራቢ ፣
  • ...

ይህንን ባህሪ የመጠቀም ምሳሌዎች

  • ከበርካታ ተደራሽነት ዞኖች (multi-AZ) ጋር በደመና ጭነቶች ውስጥ በትራፊክ ላይ ቁጠባ - ይመልከቱ። ትኩስ ምሳሌ ከተመሳሳይ ክልል የትራፊክ ምሳሌን በመጠቀም, ግን በ AWS ውስጥ የተለያዩ AZs;
  • ዝቅተኛ የአፈፃፀም መዘግየት / የተሻለ የመተላለፊያ ይዘት;
  • በእያንዳንዱ ሸርተቴ ውስጥ ስላለው መስቀለኛ መንገድ አካባቢያዊ መረጃ ያለው የሻርድ አገልግሎት;
  • የምዝግብ ማስታወሻዎቻቸው ከተሰበሰቡ መተግበሪያዎች ጋር በተመሳሳይ መስቀለኛ መንገድ ላይ የቅልጥፍና (ወይም አናሎግ) አቀማመጥ;
  • ...

ስለ ቶፖሎጂ “የሚያውቀው” እንዲህ ዓይነቱ ማመላለሻ የአውታረ መረብ ትስስር ተብሎም ይጠራል - በተመሳሳይ መልኩ የመስቀለኛ መንገድ ትስስር, ፖድ ተዛማጅነት / ፀረ-ተዛማጅነት ወይም ታየ በጣም ረጅም ጊዜ አይደለም ቶፖሎጂ-አዋቂ የድምጽ መርሐግብር (እና) የድምጽ አቅርቦት). አሁን ያለው የአተገባበር ደረጃ ServiceTopology በኩበርኔትስ - የአልፋ ስሪት.

ባህሪው እንዴት እንደሚሰራ እና አስቀድመው ሊጠቀሙበት እንደሚችሉ ላይ ዝርዝሮችን ለማግኘት ያንብቡ ይህ ጽሑፍ ከአንዱ ደራሲዎች.

IPv4/IPv6 ባለሁለት ቁልል ድጋፍ

ጉልህ እድገት ተስተካክሏል በሌላ የአውታረ መረብ ባህሪ፡ በአንድ ጊዜ የሚደረግ ድጋፍ ለሁለት የአይፒ ቁልል፣ እሱም በመጀመሪያ የገባው K8s 1.16. በተለይም አዲሱ ልቀት የሚከተሉትን ለውጦች አምጥቷል፡

  • በ kube-proxy ተተግብሯል በሁለቱም ሁነታዎች (IPv4 እና IPv6) በአንድ ጊዜ የመተግበር እድል;
  • в Pod.Status.PodIPs ታየ ለታች ኤፒአይ ድጋፍ (በተመሳሳይ ጊዜ በ ውስጥ /etc/hosts አሁን አስተናጋጁ IPv6 አድራሻ እንዲጨምር ይፈልጋሉ);
  • ባለሁለት ቁልል ድጋፍ KIND (Kubernetes IN Docker) እና kubeadm;
  • የዘመነ e2e ሙከራዎች.

ኩበርኔትስ 1.17፡ የአዲሱ ነገር ዋና ዋና ዜናዎች
ምሳሌ ባለሁለት ቁልል IPV4/IPv6 በKIND በመጠቀም

በሲኤስአይ ላይ እድገት

መረጋጋቱ ተገለጸ ቶፖሎጂ ድጋፍ ለሲኤስአይ-ተኮር ማከማቻ፣ መጀመሪያ አስተዋወቀ K8s 1.12.

ተነሳሽነት ለ የድምጽ ተሰኪዎችን ወደ CSI ማዛወር - የሲኤስአይ ፍልሰት - የቅድመ-ይሁንታ ስሪት ደርሷል። ነባር የማከማቻ ተሰኪዎችን ለመተርጎም ይህ ባህሪ ወሳኝ ነው። (በዛፍ ውስጥ) ወደ ዘመናዊ በይነገጽ (CSI፣ ከዛፍ ውጪ) ለ Kubernetes የመጨረሻ ተጠቃሚዎች የማይታይ። የክላስተር አስተዳዳሪዎች የሲኤስአይ ፍልሰትን ማንቃት ብቻ ያስፈልጋቸዋል፣ከዚያም ነባር መንግስታዊ ሀብቶች እና የስራ ጫናዎች "ብቻ መስራት" ይቀጥላሉ... ነገር ግን በ Kubernetes ኮር ውስጥ ከተካተቱት ጊዜ ያለፈባቸውን ሳይሆን የቅርብ ጊዜውን የሲኤስአይ አሽከርካሪዎች መጠቀም አለባቸው።

በአሁኑ ጊዜ፣ ለAWS EBS ሾፌሮች ፍልሰት በቅድመ-ይሁንታ ስሪት ዝግጁ ነው (kubernetes.io/aws-ebs) እና GCE PD (kubernetes.io/gce-pd). የሌሎች ማከማቻ ቦታዎች ትንበያዎች እንደሚከተለው ናቸው

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

በK8s ውስጥ “ባህላዊ” የማከማቻ ድጋፍ እንዴት ወደ CSI እንደገባ ተነጋገርን። ይህ ጽሑፍ. እና የCSI ፍልሰት ወደ ቅድመ-ይሁንታ ሁኔታ መሸጋገር የተወሰነ ነው። የተለየ ህትመት በፕሮጀክቱ ብሎግ ላይ.

በተጨማሪም፣ በCSI አውድ ውስጥ ሌላ ጉልህ ተግባር፣ በ K1.17s 8 (የአልፋ ትግበራ) የሚመነጨው፣ በ Kubernetes 1.12 መለቀቅ ውስጥ የቅድመ-ይሁንታ ደረጃ ላይ ደርሷል (ማለትም በነባሪ የነቃ) - ቅጽበተ-ፎቶዎችን መፍጠር እና ከነሱ ማገገም. በቅድመ-ይሁንታ ልቀት መንገድ ላይ በKubernetes Volume Snapshot ላይ ከተደረጉት ለውጦች መካከል፡-

  • የ CSI ውጫዊ-ቅጽበታዊ ገጽ እይታን ወደ ሁለት መቆጣጠሪያዎች መከፋፈል ፣
  • ለመሰረዝ የተጨመረ ሚስጥር (ምስጢር ስረዛ) የአንድ ጥራዝ ቅጽበታዊ ገጽ እይታ ይዘት እንደ ማብራሪያ ፣
  • አዲስ ማጠናቀቂያ (ፍፃሜ) የተቀሩት ግንኙነቶች ካሉ ቅጽበተ-ፎቶ ኤፒአይ ነገር እንዳይሰረዝ ለመከላከል።

1.17 በሚለቀቅበት ጊዜ ባህሪው በሶስት የሲኤስአይ አሽከርካሪዎች ይደገፋል፡ GCE Persistent Disk CSI Driver፣ Portworx CSI Driver እና NetApp Trident CSI Driver። ስለ አተገባበሩ እና አጠቃቀሙ ተጨማሪ ዝርዝሮች በ ውስጥ ይገኛሉ ይህ እትም በብሎግ ላይ.

የደመና አቅራቢ መለያዎች

መለያዎችን በራስ-ሰር ጥቅም ላይ የዋለው የደመና አቅራቢ ላይ በመመስረት ለተፈጠሩት አንጓዎች እና መጠኖች ተመድቧል, Kubernetes ውስጥ እንደ ቅድመ-ይሁንታ ስሪት በጣም ለረጅም ጊዜ ይገኛሉ - K8s 1.2 ከተለቀቀ በኋላ (ኤፕሪል 2016!). ለረጅም ጊዜ በሰፊው ጥቅም ላይ ከዋሉ, ገንቢዎች ወሰነባህሪው የተረጋጋ (GA) ለማወጅ ጊዜው አሁን ነው።

ስለዚህ፣ ሁሉም በዚሁ መሰረት ተቀይረዋል (በቶፖሎጂ)፡-

  • beta.kubernetes.io/instance-typenode.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zonetopology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/regiontopology.kubernetes.io/region

... ግን አሁንም በቀድሞ ስማቸው (ለኋላ ተኳሃኝነት) ይገኛሉ። ሆኖም ሁሉም አስተዳዳሪዎች ወደ ወቅታዊ መለያዎች እንዲቀይሩ ይመከራሉ። ተዛማጅ ሰነዶች K8s ተዘምኗል።

የ kubeadm የተዋቀረ ውፅዓት

ለመጀመሪያ ጊዜ በአልፋ ስሪት ቀርቧል ለ kubeadm መገልገያ የተዋቀረ ውፅዓት. የሚደገፉ ቅርጸቶች፡ JSON፣ YAML፣ Go አብነት።

ይህንን ባህሪ ተግባራዊ ለማድረግ ተነሳሽነት (በእ.ኤ.አ.) ቁልፍ) ነው::

Kubernetes በእጅ ሊሰራጭ ቢችልም, የዚህ ክዋኔ (ከሆነ ደ ጁሬ ካልሆነ) መስፈርት kubeadm መጠቀም ነው. እንደ ቴራፎርም ያሉ ታዋቂ የስርዓቶች አስተዳደር መሳሪያዎች Kubernetes ለማሰማራት በ kubeadm ላይ ይመሰረታሉ። በክላስተር ኤፒአይ ላይ የታቀዱ ማሻሻያዎች ለ Kubernetes bootstrapping በ kubeadm እና Cloud-init ሊሰራ የሚችል ጥቅል ያካትታሉ።

የተዋቀረ ውፅዓት ከሌለ በመጀመሪያ በጨረፍታ በጣም የማይጎዱ ለውጦች እንኳን Terraform ፣ Cluster API እና ሌሎች የ kubeadm ውጤቶችን የሚጠቀሙ ሶፍትዌሮችን ሊሰብሩ ይችላሉ።

የቅርብ ዕቅዶቻችን ለሚከተሉት የ kubeadm ትዕዛዞች ድጋፍ (በተዋቀረ ውፅዓት መልክ) ያካትታሉ፡

  • alpha certs
  • config images list
  • init
  • token create
  • token list
  • upgrade plan
  • version

ለትእዛዝ የJSON ምላሽ ምሳሌ kubeadm init -o json:

{
  "node0": "192.168.20.51:443",
  "caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
  "token": {
    "id":          "5ndzuu.ngie1sxkgielfpb1",
    "ttl":         "23h",
    "expires":     "2019-05-08T18:58:07Z",
    "usages":      [
      "authentication",
      "signing"
    ],
    "description": "The default bootstrap token generated by 'kubeadm init'.",
    "extraGroups": [
      "system:bootstrappers:kubeadm:default-node-token"
    ]
  },
  "raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}

የሌሎች ፈጠራዎች መረጋጋት

በአጠቃላይ የኩበርኔትስ 1.17 መለቀቅ የተካሄደው “በሚል መሪ ቃል ነው።መረጋጋት" ይህ የተመቻቸው በውስጡ ብዙ ባህሪያት በመኖራቸው ነው (ጠቅላላ ቁጥራቸው ነው። 14) የ GA ሁኔታ ተቀብሏል. ከነሱ መካክል:

ሌሎች ለውጦች

በ Kubernetes 1.17 ውስጥ ያለው ሙሉ የፈጠራዎች ዝርዝር, በእርግጥ, ከላይ በተዘረዘሩት ብቻ የተገደበ አይደለም. አንዳንድ ሌሎች እዚህ አሉ (እና ለተሟላ ዝርዝር ይመልከቱ መለወጥ):

  • በመጨረሻው ልቀት ላይ የቀረበው ባህሪ የቅድመ-ይሁንታ ስሪት ላይ ደርሷል RunAsUserName ለዊንዶውስ;
  • ተመሳሳይ ለውጥ አጋጠመው EndpointSlice API (እንዲሁም ከK8s 1.16)፣ ነገር ግን ለአሁን ይህ የEndpoint API አፈጻጸም/መጠን ለማሻሻል ይህ መፍትሔ በነባሪነት አልነቃም።
  • እንክብሎች አሁን ለክላስተር ስራ ወሳኝ ናቸው። መፍጠር ይቻላል። በስም ቦታዎች ላይ ብቻ አይደለም kube-system (ለዝርዝሮች፣ ሰነዱን ይመልከቱ የቅድሚያ ክፍል ፍጆታን ይገድቡ);
  • ለ kubelet አዲስ አማራጭ - --reserved-cpus - ለስርዓቱ የተቀመጡትን የሲፒዩዎች ዝርዝር በግልፅ እንዲገልጹ ያስችልዎታል;
  • kubectl logs ቀርቧል አዲስ ባንዲራ --prefix, በእያንዳንዱ የምዝግብ ማስታወሻ መስመር ላይ የፖድ እና የምንጭ መያዣ ስም መጨመር;
  • в label.Selector ታክሏል RequiresExactMatch;
  • ሁሉም መያዣዎች በ kube-dns አሁን እየሮጡ ናቸው በትንሽ መብቶች;
  • hyperkube ወደ የተለየ GitHub ማከማቻ ተለያይቷል እና ከአሁን በኋላ በኩበርኔትስ ልቀቶች ውስጥ አይካተትም።
  • በጣም የተሻሻለ አፈጻጸም kube-proxy ላልሆኑ UDP ወደቦች።

ጥገኛ ለውጦች፡-

  • በ kubeadm ውስጥ የተካተተው CoreDNS ስሪት 1.6.5 ነው;
  • crctl ስሪት ወደ v1.16.1 ተዘምኗል;
  • CSI 1.2.0;
  • ወዘተ 3.4.3;
  • የቅርብ ጊዜ የተፈተነ Docker ስሪት ወደ 19.03 ተሻሽሏል;
  • Kubernetes 1.17 ለመገንባት የሚያስፈልገው ዝቅተኛው የ Go ስሪት 1.13.4 ነው።

PS

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

ምንጭ: hab.com

አስተያየት ያክሉ