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

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

Þessi nótt mun fara fram næsta útgáfa af Kubernetes - 1.14. Samkvæmt þeirri hefð sem hefur myndast fyrir bloggið okkar erum við að tala um helstu breytingarnar í nýju útgáfunni af þessari frábæru Open Source vöru.

Upplýsingar sem notaðar eru til að útbúa þetta efni eru teknar úr Kubernetes endurbætur rakningartöflur, BREYTINGAR-1.14 og tengd málefni, dráttarbeiðnir, Kubernetes Enhancement Proposals (KEP).

Byrjum á mikilvægum inngangi frá SIG klasa-lífsferli: kraftmikla failover klasa Kubernetes (eða til að vera nákvæmari, sjálf-hýst HA dreifing) er núna hægt að búa til með því að nota kunnuglegar (í samhengi við einn hnúta klasa) skipanir kubeadm (init и join). Í stuttu máli, fyrir þetta:

  • vottorð sem klasinn notar eru flutt yfir í leyndarmál;
  • fyrir möguleikann á að nota etcd þyrpinguna inni í K8s þyrpingunni (þ.e. losna við áður núverandi ytri ósjálfstæði) etcd-rekstraraðili;
  • Skráir ráðlagðar stillingar fyrir utanaðkomandi álagsjafnara sem veitir bilunarþolna stillingu (í framtíðinni er fyrirhugað að útrýma þessari ósjálfstæði, en ekki á þessu stigi).

Kubernetes 1.14: Hápunktar þess sem er nýtt
Arkitektúr Kubernetes HA klasa sem búinn er til með kubeadm

Upplýsingar um framkvæmdina má finna í hönnunartillögu. Þessi eiginleiki var sannarlega beðið eftir: alfa útgáfan var væntanleg aftur í K8s 1.9, en birtist aðeins núna.

API

Team apply og almennt séð yfirlýsandi hlutastjórnun samþykkt á kubectl í apiserver. Hönnuðir sjálfir skýra ákvörðun sína í stuttu máli með því að segja það kubectl apply - grundvallaratriði í því að vinna með stillingar í Kubernetes, hins vegar, „það er fullt af villum og erfitt að laga,“ og því þarf að koma þessari virkni aftur í eðlilegt horf og flytja á stjórnborðið. Einföld og skýr dæmi um vandamál sem eru uppi í dag:

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

Upplýsingar um framkvæmdina liggja fyrir KEP. Núverandi viðbúnaður er alfa (kynning í beta er fyrirhuguð í næstu Kubernetes útgáfu).

Gert fáanlegt í alfa útgáfu tækifæri nota OpenAPI v3 kerfið fyrir búa til og birta OpenAPI skjöl fyrir CustomResources (CR) notað til að sannreyna (miðlarahlið) K8s notendaskilgreinda tilföng (CustomResourceDefinition, CRD). Útgáfa OpenAPI fyrir CRD gerir viðskiptavinum kleift (t.d. kubectl) framkvæma staðfestingu á þinni hlið (innan kubectl create и kubectl apply) og gefa út skjöl í samræmi við kerfið (kubectl explain). Upplýsingar - inn KEP.

Fyrirliggjandi logs eru nú að opna með fána O_APPEND (en ekki O_TRUNC) til að forðast tap á stokkum í sumum tilfellum og til að auðvelda að stytta stokka með ytri tólum til að snúa.

Einnig í samhengi við Kubernetes API má geta þess að í PodSandbox и PodSandboxStatus bætt við reit runtime_handler að skrá upplýsingar um RuntimeClass í belgnum (lesið meira um það í textanum um Kubernetes 1.12 útgáfa, þar sem þessi flokkur birtist sem alfaútgáfa), og í Admission Webhooks komið til framkvæmda getu til að ákvarða hvaða útgáfur AdmissionReview þeir styðja. Að lokum eru Admission Webhooks reglurnar núna hægt að takmarka umfang notkunar þeirra af nafnasvæðum og klasaramma.

Geymsluhúsnæði

PersistentLocalVolumes, sem hafði beta stöðu frá útgáfu K8s 1.10, tilkynnti stöðugt (GA): þetta eiginleikahlið er ekki lengur óvirkt og verður fjarlægt í Kubernetes 1.17.

