Kubernetes 1.17: Hápunktar þess sem er nýtt

Í gær, 9. desember, fór fram næsta útgáfa af Kubernetes - 1.17. Samkvæmt þeirri hefð sem hefur skapast fyrir bloggið okkar, tölum við um mikilvægustu breytingarnar í nýju útgáfunni.

Kubernetes 1.17: Hápunktar þess sem er nýtt

Upplýsingarnar sem notaðar eru til að útbúa þetta efni eru teknar úr opinberri tilkynningu, Kubernetes endurbætur rakningartöflur, BREYTINGAR-1.17 og tengd málefni, dráttarbeiðnir og Kubernetes Enhancement Proposals (KEP). Hvað er títt?..

Staðfræði-meðvituð leið

Kubernetes samfélagið hefur beðið eftir þessum eiginleika í langan tíma - Þjónustuleiðir sem eru meðvitaðir um gróðurfræði. Ef KEP það er upprunnið í október 2018, og opinber aukahlutur — Fyrir 2 árum, venjuleg mál (eins og af þessu) - og nokkrum árum eldri...

Almenn hugmynd er að bjóða upp á getu til að innleiða „staðbundna“ leið fyrir þjónustu sem býr í Kubernetes. „Staðsetning“ þýðir í þessu tilfelli „sama staðfræðilega stig“ (staðfræðistig), sem getur verið:

  • hnútur eins fyrir þjónustu,
  • sama netþjóna rekki,
  • sama svæði
  • sama skýjafyrirtækið,
  • ...

Dæmi um notkun þessa eiginleika:

  • sparnaður á umferð í skýjauppsetningum með mörgum framboðssvæðum (multi-AZ) - sjá. fersk mynd að nota dæmi um umferð frá sama svæði, en mismunandi AZ í AWS;
  • minni afköst leynd/betra afköst;
  • sundruð þjónusta sem hefur staðbundnar upplýsingar um hnútinn í hverju broti;
  • staðsetning fluentd (eða hliðstæður) á sama hnút með forritunum þar sem annálum er safnað;
  • ...

Slík leið, sem „veit“ um staðfræði, er einnig kölluð netsækni - á hliðstæðan hátt við hnútsækni, fræbelgsækni/andstæðingur eða birtist ekki svo langt síðan Topology-Aware Volume Scheduling (og Rúmmálsútvegun). Núverandi framkvæmdarstig ServiceTopology í Kubernetes - alfa útgáfu.

Til að fá upplýsingar um hvernig aðgerðin virkar og hvernig þú getur nú þegar notað hann, lestu Þessi grein frá einum höfundanna.

IPv4/IPv6 tvískiptur stafla stuðningur

Verulegar framfarir fastur í öðrum neteiginleika: samtímis stuðningur við tvo IP stafla, sem fyrst var kynntur í K8s 1.16. Sérstaklega færði nýja útgáfan eftirfarandi breytingar:

  • í kube-proxy komið til framkvæmda möguleiki á samtímis notkun í báðum stillingum (IPv4 og IPv6);
  • в Pod.Status.PodIPs birtist stuðningur við API niður á við (á sama tíma og í /etc/hosts nú þurfa þeir að gestgjafinn bæti við IPv6 vistfangi);
  • stuðningur við tvöfaldan stafla KIND (Kubernetes IN Docker) og kubeadm;
  • uppfærð e2e próf.

Kubernetes 1.17: Hápunktar þess sem er nýtt
Myndskreyting með tvíþættum stafla IPV4/IPv6 í KIND

Framfarir á CSI

Lýst stöðugt stuðningur við staðfræði fyrir CSI-undirstaða geymslu, fyrst kynnt í K8s 1.12.

Frumkvæði fyrir flutningur á bindiviðbótum yfir í CSI - CSI Flutningur - náði beta útgáfu. Þessi eiginleiki er mikilvægur til að þýða núverandi geymsluviðbætur (í tré) við nútímalegt viðmót (CSI, utan trés) ósýnilegt fyrir endanotendur Kubernetes. Klasastjórnendur þurfa aðeins að virkja CSI Migration, eftir það munu núverandi tilföng og vinnuálag halda áfram að „bara virka“... en nota nýjustu CSI reklana í stað þeirra úreltu sem eru í Kubernetes kjarnanum.

Í augnablikinu er flutningur fyrir AWS EBS rekla tilbúinn í beta útgáfu (kubernetes.io/aws-ebs) og GCE PD (kubernetes.io/gce-pd). Spár fyrir aðrar geymslur eru sem hér segir:

Kubernetes 1.17: Hápunktar þess sem er nýtt

Við ræddum um hvernig „hefðbundinn“ geymslustuðningur í K8s kom til CSI Þessi grein. Og umskipti CSI flutnings yfir í beta stöðu er tileinkað sérstakri útgáfu á verkefnisblogginu.

Að auki náði annar mikilvægur virkni í tengslum við CSI, sem er upprunninn (alfa útfærsla) í K1.17s 8, beta stöðu (þ.e. virkjuð sjálfgefið) í Kubernetes 1.12 útgáfunni - búa til skyndimyndir og bata frá þeim. Meðal breytinga sem gerðar voru á Kubernetes Volume Snapshot á leiðinni til beta útgáfu:

  • að skipta CSI ytri skyndimyndarhliðarvagninum í tvo stýringar,
  • bætt við leyndarmáli til eyðingar (eyða leyndarmál) sem athugasemd við innihald skyndimyndar bindis,
  • nýr lokaritari (endari) til að koma í veg fyrir að skyndimynd API hlutnum sé eytt ef tengingar eru eftir.

Við útgáfu 1.17 er eiginleikinn studdur af þremur CSI rekla: GCE Persistent Disk CSI Driver, Portworx CSI Driver og NetApp Trident CSI Driver. Nánari upplýsingar um útfærslu þess og notkun er að finna í þessa útgáfu á blogginu.

Merki fyrir skýjaveitur

Merkir sem sjálfkrafa úthlutað til búna hnúta og bindi eftir því hvaða skýjaveita er notuð, hafa verið fáanlegir í Kubernetes sem beta útgáfu í mjög langan tíma - frá útgáfu K8s 1.2 (apríl 2016!). Í ljósi víðtækrar notkunar þeirra svo lengi, verktaki ákveðið, að það sé kominn tími til að lýsa eiginleikanum stöðugum (GA).

Þess vegna voru þeir allir endurnefndir í samræmi við það (eftir staðfræði):

  • 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

... en eru enn fáanlegir undir gömlu nöfnunum (fyrir bakábakssamhæfi). Hins vegar er mælt með því að allir stjórnendur skipti yfir í núverandi merki. Tengd skjöl K8s hefur verið uppfært.

Skipulögð framleiðsla kubeadm

Kynnt í alfa útgáfu í fyrsta skipti skipulögð framleiðsla fyrir kubeadm tólið. Stydd snið: JSON, YAML, Go sniðmát.

Hvatning til að innleiða þennan eiginleika (skv KEP) er:

Þó að hægt sé að nota Kubernetes handvirkt, er raunverulegur (ef ekki de jure) staðallinn fyrir þessa aðgerð að nota kubeadm. Vinsæl kerfisstjórnunartæki eins og Terraform treysta á kubeadm fyrir uppsetningu Kubernetes. Fyrirhugaðar endurbætur á Cluster API innihalda samsettan pakka fyrir Kubernetes bootstrapping með kubeadm og cloud-init.

Án skipulögðrar framleiðslu geta jafnvel skaðlausustu breytingarnar við fyrstu sýn brotið Terraform, Cluster API og annan hugbúnað sem notar niðurstöður kubeadm.

Tafarlausar áætlanir okkar innihalda stuðning (í formi skipulögðrar framleiðslu) fyrir eftirfarandi kubeadm skipanir:

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

Mynd af JSON svari við skipun 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="
}

Stöðugleiki annarra nýjunga

Almennt séð fór útgáfa Kubernetes 1.17 fram undir kjörorðinu "Stöðugleiki" Þetta var auðveldað af því að margir eiginleikar í því (heildarfjöldi þeirra er 14) fékk GA stöðu. Meðal þeirra:

Aðrar breytingar

Listinn yfir nýjungar í Kubernetes 1.17 er auðvitað ekki takmarkaður við þær sem taldar eru upp hér að ofan. Hér eru nokkrir aðrir (og fyrir frekari lista, sjá SKIPTI):

  • Eiginleikinn sem kynntur var í síðustu útgáfu er kominn í beta útgáfuna RunAsUserName fyrir glugga;
  • svipuð breyting kom fyrir EndpointSlice API (einnig frá K8s 1.16), en í augnablikinu er þessi lausn til að bæta frammistöðu/stærðni Endpoint API ekki sjálfgefið virkjuð;
  • fræbelgir eru nú mikilvægir fyrir klasarekstur hægt að búa til ekki bara í nafnasvæðum kube-system (fyrir frekari upplýsingar, sjá skjölin fyrir Takmarka neyslu forgangsflokks);
  • nýr valkostur fyrir kubelet - --reserved-cpus — gerir þér kleift að skilgreina sérstaklega listann yfir örgjörva sem eru fráteknir fyrir kerfið;
  • í kubectl logs fram nýr fáni --prefix, að bæta nafni fræbelgs og upprunaíláts við hverja línu í logginu;
  • в label.Selector bætt við RequiresExactMatch;
  • allir gámar í kube-dns eru nú í gangi með minni forréttindi;
  • hyperkube aðskilið í sérstaka GitHub geymslu og mun ekki lengur vera með í Kubernetes útgáfum;
  • mikið bætt frammistöðu kube-proxy fyrir tengi sem ekki eru UDP.

Breytingar á ósjálfstæði:

  • CoreDNS útgáfa sem fylgir kubeadm er 1.6.5;
  • crictl útgáfa uppfærð í v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • Nýjasta prófaða Docker útgáfan uppfærð í 19.03;
  • Lágmarks Go útgáfa sem þarf til að byggja Kubernetes 1.17 er 1.13.4.

PS

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd