Kubernetes 1.17: Vivutio vya kile kipya

Jana, Desemba 9, ilifanyika toleo linalofuata la Kubernetes - 1.17. Kulingana na mila ambayo imeundwa kwa blogi yetu, tunazungumza juu ya mabadiliko muhimu zaidi katika toleo jipya.

Kubernetes 1.17: Vivutio vya kile kipya

Habari iliyotumika kuandaa nyenzo hii imechukuliwa kutoka kwa tangazo rasmi, Kubernetes majedwali ya ufuatiliaji ya maboresho, MABADILIKO-1.17 na masuala yanayohusiana, maombi ya kuvuta, na Mapendekezo ya Kuboresha Kubernetes (KEP). Kwa hivyo, ni nini kipya? ..

Uelekezaji wa ufahamu wa topolojia

Jumuiya ya Kubernetes imekuwa ikingojea kipengele hiki kwa muda mrefu - Uelekezaji wa huduma unaofahamu juu ya topolojia. Ikiwa CAP inaanza Oktoba 2018, na rasmi kukuza - Miaka 2 iliyopita, masuala ya kawaida (kama ni) - na miaka michache zaidi ...

Wazo la jumla ni kutoa uwezo wa kutekeleza uelekezaji wa "ndani" kwa huduma zinazoishi Kubernetes. "Maeneo" katika kesi hii inamaanisha "kiwango sawa cha topolojia" (kiwango cha topolojia), ambayo inaweza kuwa:

  • nodi sawa kwa huduma,
  • rack sawa ya seva,
  • mkoa huo huo
  • mtoaji sawa wa wingu,
  • ...

Mifano ya kutumia kipengele hiki:

  • akiba kwenye trafiki katika usakinishaji wa wingu na kanda nyingi za upatikanaji (multi-AZ) - tazama. kielelezo kipya kwa kutumia mfano wa trafiki kutoka eneo moja, lakini AZ tofauti katika AWS;
  • kasi ya chini ya utendaji/upitishaji bora;
  • huduma iliyogawanywa ambayo ina habari ya ndani kuhusu nodi katika kila shard;
  • uwekaji wa ufasaha (au analogues) kwenye nodi sawa na maombi ambayo magogo yanakusanywa;
  • ...

Njia kama hiyo, ambayo "inajua" juu ya topolojia, pia inaitwa ushirika wa mtandao - kwa mlinganisho na mshikamano wa nodi, mshikamano wa pod/kupinga mshikamano au alionekana si muda mrefu uliopita Upangaji wa Kiasi cha Ufahamu wa Topolojia (na Utoaji wa Kiasi) Kiwango cha sasa cha utekelezaji ServiceTopology katika Kubernetes - toleo la alpha.

Kwa maelezo kuhusu jinsi kipengele kinavyofanya kazi na jinsi unavyoweza kukitumia, soma Makala hii kutoka kwa mmoja wa waandishi.

Usaidizi wa rafu mbili za IPv4/IPv6

Maendeleo makubwa fasta katika kipengele kingine cha mtandao: usaidizi wa wakati mmoja kwa safu mbili za IP, ambazo zilianzishwa kwanza K8s 1.16. Hasa, toleo jipya lilileta mabadiliko yafuatayo:

  • katika kube-proksi kutekelezwa uwezekano wa operesheni ya wakati mmoja katika njia zote mbili (IPv4 na IPv6);
  • Π² Pod.Status.PodIPs alionekana msaada kwa API ya kushuka (wakati huo huo kama in /etc/hosts sasa wanahitaji mwenyeji kuongeza anwani ya IPv6);
  • msaada wa stack mbili KIND (Kubernetes IN Docker) na kubeadm;
  • majaribio ya e2e yaliyosasishwa.

Kubernetes 1.17: Vivutio vya kile kipya
Kielelezo kwa kutumia rafu mbili za IPV4/IPv6 katika KIND

Maendeleo kwenye CSI

Imetangazwa kuwa thabiti msaada wa topolojia kwa hifadhi inayotegemea CSI, iliyoletwa kwa mara ya kwanza K8s 1.12.

Initiative kwa uhamishaji wa programu jalizi za kiasi hadi CSI - Uhamiaji wa CSI - kufikiwa toleo la beta. Kipengele hiki ni muhimu ili kutafsiri programu jalizi zilizopo za hifadhi (ndani ya mti) kwa kiolesura cha kisasa (CSI, nje ya mti) haionekani kwa watumiaji wa mwisho wa Kubernetes. Wasimamizi wa Nguzo watahitaji tu kuwezesha Uhamiaji wa CSI, baada ya hapo rasilimali na mzigo wa kazi uliopo utaendelea "kufanya kazi tu"... lakini kwa kutumia viendeshi vya hivi punde zaidi vya CSI badala ya vilivyopitwa na wakati vilivyojumuishwa kwenye msingi wa Kubernetes.

Kwa sasa, uhamiaji wa viendeshi vya AWS EBS uko tayari katika toleo la beta (kubernetes.io/aws-ebs) na GCE PD (kubernetes.io/gce-pd) Utabiri wa vifaa vingine vya kuhifadhi ni kama ifuatavyo.

Kubernetes 1.17: Vivutio vya kile kipya

Tulizungumza juu ya jinsi msaada wa uhifadhi wa "jadi" katika K8s ulikuja kwa CSI Makala hii. Na ubadilishaji wa uhamiaji wa CSI hadi hali ya beta umetolewa uchapishaji tofauti kwenye blogu ya mradi.

Kwa kuongezea, utendakazi mwingine muhimu katika muktadha wa CSI, ambao huanzia (utekelezaji wa alpha) katika K1.17s 8, ulifikia hali ya beta (yaani kuwezeshwa kwa chaguomsingi) katika toleo la Kubernetes 1.12 - kuunda snapshots na kupona kwao. Miongoni mwa mabadiliko yaliyofanywa kwa Kubernetes Volume Snapshot kwenye njia ya kutolewa kwa beta:

  • kugawanya gari la pembeni la CSI-snapshotter kuwa vidhibiti viwili,
  • siri iliyoongezwa ya kufutwa (siri ya kufuta) kama kidokezo kwa yaliyomo katika muhtasari wa kiasi,
  • mkamilishaji mpya (mkamilishaji) ili kuzuia kipengee cha API cha muhtasari kufutwa ikiwa kuna miunganisho iliyosalia.

Wakati wa kutolewa kwa 1.17, kipengele kinaauniwa na viendeshaji vitatu vya CSI: Dereva wa GCE Persistent Disk CSI, Dereva wa Portworx CSI na Dereva wa NetApp Trident CSI. Maelezo zaidi juu ya utekelezaji na matumizi yake yanaweza kupatikana katika uchapishaji huu kwenye blogu.

Lebo za Mtoa huduma wa Wingu

Lebo ambazo kiotomatiki imepewa nodi na viwango vilivyoundwa kulingana na mtoaji wa wingu anayetumiwa, zimepatikana katika Kubernetes kama toleo la beta kwa muda mrefu sana - tangu kutolewa kwa K8s 1.2 (Aprili 2016!). Kwa kuzingatia matumizi yao yaliyoenea kwa muda mrefu, watengenezaji kuamua, kwamba ni wakati wa kutangaza kipengele thabiti (GA).

Kwa hivyo, zote zilibadilishwa jina ipasavyo (na topolojia):

  • beta.kubernetes.io/instance-type β†’ node.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zone β†’ topology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/region β†’ topology.kubernetes.io/region

... lakini bado zinapatikana chini ya majina yao ya zamani (kwa utangamano wa nyuma). Hata hivyo, wasimamizi wote wanapendekezwa kubadili kwenye lebo za sasa. Nyaraka Zinazohusiana K8s imesasishwa.