Tækifæri með því að nota umhverfisbreytur sem kallast API niður á við (td fræbelgsnafnið) fyrir nöfn á möppum sem eru tengdar sem subPath, var þróað - í formi nýs sviðs subPathExpr, sem er nú notað til að ákvarða nafnið sem óskað er eftir. Eiginleikinn birtist upphaflega í Kubernetes 1.11, en fyrir 1.14 var hann áfram í alfa útgáfu stöðu.

Eins og með fyrri útgáfu Kubernetes, eru margar mikilvægar breytingar kynntar fyrir CSI (Container Storage Interface) sem er í virkri þróun:

CSI

Varð fáanlegt (sem hluti af alfa útgáfunni) styðja breyta stærð fyrir CSI bindi. Til að nota það þarftu að virkja eiginleikahliðið sem kallað er ExpandCSIVolumes, auk þess að fá stuðning fyrir þessa aðgerð í tilteknum CSI rekla.

Annar eiginleiki fyrir CSI í alfa útgáfunni - tækifæri vísa beint (þ.e.a.s. án þess að nota PV/PVC) í CSI bindi innan belgforskriftarinnar. Þetta fjarlægir takmörkun á notkun CSI sem eingöngu fjargagnageymslu, opna dyr að heiminum fyrir þeim staðbundin skammvinn bindi. Til notkunar (dæmi úr skjölum) verður að vera virkt CSIInlineVolume lögun hlið.

Það hefur einnig orðið framfarir í „innri“ Kubernetes sem tengjast CSI, sem eru ekki svo sýnilegir notendum (kerfisstjórum) ... Eins og er neyðast verktaki til að styðja tvær útgáfur af hverju geymsluviðbóti: eina - „í gamla leiðin“, inni í K8s kóðagrunninum (í -tré), og sá seinni - sem hluti af nýja CSI (lestu meira um það, til dæmis í hér). Þetta veldur skiljanlegum óþægindum sem þarf að bregðast við þegar CSI sjálft kemst á stöðugleika. Það er ekki hægt að afnema einfaldlega API innri (í tré) viðbætur vegna viðeigandi stefnu Kubernetes.

Allt þetta leiddi til þess að alfa útgáfan náði flutningsferli innri viðbótakóða, útfært sem í-tré, í CSI viðbætur, þökk sé áhyggjum þróunaraðila verður dregið úr því að styðja eina útgáfu af viðbætur þeirra, og eindrægni við gömul API verður áfram og hægt er að lýsa þeim úrelt í venjulegum atburðarás. Búist er við að við næstu útgáfu af Kubernetes (1.15) verði öll viðbætur fyrir skýjaveitur fluttar, útfærslan fái beta stöðu og verður sjálfkrafa virkjuð í K8s uppsetningum. Sjá nánar hönnunartillögu. Þessi fólksflutningur leiddi líka til bilun frá magntakmörkunum sem eru skilgreind af sérstökum skýjaveitum (AWS, Azure, GCE, Cinder).

Að auki stuðningur við blokkartæki með CSI (CSIBlockVolume) flutt í beta útgáfu.

Hnútar/Kúbelet

Alfa útgáfa kynnt nýr endapunktur í Kubelet, hannað fyrir skila mælikvarða á helstu auðlindir. Almennt séð, ef Kubelet fékk áður tölfræði um gámanotkun frá cAdvisor, þá koma þessi gögn frá gámakeyrsluumhverfinu í gegnum CRI (Container Runtime Interface), en eindrægni til að vinna með eldri útgáfur af Docker er einnig varðveitt. Áður var tölfræði sem safnað var í Kubelet send í gegnum REST API, en nú er endapunktur staðsettur á /metrics/resource/v1alpha1. Langtíma stefna þróunaraðila er er að lágmarka mæligildi sem Kubelet gefur. Við the vegur, þessar mælingar sjálfir nú kalla þeir ekki „kjarnamælingar“ heldur „auðlindamælingar“ og er þeim lýst sem „fyrsta flokks auðlindum, svo sem örgjörva og minni“.

Mjög áhugavert litbrigði: þrátt fyrir augljósan frammistöðukost gRPC endapunktsins í samanburði við ýmis tilvik þar sem Prometheus sniðið er notað (sjá niðurstöðu úr einu af viðmiðunum hér að neðan), höfundar vildu frekar textasnið Prometheus vegna skýrrar forystu þessa eftirlitskerfis í samfélaginu.

