Kubernetes 1.17: një përmbledhje e noviteteve kryesore.

Dje, mĂ« 9 dhjetor, u mbajt u lançua njĂ« version i ri i Kubernetes — 1.17. Siç Ă«shtĂ« tradita pĂ«r blogun tonĂ«, ne do tĂ« flasim pĂ«r ndryshimet mĂ« tĂ« rĂ«ndĂ«sishme nĂ« kĂ«tĂ« version tĂ« ri.

Kubernetes 1.17: një përmbledhje e noviteteve kryesore.

Informacioni i përdorur për përgatitjen e këtij materiali është marrë nga njoftimi zyrtar, tabela e ndjekjes së përmirësimeve Kubernetes, CHANGELOG-1.17 dhe çështjet, kërkesat për tërheqje si dhe Propozimet e Përmirësimit të Kubernetes (KEP). Pra, çfarë është e re?..

Routing me njohje të topologjisë

Kjo karakteristikĂ« Ă«shtĂ« pritur pĂ«r njĂ« periudhĂ« tĂ« gjatĂ« nĂ« komunitetin e Kubernetes — Routing i shĂ«rbimeve nĂ« pĂ«rputhje me topologjinĂ«. NĂ«se KEP ka filluar qĂ« nĂ« tetor 2018, dhe pĂ«rmirĂ«simi zyrtar ka ndodhur 2 vjet mĂ« parĂ«, prandaj nĂ« mĂ«nyrĂ« tĂ« zakonshme çështjet (si kanĂ« qenĂ« madje edhe mĂ« tĂ« vjetra disa vjet mĂ« parë ). ky) Ideja kryesore Ă«shtĂ« tĂ« ofrojĂ« mundĂ«sinĂ« e realizimit tĂ« routing-ut "lokal" pĂ«r shĂ«rbimet qĂ« ndodhen nĂ« Kubernetes. "Lokaliteti" nĂ« kĂ«tĂ« rast do tĂ« thotĂ« "nĂ« tĂ« njĂ«jtin nivel topologjik"

(niveli i topologjisë) , i cili mund të jetë:i njëjtë për shërbimet e nodit,

  • i njĂ«jtĂ« pĂ«r raftin e serverit,
  • i njĂ«jtĂ« pĂ«r rajonin,
  • i njĂ«jtĂ« pĂ«r ofruesin e shĂ«rbimeve nĂ« cloud,
  • shembuj tĂ« pĂ«rdorimit tĂ« kĂ«saj karakteristike:
  • 


kursimi i trafikut nĂ« instalime cloud me zona tĂ« shumta tĂ« disponueshmĂ«risĂ« (multi-AZ) — shih.

  • ilustrimin e ri nĂ« shembullin e trafikut tĂ« njĂ« rajoni, por tĂ« AZ-ve tĂ« ndryshme nĂ« AWS; vonesa mĂ« tĂ« ulta nĂ« performancĂ« / kapacitet mĂ« tĂ« mirĂ«;
  • shĂ«rbimi i sharduar, i cili ka informacion lokal mbi nodin nĂ« secilin shard;
  • vendosja e fluentd (ose ekuivalenteve) nĂ« njĂ« nod me aplikacionet, logjet e tĂ« cilave mblidhen;
  • Ky routing, i njohur pĂ«r topologjinĂ«, njihet gjithashtu si afinitet i rrjetit — nĂ« pĂ«rputhje me
  • 


afiniteti i nodit afiniteti i pod-it / anti-afiniteti, ose e reja jo shumë kohë më parë Planifikimi i Volume-ve me Njohje të Topologjisë Ofrimi i Volume-ve (dhe ). Niveli aktual i realizimitServiceTopology në Kubernetes është në versionin alfa. Për detaje mbi mënyrën se si është e organizuar kjo karakteristikë dhe si mund të shfrytëzohet tashmë, lexoni në

nga një nga autorët. këtë artikull Mbështetje për stack të dyfishtë IPv4 / IPv6

Përparim i rëndësishëm

është regjistruar në një karakteristikë tjetër rrjetë: mbështetje e njëkohshme për dy stack-e IP, që u prezantua për herë të parë në K8s 1.16 . Në veçanti, versioni i ri solli ndryshimet e mëposhtme:në kube-proxy

  • mundĂ«sia e punĂ«s sĂ« njĂ«kohshme nĂ« tĂ« dy modet (IPv4 dhe IPv6); Ă«shtĂ« realizuar Pod.Status.PodIPs
  • nĂ« mbĂ«shtetje tĂ« API-sĂ« duke zbritur (nĂ« tĂ« njĂ«jtĂ«n kohĂ« kĂ«rkon qĂ« pĂ«r hostin tĂ« shtohet gjithashtu adresa IPv6); ka arritur mbĂ«shtetje pĂ«r dy stack-e nĂ« /etc/hosts KIND
  • (Kubernetes IN Docker) dhe testet e rifreskuara tĂ« e2e. dhe kubeadm;
  • testet e rifreskuara e2e.

Kubernetes 1.17: një përmbledhje e noviteteve kryesore.
Ilustrimi përdorimi i dyfishtë i stekëve IPV4/IPv6 në KIND

Progresi në CSI

Deklarohet e stabilizuar mbështetje për topologji për dependet e bazuara në CSI, e prezantuar për herë të parë në K8s 1.12.

Iniciativa pĂ«r migruerĂ«t e pluginĂ«ve tĂ« volumit nĂ« CSI — Migruerja CSI Ă«shtĂ« arritur nĂ« versionin beta. Kjo veçori Ă«shtĂ« kritike pĂ«r tĂ« transferuar pluginĂ«t ekzistues tĂ« depove (in-tree) nĂ« ndĂ«rfaqen moderne (CSI, out-of-tree) pa u vĂ«nĂ« re nga pĂ«rdoruesit pĂ«rfundimtarĂ« tĂ« Kubernetes. AdministratorĂ«t e klasterĂ«ve do tĂ« kenĂ« nevojĂ« vetĂ«m tĂ« aktivizojnĂ« Migruerjen CSI, pas sĂ« cilĂ«s burimet stateful ekzistuese dhe ngarkesat punuese do tĂ« «funksionojnë» si mĂ« parë  por tashmĂ« me pĂ«rdorimin e drejtuesve tĂ« rinj CSI nĂ« vend tĂ« atyre tĂ« vjetra, qĂ« janĂ« pjesĂ« e bĂ«rthamĂ«s sĂ« Kubernetes.

Aktualisht, me statusin beta, është e gatshme migruerja për drejtuesit AWS EBS (kubernetes.io/aws-ebs) dhe GCE PD (kubernetes.io/gce-pd). Parashikimet për depë të tjera janë si më poshtë:

Kubernetes 1.17: një përmbledhje e noviteteve kryesore.

Rreth asaj se si mbështetje «tradicionale» për depët në K8s erdhi te CSI, ne kemi folur në këtë artikull. Për kalimin e migruerjes CSI në statusin beta i është kushtuar një publikimi të veçantë në blogun e projektit.

PĂ«rveç kĂ«saj, statusi beta (d.m.th. aktivizimi si parazgjedhje) nĂ« versionin Kubernetes 1.17 u arrit pĂ«r njĂ« tjetĂ«r funksionalitet tĂ« rĂ«ndĂ«sishĂ«m nĂ« kontekstin e CSI, qĂ« ka origjinĂ«n e saj (implementimin alfa) nĂ« K8s 1.12, — krijimi i snapshot-eve dhe rikuperimi prej tyre. NdĂ«r ndryshimet e realizuara nĂ« Kubernetes Volume Snapshot nĂ« rrugĂ«n drejt versionit beta:

  • ndarja e sidecar-it CSI external-snapshotter nĂ« dy kontrolerĂ«,
  • Ă«shtĂ« shtuar njĂ« sekret pĂ«r fshirje (deletion secret) si njĂ« aneks nĂ« pĂ«rmbajtjen e snapshot-it tĂ« volumit,
  • njĂ« finalizues tĂ« ri (finalizer) pĂ«r tĂ« parandaluar fshirjen e API-obejktit tĂ« snapshot-it nĂ« prani tĂ« lidhjeve tĂ« mbetura.

Në momentin e lëshimit 1.17, veçoria mbështetet për tri drejtuesit CSI: GCE Persistent Disk CSI Driver, Portworx CSI Driver dhe NetApp Trident CSI Driver. Më shumë rreth realizimit dhe përdorimit të saj mund të lexoni në këtë publikim në blogun.

Etiketat e Shërbimit të Renë

Etiketat, tĂ« cilat automatikisht caktohen nĂ« nodet dhe volumet e krijuara sipas ofruesit tĂ« obligueshĂ«m,kanĂ« qenĂ« tĂ« disponueshme nĂ« Kubernetes si version beta pĂ«r shumĂ« kohĂ« — qĂ« nga lĂ«shimi i K8s 1.2 (prill 2016!). Duke marrĂ« parasysh pĂ«rdorimin e gjerĂ« pĂ«r aq kohĂ«, zhvilluesit vendosĂ«n, e konsideruan kohĂ«n pĂ«r tĂ« shpallur veçorinĂ« si tĂ« qĂ«ndrueshme (GA).

Prandaj, të gjitha ato janë rinovuar në mënyrë përkatëse (sipër topologjive):

  • 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


 por ende, ato është ende e disponueshme me emrat e saj të vjetër (për qëllime bashkëpunimi). Sidoqoftë, të gjithë administratorët gjithmonë inkurajohen të kalojnë në etiketat aktuale. Dokumentacioni përkatës K8s është përditësuar.

Deklarim i strukturuar kubeadm

Në formatin alpha të paraqitur për herë të parë deklarim i strukturuar për utilitarin kubeadm. Format e mbështetura: JSON, YAML, Go-shabllon.

Motivimi për zbatimin e kësaj veçorie (sipër KEP) është si vijon:

Edhe pse Kubernetes mund të jetë i instaluar manualisht, standardi de facto (nëse jo de jure) për këtë operacion është përdorimi i kubeadm. Veglat e njohura për menaxhimin e sistemeve, si Terraform, mbështeten në kubeadm për të vendosur Kubernetes. Përmirësime të planifikuara në Cluster API përfshijnë një paketë të përbërë për bootstrapping të Kubernetes me kubeadm dhe cloud-init.

Pa një deklarim të strukturuar, edhe ndryshimet më të padëmshme mund të thyejnë Terraform, Cluster API, dhe softuerë të tjerë që përdorin rezultatet e punës së kubeadm.

Planet afatshkurtë janë mbështetje (në formën e deklarimit të strukturuar) për komandat e mëposhtme kubeadm:

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

Ilustrimi i përgjigjes JSON për komandën 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": "Token i parazgjedhur bootstrap i generuar nga 'kubeadm init'.",
    "extraGroups": [
      "system:bootstrappers:kubeadm:default-node-token"
    ]
  },
  "raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}

Stabilizimi i risive të tjera

Përgjithësisht, lëshimi i Kubernetes 1.17 u realizua nën devizën "Qëndrueshmëria". Kjo u nxit nga fakti se shumë risive në të (numri i tyre total - 14) morën statusin GA. Ndër to:

Ndryshime të tjera

Lista e plotĂ« e risive nĂ« Kubernetes 1.17 natyrisht nuk kufizohet vetĂ«m nĂ« ato tĂ« pĂ«rmendura mĂ« sipĂ«r. Ja disa tĂ« tjera nga to (pĂ«r njĂ« listĂ« mĂ« tĂ« plotĂ« – shih CHANGELOG):

  • karakteristika e paraqitur nĂ« rreshtin e kaluar arriti nĂ« beta-version RunAsUserName pĂ«r Windows.;
  • ndryshim i ngjashĂ«m ndodhi API EndpointSlice (po ashtu nga K8s 1.16), megjithatĂ« zgjidhja kĂ«tĂ« pĂ«r pĂ«rmirĂ«simin e performancĂ«s/Ă«shtĂ« pĂ«rmirĂ«suar e API-sĂ« sĂ« Endpointit nuk Ă«shtĂ« aktivizuar si parazgjedhje;
  • pod-at kritikĂ« pĂ«r funksionimin e klasterit tani mund tĂ« krijohen jo vetĂ«m nĂ« hapĂ«sirat e emrave kubectl -n kube-system edit cm kubelet-config-1.16 (detajet shih nĂ« dokumentacionin pĂ«r Konsumimi i klasĂ«s sĂ« prioritetit tĂ« kufizimeve);
  • opcion i ri pĂ«r kubelet — --cpu tĂ« rezervuar — lejon tĂ« pĂ«rcaktohet qartazi lista e CPU-ve tĂ« rezervuara pĂ«r sistemin;
  • pĂ«r kubectl logs Ă«shtĂ« paraqitur flamuri i ri --prefix, duke shtuar emrin e pod-it dhe kontejnerit burim nĂ« çdo rresht tĂ« logut;
  • nĂ« label.Selector u shtua RequiresExactMatch;
  • tĂ« gjitha kontejnerĂ«t nĂ« kube-dns tani fillojnĂ« me privilegje mĂ« tĂ« ulĂ«ta;
  • hyperkube tĂ« ndara nĂ« njĂ« repozitor tĂ« veçantĂ« GitHub dhe nuk do tĂ« pĂ«rfshihen mĂ« nĂ« versionet e Kubernetes;
  • duke pĂ«rmirĂ«suar performancĂ«n kube-proxy pĂ«r porte jo-UDP.

Ndryshimet në varësi:

  • versioni CoreDNS nĂ« kubeadm — 1.6.5;
  • versioni i crictl Ă«shtĂ« pĂ«rditĂ«suar deri nĂ« v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • versioni i fundit i verifikuar i Docker u rrit nĂ« 19.03;
  • versioni minimal i Go-sĂ«, i kĂ«rkuar pĂ«r ndĂ«rtimin e Kubernetes 1.17, Ă«shtĂ« 1.13.4.

P.S.

Lexoni gjithashtu në blogun tonë:

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster