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

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

Dan il-lejl ser iseħħ ir-rilaxx li jmiss ta' Kubernetes - 1.14. Skont it-tradizzjoni li żviluppat għall-blog tagħna, qed nitkellmu dwar il-bidliet ewlenin fil-verżjoni l-ġdida ta’ dan il-prodott meraviljuż Open Source.

L-informazzjoni użata biex tipprepara dan il-materjal hija meħuda minn Kubernetes titjib tabelli ta 'traċċar, LOG TAL-BIDLA-1.14 u kwistjonijiet relatati, pull requests, Kubernetes Enhancement Proposals (KEP).

Nibdew b'introduzzjoni importanti miċ-ċiklu tal-ħajja tal-cluster SIG: raggruppamenti ta' failover dinamiċi Kubernetes (jew biex inkunu aktar preċiżi, skjeramenti HA self-hosted) issa jistgħu jinħolqu bl-użu ta' kmandi familjari (fil-kuntest ta' clusters b'node wieħed). kubeadm (init и join). Fil-qosor, għal dan:

  • ċertifikati użati mill-cluster huma trasferiti għal sigrieti;
  • għall-possibbiltà li tuża l-cluster etcd ġewwa l-cluster K8s (jiġifieri teħles mid-dipendenza esterna eżistenti qabel) operatur etcd;
  • Jiddokumenta s-settings rakkomandati għal load balancer estern li jipprovdi konfigurazzjoni tolleranti għall-ħsarat (fil-futur huwa ppjanat li tiġi eliminata din id-dipendenza, iżda mhux f'dan l-istadju).

Kubernetes 1.14: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin
Arkitettura ta' cluster Kubernetes HA maħluqa b'kubeadm

Id-dettalji tal-implimentazzjoni jistgħu jinstabu fi proposta tad-disinn. Din il-karatteristika kienet tassew mistennija: il-verżjoni alpha kienet mistennija lura f'K8s 1.9, iżda dehret biss issa.

API

Team apply u ġeneralment ġestjoni ta' oġġetti dikjarattivi mogħtija ta ' kubectl fl apiserver. L-iżviluppaturi nfushom jispjegaw fil-qosor id-deċiżjoni tagħhom billi jgħidu li kubectl apply - parti fundamentali tal-ħidma b'konfigurazzjonijiet f'Kubernetes, madankollu, "huwa mimli bugs u diffiċli biex jiġi rranġat," u għalhekk din il-funzjonalità jeħtieġ li terġa 'tinġieb għan-normal u tiġi trasferita għall-pjan ta' kontroll. Eżempji sempliċi u ċari ta’ problemi li jeżistu llum:

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

Id-dettalji dwar l-implimentazzjoni jinsabu fi KAP. Ir-rieda attwali hija alfa (il-promozzjoni għal beta hija ppjanata għar-rilaxx li jmiss ta' Kubernetes).

Magħmul disponibbli fil-verżjoni alpha opportunità bl-użu tal-iskema OpenAPI v3 għal ħolqien u pubblikazzjoni ta' dokumentazzjoni OpenAPI għal CustomResources (CR) użat biex jivvalida (min-naħa tas-server) riżorsi definiti mill-utent tal-K8s (CustomResourceDefinition, CRD). Il-pubblikazzjoni ta’ OpenAPI għal CRD tippermetti lill-klijenti (eż. kubectl) twettaq validazzjoni min-naħa tiegħek (fi ħdan kubectl create и kubectl apply) u toħroġ dokumentazzjoni skont l-iskema (kubectl explain). Dettalji - fi KAP.

Zkuk eżistenti minn qabel issa qed jiftħu bil-bandiera O_APPEND (iżda mhux O_TRUNC) biex jiġi evitat it-telf ta 'zkuk f'xi sitwazzjonijiet u għall-konvenjenza ta' qtugħ ta 'zkuk b'utilitajiet esterni għar-rotazzjoni.

Ukoll fil-kuntest tal-API Kubernetes, jista 'jiġi nnotat li fi PodSandbox и PodSandboxStatus miżjud qasam runtime_handler biex tirreġistra informazzjoni dwar RuntimeClass fil-pod (aqra aktar dwarha fit-test dwar Kubernetes 1.12 rilaxx, fejn din il-klassi dehret bħala verżjoni alpha), u f'Admission Webhooks implimentati abbiltà li jiddetermina liema verżjonijiet AdmissionReview huma jappoġġjaw. Fl-aħħarnett, ir-regoli tal-Webhooks tad-Dħul issa huma jistgħu jkunu limitati l-estent tal-użu tagħhom mill-ispazji tal-isem u l-oqfsa tal-clusters.

Faċilitajiet għall-ħażna

PersistentLocalVolumes, li kellha status beta minn meta ħarġet K8s 1.10, imħabbra stabbli (GA): dan il-bieb tal-karatteristika m'għadux diżattivat u se jitneħħa f'Kubernetes 1.17.

Opportunità bl-użu ta 'varjabbli ambjentali imsejħa API 'l isfel (per eżempju, l-isem pod) għall-ismijiet tad-direttorji mmuntati bħala subPath, ġie żviluppat - fil-forma ta 'qasam ġdid subPathExpr, li issa jintuża biex jiddetermina l-isem tad-direttorju mixtieq. Il-karatteristika inizjalment dehret f'Kubernetes 1.11, iżda għal 1.14 baqgħet fl-istatus tal-verżjoni alpha.

Bħal fir-rilaxx preċedenti ta' Kubernetes, ġew introdotti ħafna bidliet sinifikanti għas-CSI (Container Storage Interface) li qed tiżviluppa b'mod attiv:

CSI

Sar disponibbli (bħala parti mill-verżjoni alpha) appoġġ ridimensjonar għal volumi CSI. Biex tużah ser ikollok bżonn li tattiva l-karatteristika gate imsejħa ExpandCSIVolumes, kif ukoll id-disponibbiltà ta 'appoġġ għal din l-operazzjoni f'sewwieq CSI speċifiku.

Karatteristika oħra għal CSI fil-verżjoni alpha - opportunità irreferi direttament (jiġifieri mingħajr ma tuża PV/PVC) għal volumi CSI fi ħdan l-ispeċifikazzjoni tal-pod. Dan tneħħi r-restrizzjoni fuq l-użu tas-CSI bħala ħażna tad-dejta esklussivament remota, tiftaħ il-bibien għad-dinja għalihom volumi effimeri lokali. Għall-użu (eżempju mid-dokumentazzjoni) għandhom ikunu attivati CSIInlineVolume bieb tal-karatteristika.

Kien hemm ukoll progress fil-"interni" ta 'Kubernetes relatati ma' CSI, li mhumiex daqshekk viżibbli għall-utenti finali (amministraturi tas-sistema) ... Bħalissa, l-iżviluppaturi huma sfurzati jappoġġaw żewġ verżjonijiet ta 'kull plugin tal-ħażna: wieħed - "fil- mod antik”, ġewwa l-kodiċi K8s (f'-siġra), u t-tieni - bħala parti mis-CSI il-ġdid (aqra aktar dwarha, pereżempju, fi hawn). Dan jikkawża inkonvenjenzi li jinftiehmu li jeħtieġ li jiġu indirizzati hekk kif is-CSI innifsu jistabbilizza. Mhuwiex possibbli li sempliċement deprecate l-API ta 'plugins interni (fis-siġra) minħabba politika rilevanti ta’ Kubernetes.

Dan kollu wassal għall-fatt li l-verżjoni alpha laħqet proċess ta’ migrazzjoni kodiċi tal-plugin intern, implimentati bħala in-tree, fil-plugins CSI, li grazzi għalihom l-inkwiet tal-iżviluppaturi se jitnaqqas biex jappoġġja verżjoni waħda tal-plugins tagħhom, u l-kompatibilità ma 'APIs qodma se tibqa' u jistgħu jiġu ddikjarati skaduti fix-xenarju tas-soltu. Huwa mistenni li sal-rilaxx li jmiss ta 'Kubernetes (1.15) il-plugins kollha tal-fornitur tas-sħab jiġu emigrati, l-implimentazzjoni tirċievi status beta u se tiġi attivata fl-installazzjonijiet K8s b'mod awtomatiku. Għad-dettalji, ara proposta tad-disinn. Din il-migrazzjoni rriżultat ukoll fi falliment mil-limiti tal-volum definiti minn fornituri speċifiċi tal-cloud (AWS, Azure, GCE, Cinder).

Barra minn hekk, appoġġ għal apparati blokk b'CSI (CSIBlockVolume) trasferiti għall-verżjoni beta.

Nodi/Kubelet

Verżjoni Alpha ppreżentata endpoint ġdid f'Kubelet, iddisinjat għal ritorn metriċi fuq riżorsi ewlenin. B'mod ġenerali, jekk qabel Kubelet irċieva statistika dwar l-użu tal-kontejners minn cAdvisor, issa din id-dejta ġejja mill-ambjent tar-runtime tal-kontejner permezz ta 'CRI (Container Runtime Interface), iżda l-kompatibilità biex taħdem ma' verżjonijiet anzjani ta 'Docker hija wkoll ippreservata. Preċedentement, l-istatistika miġbura f'Kubelet intbagħtet permezz tal-API REST, iżda issa endpoint li jinsab f' /metrics/resource/v1alpha1. Strateġija fit-tul ta 'żviluppaturi huwa huwa li jimminimizza s-sett ta 'metriċi pprovduti minn Kubelet. Mill-mod, dawn il-metriċi nfushom issa jċemplu mhux "metriċi ewlenin", iżda "metriċi tar-riżorsi", u huma deskritti bħala "riżorsi tal-ewwel klassi, bħal cpu, u memorja".

Sfumatura interessanti ħafna: minkejja l-vantaġġ ċar tal-prestazzjoni tal-endpoint gRPC meta mqabbel ma 'diversi każijiet ta' użu tal-format Prometheus (ara r-riżultat ta' wieħed mill-parametri referenzjarji hawn taħt), l-awturi ppreferew il-format tat-test ta 'Prometheus minħabba t-tmexxija ċara ta' din is-sistema ta 'monitoraġġ fil-komunità.

"gRPC mhuwiex kompatibbli ma 'pipelines ta' monitoraġġ ewlenin. Endpoint se jkun utli biss biex iwassal metriċi lil Metrics Server jew jimmonitorjaw komponenti li jintegraw direttament miegħu. Prestazzjoni tal-format tat-test Prometheus meta tuża l-caching fil-Metrics Server tajjeb biżżejjed għalina nippreferu Prometheus fuq gRPC minħabba l-adozzjoni mifruxa ta 'Prometheus fil-komunità. Ladarba l-format OpenMetrics isir aktar stabbli, inkunu nistgħu nersqu lejn il-prestazzjoni tal-gRPC b'format ibbażat fuq proto."

Kubernetes 1.14: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin
Wieħed mit-testijiet tal-prestazzjoni komparattivi tal-użu tal-formati gRPC u Prometheus fl-endpoint il-ġdid ta 'Kubelet għall-metriċi. Aktar graffs u dettalji oħra jistgħu jinstabu fi KAP.

Fost bidliet oħra:

  • Kubelet issa (darba) tipprova tieqaf kontenituri fi stat mhux magħruf qabel jerġgħu jibdew u ħassru l-operazzjonijiet.
  • Meta jintuża l- PodPresets issa għall-kontenitur init miżjud l-istess informazzjoni bħal għal kontenitur regolari.
  • kubelet beda juża usageNanoCores mill-fornitur tal-istatistika CRI, u għal nodi u kontenituri fuq Windows miżjud statistika tan-netwerk.
  • L-informazzjoni dwar is-sistema operattiva u l-arkitettura issa hija rreġistrata fit-tikketti kubernetes.io/os и kubernetes.io/arch Oġġetti nodi (trasferiti minn beta għal GA).
  • Kapaċità li tispeċifika grupp speċifiku ta' utenti tas-sistema għal kontenituri f'pod (RunAsGroup, deher fi K8s 1.11) avvanzati qabel beta (attivata awtomatikament).
  • du u ssib użat f'cAdvisor, mibdula on Go implimentazzjoni.

CLI

Fil-cli-runtime u kubectl miżjud -k bandiera għall-integrazzjoni ma Ippersonalizza (mill-mod, l-iżvilupp tiegħu issa jitwettaq f'repożitorju separat), i.e. biex tipproċessa fajls YAML addizzjonali minn direttorji ta' kustomizzazzjoni speċjali (għal dettalji dwar l-użu tagħhom, ara KAP):

Kubernetes 1.14: ħarsa ġenerali lejn l-innovazzjonijiet ewlenin
Eżempju ta' użu sempliċi tal-fajl customization (applikazzjoni aktar kumplessa ta' kustomize hija possibbli fi ħdan overlays)

Barra minn hekk:

  • Miżjud tim ġdid kubectl create cronjob, li ismu jitkellem waħdu.
  • В kubectl logs issa tista' għaqqad bnadar -f (--follow għal zkuk tal-istrimjar) u -l (--selector għal mistoqsija dwar it-tikketta).
  • kubectl mgħallma kopja fajls magħżula minn wild card.
  • Lit-tim kubectl wait miżjud bandiera --all biex tagħżel ir-riżorsi kollha fl-ispazju tal-isem tat-tip ta’ riżors speċifikat.

Oħrajn

Il-kapaċitajiet li ġejjin irċevew status stabbli (GA):

Bidliet oħra introdotti f'Kubernetes 1.14:

  • Il-politika default RBAC m'għadhiex tippermetti aċċess għall-API discovery и access-review utenti mingħajr awtentikazzjoni (mhux awtentikata).
  • Appoġġ uffiċjali CoreDNS assigurata Linux biss, għalhekk meta tuża kubeadm biex tiskjerah (CoreDNS) fi cluster, in-nodi għandhom jaħdmu biss fuq Linux (nodeSelectors jintużaw għal din il-limitazzjoni).
  • Il-konfigurazzjoni default CoreDNS hija issa użi plugin quddiem minflok prokura. Ukoll, fil CoreDNS miżjud ReadinessProbe, li jipprevjeni l-ibbilanċjar tat-tagħbija fuq imżiewed xierqa (mhux lesti għas-servizz).
  • F'kubeadm, fuq fażijiet init jew upload-certs, sar possibbli tagħbija ċ-ċertifikati meħtieġa biex tgħaqqad il-pjan ta' kontroll il-ġdid mas-sigriet kubeadm-certs (uża l-bandiera --experimental-upload-certs).
  • Verżjoni alpha dehret għall-installazzjonijiet tal-Windows appoġġ gMSA (Group Managed Service Account) - kontijiet speċjali fl-Active Directory li jistgħu jintużaw ukoll minn kontejners.
  • Għall-G.C.E. attivat Encryption mTLS bejn etcd u kube-apiserver.
  • Aġġornamenti f'softwer użat/dipendenti: Mur 1.12.1, CSI 1.1, CoreDNS 1.3.1, appoġġ Docker 18.09 f'kubeadm, u l-verżjoni minima appoġġjata tal-API Docker issa hija 1.26.

PS

Aqra wkoll fuq il-blog tagħna:

Sors: www.habr.com

Żid kumment