Kubernetes 1.17: BECA de inovasyon prensipal yo

Yè, 9 desanm, pran plas pwochen lage nan Kubernetes - 1.17. Dapre tradisyon an ki te devlope pou blog nou an, nou pale sou chanjman ki pi enpòtan nan nouvo vèsyon an.

Kubernetes 1.17: BECA de inovasyon prensipal yo

Enfòmasyon yo itilize pou prepare materyèl sa a yo pran nan anons ofisyèl la, Kubernetes amelyorasyon tablo swiv, CHANGELOG-1.17 ak pwoblèm ki gen rapò, demann rale, ak Pwopozisyon Amelyorasyon Kubernetes (KEP). Kidonk, sa ki nouvo?...

Topoloji-konsyan routage

Kominote Kubernetes la ap tann karakteristik sa a depi lontan - Wout sèvis ki konsyan topoloji. Si CAP li soti nan mwa Oktòb 2018, ak ofisyèl la Amelyorasyon — 2 zan de sa, pwoblèm abityèl yo (tankou nan sa a) - ak kèk ane plis ki pi gran...

Lide jeneral la se bay kapasite pou aplike "lokal" routage pou sèvis ki abite nan Kubernetes. "Lokalite" nan ka sa a vle di "menm nivo topolojik la" (nivo topoloji), ki ka:

  • ne idantik pou sèvis yo,
  • menm etajè sèvè a,
  • menm rejyon an
  • menm founisè nwaj la,
  • ...

Egzanp yo sèvi ak karakteristik sa a:

  • ekonomi sou trafik nan enstalasyon nwaj ak zòn disponiblite miltip (milti-AZ) - gade. ilistrasyon fre lè l sèvi avèk egzanp trafik ki soti nan menm rejyon an, men diferan AZ nan AWS;
  • pi ba latansi pèfòmans / pi bon debi;
  • yon sèvis sharded ki gen enfòmasyon lokal sou ne nan chak shard;
  • plasman fluentd (oswa analogue) sou menm ne ak aplikasyon yo ki gen mòso bwa yo kolekte;
  • ...

Route sa yo, ki "konnen" sou topoloji a, yo rele tou afinite rezo - pa analoji ak ne afinite, gous afinite/anti-affinite oswa parèt pa tèlman lontan Topoloji-Konsyan Volim Orè (ak Apwovizyonman Volim). Nivo aktyèl aplikasyon an ServiceTopology nan Kubernetes - vèsyon alfa.

Pou plis detay sou ki jan karakteristik nan fonksyone ak ki jan ou ka deja itilize li, li atik sa a soti nan youn nan otè yo.

IPv4/IPv6 doub pile sipò

Pwogrè enpòtan fiks nan yon lòt karakteristik rezo: sipò similtane pou de pil IP, ki te premye prezante nan K8s 1.16. An patikilye, nouvo lage a te pote chanjman sa yo:

  • nan kube-proxy aplike posiblite pou operasyon similtane nan tou de mòd (IPv4 ak IPv6);
  • в Pod.Status.PodIPs parèt sipò pou API anba (an menm tan an ak nan /etc/hosts kounye a yo mande pou lame a ajoute yon adrès IPv6);
  • sipò pile doub Kalite (Kubernetes IN Docker) ak kubeadm;
  • mete ajou tès e2e yo.

Kubernetes 1.17: BECA de inovasyon prensipal yo
Ilistrasyon lè l sèvi avèk doub pile IPV4 / IPv6 nan KIND

Pwogrè sou CSI

Te deklare stab sipò topoloji pou depo ki baze sou CSI, premye prezante nan K8s 1.12.

Inisyativ pou migrasyon nan grefon volim nan CSI - CSI Migrasyon - rive jwenn vèsyon beta. Karakteristik sa a enpòtan anpil pou yo ka tradui grefon depo ki deja egziste (nan pye bwa) nan yon koòdone modèn (CSI, andeyò pye bwa) envizib pou itilizatè fen Kubernetes. Administratè Cluster yo pral sèlman bezwen pèmèt Migrasyon CSI, apre sa resous ki egziste deja ak chaj travay yo ap kontinye "jis travay" ... men yo sèvi ak dènye chofè CSI yo olye de sa yo demode ki enkli nan nwayo Kubernetes la.

Nan moman sa a, migrasyon pou chofè AWS EBS pare nan vèsyon beta (kubernetes.io/aws-ebs) ak GCE PD (kubernetes.io/gce-pd). Previzyon pou lòt enstalasyon depo yo jan sa a:

Kubernetes 1.17: BECA de inovasyon prensipal yo

Nou te pale sou fason sipò depo "tradisyonèl" nan K8 yo te rive nan CSI nan atik sa a. Ak tranzisyon migrasyon CSI nan estati beta dedye a piblikasyon separe sou blog pwojè a.

Anplis de sa, yon lòt fonksyonalite enpòtan nan kontèks CSI, ki soti (enplemantasyon alfa) nan K1.17s 8, te rive nan estati beta (sa vle di pèmèt pa default) nan Kubernetes 1.12 lage - kreye snapshots ak rekiperasyon nan men yo. Pami chanjman yo te fè nan Kubernetes Volim Snapshot sou wout pou lage beta:

  • divize sidecar CSI ekstèn-snapshotter an de contrôleur,
  • te ajoute sekrè pou efase (seleksyon sekrè) kòm yon anotasyon nan sa ki nan yon snapshot volim,
  • nouvo finalizè (finalisateur) pou anpeche objè API snapshot la efase si gen koneksyon ki rete yo.

Nan moman lage 1.17 la, twa chofè CSI sipòte fonksyon an: GCE Persistent Disk CSI Driver, Portworx CSI Driver ak NetApp Trident CSI Driver. Ou ka jwenn plis detay sou aplikasyon ak itilizasyon li yo nan piblikasyon sa a sou blog la.

Cloud Founisè Labels

Etikèt sa otomatikman asiyen nan nœuds kreye ak komèsan depann sou founisè nwaj yo itilize a, yo te disponib nan Kubernetes kòm yon vèsyon beta pou yon tan trè lontan - depi liberasyon an nan K8s 1.2 (Avril 2016!). Bay itilizasyon toupatou yo pou lontan, devlopè yo te deside, ke li se tan yo deklare karakteristik nan ki estab (GA).

Se poutèt sa, yo tout te chanje non kòmsadwa (pa topoloji):

  • 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

... men yo toujou disponib anba ansyen non yo (pou konpatibilite bak). Sepandan, tout administratè yo rekòmande pou chanje sou etikèt aktyèl yo. Dokiman ki gen rapò K8s te mete ajou.

Pwodiksyon estriktire nan kubeadm

Prezante nan vèsyon alpha pou premye fwa pwodiksyon estriktire pou sèvis piblik kubeadm. Fòma sipòte: JSON, YAML, Go modèl.

Motivasyon pou aplike karakteristik sa a (dapre CAP) se:

Pandan ke Kubernetes ka deplwaye manyèlman, estanda defakto (si se pa de jure) pou operasyon sa a se sèvi ak kubeadm. Zouti jesyon sistèm popilè tankou Terraform konte sou kubeadm pou deplwaman Kubernetes. Amelyorasyon ki planifye nan API Cluster la gen ladan yon pake konpozabl pou bootstrapping Kubernetes ak kubeadm ak cloud-init.

San pwodiksyon estriktire, menm chanjman ki pi inofansif nan premye gade ka kraze Terraform, Cluster API ak lòt lojisyèl ki sèvi ak rezilta kubeadm.

Plan imedya nou yo gen ladan sipò (nan fòm pwodiksyon estriktire) pou kòmandman kubeadm sa yo:

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

Ilistrasyon yon repons JSON a yon lòd 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="
}

Estabilizasyon lòt inovasyon

An jeneral, liberasyon Kubernetes 1.17 te fèt anba deviz "Estabilite" Sa a te fasilite pa lefèt ke anpil karakteristik nan li (nimewo total yo se 14) te resevwa estati GA. Pami yo:

Lòt chanjman

Lis konplè inovasyon nan Kubernetes 1.17, nan kou, se pa sa sèlman sa yo ki nan lis pi wo a. Men kèk lòt (ak pou yon lis pi konplè, gade LOG CHANJMAN):

  • Karakteristik ki prezante nan dènye lage a te rive nan vèsyon beta a RunAsUserName pou fenèt yo;
  • chanjman menm jan an rive EndpointSlice API (tou soti nan K8s 1.16), sepandan pou kounye a solisyon sa a amelyore pèfòmans / évolutivité nan Endpoint API a pa pèmèt pa default;
  • gous yo kounye a enpòtan pou operasyon gwoup ka kreye pa sèlman nan namespaces kube-system (pou plis detay, gade dokiman an pou Limite konsomasyon klas priyorite);
  • nouvo opsyon pou kubelet - --reserved-cpus — pèmèt ou defini klèman lis CPU rezève pou sistèm lan;
  • pou kubectl logs prezante nouvo drapo --prefix, ajoute non gous la ak veso sous la nan chak liy nan boutèy demi lit la;
  • в label.Selector te ajoute RequiresExactMatch;
  • tout resipyan nan kube-dns yo kounye a ap kouri ak mwens privilèj;
  • hyperkube separe nan yon repozitwa GitHub separe epi yo p ap enkli nan degaje Kubernetes ankò;
  • anpil pèfòmans amelyore kube-proxy pou pò ki pa UDP.

Chanjman depandans:

  • CoreDNS vèsyon ki enkli nan kubeadm se 1.6.5;
  • vèsyon crictl mete ajou nan v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • Dènye vèsyon Docker teste modènize a 19.03;
  • Minimòm Go vèsyon ki nesesè pou konstwi Kubernetes 1.17 se 1.13.4.

PS

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè