Vakar, 9. decembrÄ«, notika nÄkamais Kubernetes izlaidums - 1.17. SaskaÅÄ ar tradÄ«ciju, kas ir izveidojusies mÅ«su emuÄram, mÄs runÄjam par bÅ«tiskÄkajÄm izmaiÅÄm jaunajÄ versijÄ.
Å Ä« materiÄla sagatavoÅ”anai izmantotÄ informÄcija ir Åemta no oficiÄlÄ paziÅojuma, Kubernetes uzlabojumu izsekoÅ”anas tabulas, IZMAIÅ A-1.17 un saistÄ«tie jautÄjumi, izvilkÅ”anas pieprasÄ«jumi un Kubernetes uzlaboÅ”anas priekÅ”likumi (KEP). Kas jauns?..
TopoloÄ£iju apzinoÅ”a marÅ”rutÄÅ”ana
Kubernetes kopiena Å”o funkciju ir gaidÄ«jusi jau ilgu laiku - Pakalpojumu marÅ”rutÄÅ”ana ar topoloÄ£iju. Ja KEP tÄ izcelsme ir 2018. gada oktobrÄ«, un oficiÄlÄ UzlaboÅ”ana ā Pirms 2 gadiem parastie jautÄjumi (piemÄram tÄ) - un vÄl dažus gadus vecÄks...
VispÄrÄjÄ ideja ir nodroÅ”inÄt iespÄju ieviest ālokÄloā marÅ”rutÄÅ”anu Kubernetes pakalpojumiem. āLokalitÄteā Å”ajÄ gadÄ«jumÄ nozÄ«mÄ āto paÅ”u topoloÄ£isko lÄ«meniā (topoloÄ£ijas lÄ«menis), kas var bÅ«t:
mezgls ir identisks pakalpojumiem,
tas pats servera plaukts,
tajÄ paÅ”Ä reÄ£ionÄ
tas pats mÄkoÅa pakalpojumu sniedzÄjs,
...
Å Ä«s funkcijas izmantoÅ”anas piemÄri:
ietaupÄ«jumi no satiksmes mÄkoÅu instalÄcijÄs ar vairÄkÄm pieejamÄ«bas zonÄm (multi-AZ) - sk. svaiga ilustrÄcija izmantojot piemÄru par satiksmi no tÄ paÅ”a reÄ£iona, bet dažÄdiem AZ AWS;
PlaÅ”Äku informÄciju par funkcijas darbÄ«bu un to, kÄ to jau varat izmantot, lasiet Å is raksts no viena no autoriem.
IPv4/IPv6 divu steku atbalsts
IevÄrojams progress fiksÄts citÄ tÄ«kla funkcijÄ: vienlaicÄ«gs atbalsts diviem IP skursteÅiem, kas pirmo reizi tika ieviests K8s 1.16. Jo Ä«paÅ”i jaunajÄ laidienÄ tika veiktas Å”Ädas izmaiÅas:
kube starpniekserverÄ« Ä«stenota vienlaicÄ«gas darbÄ«bas iespÄja abos režīmos (IPv4 un IPv6);
Š² Pod.Status.PodIPsparÄdÄ«jÄs lejupvÄrstas API atbalsts (tajÄ paÅ”Ä laikÄ kÄ /etc/hosts tagad tie pieprasa saimniekdatoram pievienot IPv6 adresi);
divu skursteÅu atbalsts KIND (Kubernetes IN Docker) un kubeadm;
IniciatÄ«va priekÅ” apjoma spraudÅu migrÄÅ”ana uz CSI SÄkot no CSI migrÄcija - sasniegta beta versija. Å Ä« funkcija ir bÅ«tiska, lai tulkotu esoÅ”os krÄtuves spraudÅus (kokÄ) uz modernu interfeisu (CSI, Ärpus koka) neredzams Kubernetes galalietotÄjiem. Klasteru administratoriem bÅ«s tikai jÄiespÄjo CSI migrÄcija, pÄc kuras esoÅ”ie statusa resursi un darba slodzes turpinÄs ātikai darbotiesā... bet izmantojot jaunÄkos CSI draiverus, nevis novecojuÅ”os, kas iekļauti Kubernetes kodolÄ.
Å obrÄ«d AWS EBS draiveru migrÄcija ir gatava beta versijÄ (kubernetes.io/aws-ebs) un GCE PD (kubernetes.io/gce-pd). Prognozes citÄm noliktavÄm ir Å”Ädas:
MÄs runÄjÄm par to, kÄ ātradicionÄlaisā krÄtuves atbalsts K8s nonÄca CSI Å is raksts. Un CSI migrÄcijas pÄreja uz beta statusu ir veltÄ«ta atseviŔķa publikÄcija projekta emuÄrÄ.
TurklÄt vÄl viena nozÄ«mÄ«ga funkcionalitÄte saistÄ«bÄ ar CSI, kuras izcelsme (alfa ievieÅ”ana) ir K1.17s 8, sasniedza beta statusu (t.i., iespÄjota pÄc noklusÄjuma) Kubernetes 1.12 laidienÄ. momentuzÅÄmumu izveide un atveseļoÅ”anÄs no tiem. Starp izmaiÅÄm, kas veiktas Kubernetes Volume Snapshot ceÄ¼Ä uz beta versiju:
sadalot CSI ÄrÄjÄ momentuzÅÄmÄja blakusvÄÄ£i divos kontrolleros,
pievienots noslÄpums dzÄÅ”anai (dzÄÅ”anas noslÄpums) kÄ anotÄciju apjoma momentuzÅÄmuma saturam,
jauns finÄlists (finalizÄtÄjs) lai novÄrstu momentuzÅÄmuma API objekta dzÄÅ”anu, ja ir atlikuÅ”i savienojumi.
1.17 izlaiÅ”anas brÄ«dÄ« Å”o lÄ«dzekli atbalsta trÄ«s CSI draiveri: GCE Persistent Disk CSI Driver, Portworx CSI Driver un NetApp Trident CSI Driver. SÄ«kÄku informÄciju par tÄ ievieÅ”anu un izmantoÅ”anu var atrast Ŕī publikÄcija emuÄrÄ.
MÄkoÅu nodroÅ”inÄtÄja etiÄ·etes
EtiÄ·etes, kas automÄtiski tiek pieŔķirti izveidotajiem mezgliem un sÄjumiem atkarÄ«bÄ no izmantotÄ mÄkoÅa nodroÅ”inÄtÄja, ir pieejami Kubernetes kÄ beta versija ļoti ilgu laiku - kopÅ” K8s 1.2 izlaiÅ”anas (2016. gada aprÄ«lis!). Å emot vÄrÄ to plaÅ”o izmantoÅ”anu tik ilgi, izstrÄdÄtÄji nolÄma, ka ir pienÄcis laiks pasludinÄt lÄ«dzekli par stabilu (GA).
TÄpÄc tie visi tika attiecÄ«gi pÄrdÄvÄti (pÄc topoloÄ£ijas):
... bet joprojÄm ir pieejami ar vecajiem nosaukumiem (atgriezeniskajai saderÄ«bai). TomÄr visiem administratoriem ieteicams pÄrslÄgties uz paÅ”reizÄjÄm etiÄ·etÄm. SaistÄ«tÄ dokumentÄcija K8s ir atjauninÄts.
MotivÄcija Ŕīs funkcijas ievieÅ”anai (saskaÅÄ ar KEP) ir:
Lai gan Kubernetes var izvietot manuÄli, de facto (ja ne de jure) standarts Å”ai darbÄ«bai ir kubeadm izmantoÅ”ana. PopulÄri sistÄmu pÄrvaldÄ«bas rÄ«ki, piemÄram, Terraform, Kubernetes izvietoÅ”anai izmanto kubeadm. PlÄnotie Cluster API uzlabojumi ietver saliekamu pakotni Kubernetes sÄknÄÅ”anai ar kubeadm un mÄkoÅa init.
Bez strukturÄtas izvades pat visnekaitÄ«gÄkÄs izmaiÅas no pirmÄ acu uzmetiena var sabojÄt Terraform, Cluster API un citu programmatÅ«ru, kas izmanto kubeadm rezultÄtus.
KopumÄ Kubernetes 1.17 izlaiÅ”ana notika ar devÄ«zi āstabilitÄte" To veicinÄja fakts, ka tajÄ ir daudzas funkcijas (to kopÄjais skaits ir 14) saÅÄma GA statusu. Starp viÅiem:
SkatÄ«ties GrÄmatzÄ«mes - jauna veida notikumi, kuriem ir etiÄ·ete, ka visi objekti ir lÄ«dz noteiktai versijai (resourceVersion) jau ir apstrÄdÄti ar pulksteni;
"aizsardzÄ«ba pret pabeigtÄju" (Finalizatora aizsardzÄ«ba) slodzes balansÄtÄjiem (pÄrbaudot atbilstoÅ”os Servisa resursus pirms LoadBalancer resursu dzÄÅ”anas);
kube-apiserver optimizÄcija veiktspÄjÄ, strÄdÄjot ar vairÄkiem pulksteÅiem, uzraugot identiskas objektu kopas ā tas tiek panÄkts, izvairoties no atkÄrtotas vienu un to paÅ”u objektu serializÄcijas katram novÄrotÄjam.
Citas izmaiÅas
Pilns Kubernetes 1.17 jauninÄjumu saraksts, protams, neaprobežojas tikai ar iepriekÅ” uzskaitÄ«tajiem. Å eit ir daži citi (un pilnÄ«gÄku sarakstu skatiet CHANGELOG):
PÄdÄjÄ laidienÄ piedÄvÄtÄ funkcija ir sasniegusi beta versiju RunAsUserName logiem;
lÄ«dzÄ«gas izmaiÅas piemeklÄja EndpointSlice API (arÄ« no K8s 1.16), taÄu pagaidÄm Å”is risinÄjums Endpoint API veiktspÄjas/mÄrogojamÄ«bas uzlaboÅ”anai pÄc noklusÄjuma nav iespÄjots;