Kubernetes 1.17: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin

Ilbieraħ, 9 ta’ Diċembru, seħħet rilaxx li jmiss ta 'Kubernetes - 1.17. Skont it-tradizzjoni li żviluppat għall-blog tagħna, nitkellmu dwar l-aktar bidliet sinifikanti fil-verżjoni l-ġdida.

Kubernetes 1.17: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin

L-informazzjoni użata biex jitħejja dan il-materjal hija meħuda mill-avviż uffiċjali, Kubernetes titjib tabelli ta 'traċċar, LOG TAL-BIDLA-1.17 u kwistjonijiet relatati, pull requests, u Kubernetes Enhancement Proposals (KEP). Allura, x'hemm ġdid?...

Rotot konxju tat-topoloġija

Il-komunità Kubernetes ilha tistenna din il-karatteristika għal żmien twil - Rotot tas-servizz konxju mit-topoloġija. Jekk KAP joriġina f'Ottubru 2018, u l-uffiċjal titjib — 2 snin ilu, il-kwistjonijiet tas-soltu (bħal ta 'dan) - u ftit snin aktar anzjani...

L-idea ġenerali hija li tipprovdi l-abbiltà li timplimenta r-rotot "lokali" għal servizzi li joqogħdu f'Kubernetes. "Lokalità" f'dan il-każ tfisser "l-istess livell topoloġiku" (livell ta' topoloġija), li jista' jkun:

  • nodu identiku għas-servizzi,
  • l-istess rack tas-server,
  • l-istess reġjun
  • l-istess fornitur tas-sħab,
  • ...

Eżempji ta' kif tuża din il-karatteristika:

  • iffrankar fuq it-traffiku f'installazzjonijiet ta 'sħab b'żoni ta' disponibbiltà multipli (multi-AZ) - ara. illustrazzjoni friska bl-użu tal-eżempju tat-traffiku mill-istess reġjun, iżda AZs differenti fl-AWS;
  • latenza ta 'prestazzjoni aktar baxxa / throughput aħjar;
  • servizz sharded li għandu informazzjoni lokali dwar in-nodu f'kull shard;
  • tqegħid ta 'fluentd (jew analogi) fuq l-istess node ma' l-applikazzjonijiet li zkuk tagħhom huma miġbura;
  • ...

Tali routing, li "jaf" dwar it-topoloġija, jissejjaħ ukoll affinità tan-netwerk - b'analoġija ma ' affinità nodu, affinità pod/anti-affinità jew deher mhux daqshekk twil ilu Skedar tal-Volum Konxju mit-Topoloġija (u Provvediment tal-Volum). Livell attwali ta' implimentazzjoni ServiceTopology f'Kubernetes - verżjoni alpha.

Għal dettalji dwar kif taħdem il-karatteristika u kif diġà tista' tużaha, aqra Dan l-artikolu minn wieħed mill-awturi.

IPv4/IPv6 appoġġ dual stack

Progress sinifikanti fiss f'karatteristika oħra tan-netwerk: appoġġ simultanju għal żewġ stacks IP, li l-ewwel ġie introdott fi K8s 1.16. B'mod partikolari, ir-rilaxx il-ġdid ġabet il-bidliet li ġejjin:

  • f'kube-proxy implimentati possibbiltà ta' tħaddim simultanju fiż-żewġ modi (IPv4 u IPv6);
  • в Pod.Status.PodIPs deher appoġġ għal API 'l isfel (fl-istess ħin bħal fil /etc/hosts issa jeħtieġu li l-host iżid indirizz IPv6);
  • appoġġ munzell doppju TIP (Kubernetes IN Docker) u kubeadm;
  • testijiet e2e aġġornati.

Kubernetes 1.17: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin
Illustrazzjoni bl-użu ta 'dual stack IPV4/IPv6 in-TIP

Progress fis-CSI

Iddikjarat stabbli appoġġ topoloġija għall-ħażna bbażata fuq CSI, introdotta l-ewwel fi K8s 1.12.

Inizjattiva għal migrazzjoni tal-plugins tal-volum għal CSI - CSI Migrazzjoni - milħuqa verżjoni beta. Din il-karatteristika hija kritika sabiex jiġu tradotti plugins tal-ħażna eżistenti (fil-siġra) għal interface modern (CSI, barra mis-siġra) inviżibbli għall-utenti finali ta' Kubernetes. L-amministraturi tal-cluster se jkollhom bżonn biss li jippermettu l-Migrazzjoni tas-CSI, u wara r-riżorsi u l-ammonti ta 'xogħol eżistenti eżistenti se jkomplu "jaħdmu biss"... iżda jużaw l-aħħar sewwieqa CSI minflok dawk skaduti inklużi fil-qalba ta' Kubernetes.

Bħalissa, il-migrazzjoni għas-sewwieqa AWS EBS hija lesta fil-verżjoni beta (kubernetes.io/aws-ebs) u GCE PD (kubernetes.io/gce-pd). It-tbassir għal faċilitajiet ta' ħażna oħra huma kif ġej:

Kubernetes 1.17: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin

Tkellimna dwar kif l-appoġġ tal-ħażna "tradizzjonali" fil-K8s wasal għal CSI fi Dan l-artikolu. U t-tranżizzjoni tal-migrazzjoni tas-CSI għal status beta hija ddedikata għaliha pubblikazzjoni separata fuq il-blog tal-proġett.

Barra minn hekk, funzjonalità sinifikanti oħra fil-kuntest tas-CSI, li toriġina (implimentazzjoni alfa) f'K1.17s 8, laħqet status beta (jiġifieri ppermettiet awtomatikament) fir-rilaxx Kubernetes 1.12 - ħolqien ta' snapshots u l-irkupru minnhom. Fost il-bidliet li saru lil Kubernetes Volume Snapshot fit-triq għar-rilaxx beta:

  • il-qsim tas-sidecar tal-isnapshotter estern CSI f'żewġ kontrolluri,
  • sigriet miżjud għat-tħassir (tħassir sigriet) bħala annotazzjoni għall-kontenut ta' snapshot tal-volum,
  • finalizzatur ġdid (finalizzatur) biex jipprevjeni li l-oġġett API snapshot jitħassar jekk ikun fadal konnessjonijiet.

Fiż-żmien tar-rilaxx 1.17, il-karatteristika hija appoġġjata minn tliet sewwieqa CSI: Driver CSI Disk Persistent GCE, Driver CSI Portworx u Driver CSI NetApp Trident. Aktar dettalji dwar l-implimentazzjoni u l-użu tiegħu jistgħu jinstabu fi din il-pubblikazzjoni fuq il-blog.

Tikketti tal-Fornitur tal-Cloud

Tikketti li awtomatikament assenjati għal nodi u volumi maħluqa skont il-fornitur tal-cloud użat, ilhom disponibbli f'Kubernetes bħala verżjoni beta għal żmien twil ħafna - mir-rilaxx ta 'K8s 1.2 (April 2016!). Minħabba l-użu mifrux tagħhom għal tant żmien, l-iżviluppaturi iddeċieda, li wasal iż-żmien li tiddikjara l-karatteristika stabbli (GA).

Għalhekk, kollha ngħataw isem ġdid kif xieraq (skond it-topoloġija):

  • 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

... iżda għadhom disponibbli taħt l-ismijiet qodma tagħhom (għal kompatibilità b'lura). Madankollu, l-amministraturi kollha huma rakkomandati li jaqilbu għat-tikketti attwali. Dokumentazzjoni Relatata K8s ġie aġġornat.

Produzzjoni strutturata ta' kubeadm

Ippreżentat fil-verżjoni alpha għall-ewwel darba output strutturat għall-utilità kubeadm. Formati appoġġjati: JSON, YAML, Go template.

Motivazzjoni għall-implimentazzjoni ta’ din il-karatteristika (skond KAP) hija:

Filwaqt li Kubernetes jista 'jiġi skjerat manwalment, l-istandard de facto (jekk mhux de jure) għal din l-operazzjoni huwa li tuża kubeadm. Għodod ta 'ġestjoni tas-sistemi popolari bħal Terraform jiddependu fuq kubeadm għall-iskjerament ta' Kubernetes. It-titjib ippjanat għall-API tal-Cluster jinkludi pakkett komponibbli għall-bootstrapping ta' Kubernetes b'kubeadm u cloud-init.

Mingħajr output strutturat, anke l-aktar bidliet innokwa mal-ewwel daqqa t'għajn jistgħu jkissru Terraform, Cluster API u softwer ieħor li juża r-riżultati ta 'kubeadm.

Il-pjanijiet immedjati tagħna jinkludu appoġġ (fil-forma ta’ output strutturat) għall-kmandi kubeadm li ġejjin:

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

Illustrazzjoni ta' rispons JSON għal kmand 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="
}

Stabbilizzazzjoni ta' innovazzjonijiet oħra

B'mod ġenerali, ir-rilaxx ta 'Kubernetes 1.17 sar taħt il-motto "Stabbiltà" Dan kien iffaċilitat mill-fatt li ħafna karatteristiċi fiha (in-numru totali tagħhom huwa 14) irċeviet status GA. Fosthom:

Bidliet oħra

Il-lista sħiħa ta 'innovazzjonijiet f'Kubernetes 1.17, ovvjament, mhix limitata għal dawk elenkati hawn fuq. Hawn huma xi oħrajn (u għal lista aktar kompleta, ara LOG TAL-BIDLA):

  • Il-karatteristika ppreżentata fl-aħħar rilaxx laħqet il-verżjoni beta RunAsUserName għat-twieqi;
  • bidla simili ġara EndpointSlice API (ukoll minn K8s 1.16), madankollu għalissa din is-soluzzjoni biex ittejjeb il-prestazzjoni/iskalabbiltà tal-API Endpoint mhix attivata b'mod awtomatiku;
  • il-miżwed issa huma kritiċi għall-operat tal-cluster jistgħu jinħolqu mhux biss fl-ispazji tal-isem kube-system (Għal dettalji, ara d-dokumentazzjoni għal Limitu l-konsum tal-Klassi ta' Prijorità);
  • għażla ġdida għal kubelet - --reserved-cpus — jippermettilek tiddefinixxi b'mod espliċitu l-lista ta' CPUs riżervati għas-sistema;
  • għall- kubectl logs ippreżentata bandiera ġdida --prefix, billi żżid l-isem tal-powd u l-kontenitur tas-sors għal kull linja tal-ġurnal;
  • в label.Selector miżjud RequiresExactMatch;
  • il-kontenituri kollha f'kube-dns issa qed jaħdmu b'inqas privileġġi;
  • iperkube separati f'repożitorju GitHub separat u mhux se jibqgħu inklużi fir-rilaxxi ta' Kubernetes;
  • ħafna prestazzjoni mtejba kube-proxy għal portijiet mhux UDP.

Bidliet fid-dipendenza:

  • Verżjoni CoreDNS inkluża f'kubeadm hija 1.6.5;
  • Verżjoni crictl aġġornata għal v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • L-aħħar verżjoni Docker ittestjata aġġornata għal 19.03;
  • Il-verżjoni minima ta' Go meħtieġa biex tibni Kubernetes 1.17 hija 1.13.4.

PS

Aqra wkoll fuq il-blog tagħna:

Sors: www.habr.com

Żid kumment