Pato la muundo wa kubeadm

Imewasilishwa katika toleo la alpha kwa mara ya kwanza pato lililopangwa kwa matumizi ya kubeadm. Miundo inayotumika: JSON, YAML, kiolezo cha Go.

Motisha ya kutekeleza kipengele hiki (kulingana na CAP) ni:

Ingawa Kubernetes inaweza kutumwa kwa mikono, kiwango cha de facto (kama si cha jure) cha operesheni hii ni kutumia kubeadm. Zana za usimamizi wa mifumo maarufu kama Terraform zinategemea kubeadm kwa utumiaji wa Kubernetes. Maboresho yaliyopangwa kwa API ya Nguzo ni pamoja na kifurushi kinachoweza kutungwa cha Kubernetes bootstrapping na kubeadm na cloud-init.

Bila matokeo yaliyopangwa, hata mabadiliko yasiyo na hatia kwa mtazamo wa kwanza yanaweza kuvunja Terraform, Cluster API na programu nyingine zinazotumia matokeo ya kubeadm.

Mipango yetu ya haraka ni pamoja na usaidizi (katika mfumo wa matokeo yaliyopangwa) kwa amri zifuatazo za kubeadm:

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

Mchoro wa jibu la JSON kwa amri 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="
}

Utulivu wa ubunifu mwingine

Kwa ujumla, kutolewa kwa Kubernetes 1.17 kulifanyika chini ya kauli mbiu "Utata" Hii iliwezeshwa na ukweli kwamba vipengele vingi ndani yake (idadi yao jumla ni 14) kupokea hali ya GA. Kati yao:

Mabadiliko mengine

Orodha kamili ya ubunifu katika Kubernetes 1.17, bila shaka, sio mdogo kwa wale waliotajwa hapo juu. Hapa kuna zingine (na kwa orodha kamili zaidi, ona CHANGELOG):

  • Kipengele kilichowasilishwa katika toleo la mwisho kimefikia toleo la beta RunAsUserName kwa madirisha;
  • mabadiliko sawa ilitokea API ya EndpointSlice (pia kutoka K8s 1.16), hata hivyo kwa sasa suluhisho hili la kuboresha utendaji/uwezo wa API ya Endpoint haujawezeshwa kwa chaguo-msingi;
  • maganda sasa ni muhimu kwa uendeshaji wa nguzo inaweza kuundwa sio tu kwenye nafasi za majina kube-system (kwa maelezo, angalia hati za Punguza matumizi ya Hatari ya Kipaumbele);
  • chaguo mpya kwa kubelet - --reserved-cpus - hukuruhusu kufafanua kwa uwazi orodha ya CPU zilizohifadhiwa kwa mfumo;
  • kwa kubectl logs imewasilishwa bendera mpya --prefix, akiongeza jina la ganda na chombo cha chanzo kwa kila mstari wa logi;
  • Π² label.Selector imeongezwa RequiresExactMatch;
  • vyombo vyote katika kube-dns sasa zinakimbia na upendeleo mdogo;
  • hyperkube kutengwa katika hazina tofauti ya GitHub na haitajumuishwa tena katika matoleo ya Kubernetes;
  • mengi utendaji ulioboreshwa kube-proksi kwa bandari zisizo za UDP.

Mabadiliko ya utegemezi:

  • Toleo la CoreDNS lililojumuishwa katika kubeadm ni 1.6.5;
  • toleo la crictl limesasishwa hadi v1.16.1;
  • CSI 1.2.0;
  • nk 3.4.3;
  • Toleo la hivi karibuni la Docker iliyojaribiwa iliyosasishwa hadi 19.03;
  • Toleo la chini la Go linalohitajika kuunda Kubernetes 1.17 ni 1.13.4.

PS

Soma pia kwenye blogi yetu:

Chanzo: mapenzi.com

Kuongeza maoni