„gRPC er ekki samhæft við helstu vöktunarleiðslur. Endapunktur mun aðeins vera gagnlegur til að afhenda mælikvarða til Metric Server eða fylgjast með íhlutum sem samþættast beint við hann. Frammistaða Prometheus textasniðs þegar þú notar skyndiminni í Metrics Server nógu góður fyrir okkur að kjósa Prometheus fram yfir gRPC í ljósi þess að Prometheus er útbreidd í samfélaginu. Þegar OpenMetrics sniðið verður stöðugra munum við geta nálgast gRPC frammistöðu með frumbundnu sniði.

Kubernetes 1.14: Hápunktar þess sem er nýtt
Eitt af samanburðarprófunum á því að nota gRPC og Prometheus snið í nýja Kubelet endapunkti fyrir mælikvarða. Fleiri línurit og aðrar upplýsingar má finna í KEP.

Meðal annarra breytinga:

  • Kubelet núna (einu sinni) að reyna að hætta gáma í óþekktu ástandi fyrir endurræsingu og eyða aðgerðum.
  • Þegar á PodPresets nú að init gámnum bætt við sömu upplýsingar og fyrir venjulegan gám.
  • kúbelet byrjaði að nota usageNanoCores frá CRI tölfræðiveitunni og fyrir hnúta og ílát á Windows bætt við nettölfræði.
  • Upplýsingar um stýrikerfi og arkitektúr eru nú skráðar í merkimiða kubernetes.io/os и kubernetes.io/arch Hnútahlutir (fluttir úr beta til GA).
  • Geta til að tilgreina ákveðinn kerfisnotendahóp fyrir ílát í belg (RunAsGroup, birtist í K8s 1.11) háþróaður fyrir beta (virkjað sjálfgefið).
  • du og finna notað í cAdvisor, skipt út á Go framkvæmd.

CLI

Í cli-runtime og kubectl bætt við -k fáni til samþættingar við sérsníða (við the vegur, þróun þess fer nú fram í sérstakri geymslu), þ.e. til að vinna úr viðbótar YAML skrár úr sérstökum kustomization möppum (fyrir upplýsingar um notkun þeirra, sjá KEP):

Kubernetes 1.14: Hápunktar þess sem er nýtt
Dæmi um einfalda skráanotkun aðlögun (flóknari notkun kustomize er möguleg innan yfirlag)

Að auki:

  • Bætt við nýtt lið kubectl create cronjob, sem nafnið talar sínu máli.
  • В kubectl logs nú geturðu það að sameina fánar -f (--follow fyrir streymisskrár) og -l (--selector fyrir fyrirspurn um merki).
  • kubectl kennt afritaðu skrár sem valdar eru með jokertáknum.
  • Til liðsins kubectl wait bætt við fána --all til að velja öll tilföng í nafnrými tilgreindrar tilfangagerðar.

Aðrir

Eftirfarandi eiginleikar hafa fengið stöðuga (GA) stöðu:

Aðrar breytingar kynntar í Kubernetes 1.14:

  • Sjálfgefin RBAC stefna leyfir ekki lengur API aðgang discovery и access-review notendur án auðkenningar (óvottað).
  • Opinber CoreDNS stuðningur tryggt Aðeins Linux, þannig að þegar kubeadm er notað til að dreifa því (CoreDNS) í þyrping, verða hnútar aðeins að keyra á Linux (nodeSelectors eru notaðir fyrir þessa takmörkun).
  • Sjálfgefin CoreDNS stilling er núna notar áfram viðbót í stað umboðs. Einnig í CoreDNS bætt við readinessProbe, sem kemur í veg fyrir álagsjafnvægi á viðeigandi (ekki tilbúnum til þjónustu) belgjum.
  • Í kubeadm, á áföngum init eða upload-certs, varð mögulegt hlaðið inn skírteinunum sem þarf til að tengja nýju stjórnvélina við kubeadm-certs leyndarmálið (notaðu fánann --experimental-upload-certs).
  • Alfa útgáfa hefur birst fyrir Windows uppsetningar stuðningur gMSA (Group Managed Service Account) - sérstakir reikningar í Active Directory sem einnig er hægt að nota af gámum.
  • Fyrir G.C.E. virkjaður mTLS dulkóðun milli etcd og kube-apiserver.
  • Uppfærslur í notuðum/háðum hugbúnaði: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 stuðningur í kubeadm, og lágmarksstudd Docker API útgáfa er nú 1.26.

PS

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd