Kubernetes 1.14: Akopọ ti awọn imotuntun akọkọ

Kubernetes 1.14: Akopọ ti awọn imotuntun akọkọ

Alẹ yi yoo waye itusilẹ atẹle ti Kubernetes - 1.14. Gẹgẹbi aṣa ti o ti dagbasoke fun bulọọgi wa, a n sọrọ nipa awọn iyipada bọtini ni ẹya tuntun ti ọja Orisun Orisun iyanu yii.

Alaye ti a lo lati mura ohun elo yii ni a gba lati Kubernetes awọn ilọsiwaju titele awọn tabili, CHANGELOG-1.14 ati awọn ọran ti o jọmọ, awọn ibeere fa, Awọn igbero Imudara Kubernetes (KEP).

Jẹ ki a bẹrẹ pẹlu ifihan pataki lati SIG cluster-lifecycle: ìmúdàgba failover iṣupọ Kubernetes (tabi lati jẹ kongẹ diẹ sii, awọn imuṣiṣẹ HA ti gbalejo) jẹ bayi le ṣẹda lilo faramọ (ni o tọ ti nikan-ipade iṣupọ) ase kubeadm (init и join). Ni kukuru, fun eyi:

  • awọn iwe-ẹri ti a lo nipasẹ iṣupọ ni a gbe lọ si awọn aṣiri;
  • fun seese ti lilo iṣupọ etcd inu iṣupọ K8s (ie yiyọkuro igbẹkẹle ita ti o wa tẹlẹ) etcd-onišẹ;
  • Awọn iwe aṣẹ awọn eto ti a ṣe iṣeduro fun iwọntunwọnsi fifuye ita ti o pese iṣeto ifarada-aṣiṣe (ni ọjọ iwaju o ti gbero lati yọkuro igbẹkẹle yii, ṣugbọn kii ṣe ni ipele yii).

Kubernetes 1.14: Akopọ ti awọn imotuntun akọkọ
Faaji ti iṣupọ Kubernetes HA ti a ṣẹda pẹlu kubeadm

Awọn alaye ti imuse ni a le rii ni igbero oniru. Ẹya yii jẹ otitọ ti a ti nreti pipẹ: ẹya alpha ni a nireti pada ni K8s 1.9, ṣugbọn han nikan ni bayi.

API

Egbe apply ati gbogbo soro ìṣàkóso ohun ìkéde koja ati bẹbẹ lọ kubectl ni apiserver. Awọn olupilẹṣẹ funrararẹ ṣalaye ipinnu wọn ni ṣoki nipa sisọ pe kubectl apply - apakan ipilẹ ti ṣiṣẹ pẹlu awọn atunto ni Kubernetes, sibẹsibẹ, “o kun fun awọn idun ati pe o nira lati ṣatunṣe,” ati nitori naa iṣẹ ṣiṣe yii nilo lati mu pada si deede ati gbe lọ si ọkọ ofurufu iṣakoso. Awọn apẹẹrẹ ti o rọrun ati kedere ti awọn iṣoro ti o wa loni:

Kubernetes 1.14: Akopọ ti awọn imotuntun akọkọ

Awọn alaye nipa imuse wa ninu Bọtini. Imurasilẹ lọwọlọwọ jẹ alpha (igbega si beta ti gbero fun itusilẹ Kubernetes atẹle).

Ṣe wa ni Alpha version anfaani lilo eto OpenAPI v3 fun ṣiṣẹda ati titẹjade iwe OpenAPI fun CustomResources (CR) lo lati sooto (olupin-ẹgbẹ) K8s olumulo-telẹ oro (CustomResourceDefinition, CRD). Titẹjade OpenAPI fun CRD gba awọn alabara laaye (fun apẹẹrẹ. kubectl) ṣe afọwọsi ni ẹgbẹ rẹ (laarin kubectl create и kubectl apply) ati awọn iwe aṣẹ jade ni ibamu si ero naa (kubectl explain). Awọn alaye - ni Bọtini.

Awọn akọọlẹ ti o wa tẹlẹ ti wa ni ṣiṣi bayi pelu asia O_APPEND (ṣugbọn kii ṣe O_TRUNC) lati yago fun isonu ti awọn àkọọlẹ ni diẹ ninu awọn ipo ati fun awọn wewewe ti truncating àkọọlẹ pẹlu ita igbesi fun yiyi.

Paapaa ni aaye ti Kubernetes API, o le ṣe akiyesi pe ni PodSandbox и PodSandboxStatus kun aaye runtime_handler lati ṣe igbasilẹ alaye nipa RuntimeClass ninu podu (ka diẹ sii nipa rẹ ninu ọrọ nipa Kubernetes 1.12 idasilẹ, nibiti kilasi yii ti han bi ẹya alfa), ati ni Gbigbawọle Webhooks imuse agbara lati mọ eyi ti awọn ẹya AdmissionReview wọn ṣe atilẹyin. Lakotan, awọn ofin Wẹẹbu Wẹẹbu ti wa ni bayi le ni opin iwọn lilo wọn nipasẹ awọn aaye orukọ ati awọn ilana iṣupọ.

Awọn ifinkan

PersistentLocalVolumes, eyiti o ni ipo beta lati igba itusilẹ K8s 1.10, kede idurosinsin (GA): Ẹnu ẹya ara ẹrọ yii ko ni alaabo ati pe yoo yọkuro ni Kubernetes 1.17.

Anfani lilo awọn oniyipada ayika ti a npe ni API ìsàlẹ̀ (fun apẹẹrẹ, awọn podu orukọ) fun awọn orukọ ti awọn ilana agesin bi subPath, ti ni idagbasoke - ni irisi aaye tuntun kan subPathExpr, eyi ti o ti wa ni bayi lo lati mọ awọn ti o fẹ liana orukọ. Ẹya naa ni ibẹrẹ han ni Kubernetes 1.11, ṣugbọn fun 1.14 o wa ni ipo ẹya alfa.

Gẹgẹbi itusilẹ Kubernetes ti tẹlẹ, ọpọlọpọ awọn ayipada pataki ni a ṣe agbekalẹ fun CSI ti n ṣe idagbasoke ti nṣiṣe lọwọ (Ibaraẹnisọrọ Ibi ipamọ Apoti):

CSI

Di wa (gẹgẹbi apakan ti ẹya alpha) atilẹyin tunṣe fun awọn iwọn didun CSI. Lati lo o yoo nilo lati jeki ẹnu-ọna ẹya ti a pe ExpandCSIVolumes, bakannaa wiwa atilẹyin fun išišẹ yii ni awakọ CSI kan pato.

Ẹya miiran fun CSI ni ẹya alfa - anfaani tọka taara (ie laisi lilo PV/PVC) si awọn iwọn CSI laarin sipesifikesonu podu. Eyi yọkuro ihamọ lori lilo CSI bi ibi ipamọ data latọna jijin iyasọtọ, ṣiṣi ilẹkun si aye fun wọn agbegbe ephemeral iwọn didun. Fun lilo (apẹẹrẹ lati iwe) gbọdọ ṣiṣẹ CSIInlineVolume ẹnu-bode.

Ilọsiwaju tun ti wa ninu “awọn inu” ti Kubernetes ti o ni ibatan si CSI, eyiti ko han si awọn olumulo ipari (awọn oludari eto) ... Lọwọlọwọ, awọn olupilẹṣẹ ti fi agbara mu lati ṣe atilẹyin awọn ẹya meji ti ohun itanna ipamọ kọọkan: ọkan - “ninu ọna atijọ”, inu K8s codebase (in-igi), ati keji - gẹgẹbi apakan ti CSI tuntun. (ka diẹ sii nipa rẹ, fun apẹẹrẹ, ninu nibi). Eyi fa awọn inira ti o ni oye ti o nilo lati koju bi CSI funrararẹ ṣe duro. Ko ṣee ṣe lati yọkuro API ti awọn afikun inu (ni-igi) nitori ti o yẹ Kubernetes imulo.

Gbogbo eyi yori si otitọ pe ẹya Alpha ti de ilana ijira ti abẹnu itanna koodu, ti a ṣe bi inu igi, ni awọn afikun CSI, ọpẹ si eyiti awọn aibalẹ ti awọn olupilẹṣẹ yoo dinku lati ṣe atilẹyin ẹya kan ti awọn afikun wọn, ati ibamu pẹlu awọn API atijọ yoo wa ati pe wọn le sọ pe o ti di igba atijọ ni oju iṣẹlẹ deede. O nireti pe nipasẹ itusilẹ atẹle ti Kubernetes (1.15) gbogbo awọn afikun olupese awọsanma yoo lọ, imuse yoo gba ipo beta ati pe yoo muu ṣiṣẹ ni awọn fifi sori ẹrọ K8s nipasẹ aiyipada. Fun alaye, wo igbero oniru. Eleyi ijira tun yorisi ni ifagile lati awọn opin iwọn didun asọye nipasẹ awọn olupese awọsanma kan pato (AWS, Azure, GCE, Cinder).

Ni afikun, atilẹyin fun awọn ẹrọ dina pẹlu CSI (CSIBlockVolume) ti o ti gbe to beta version.

Awọn apa / Kubelet

Alpha version gbekalẹ titun opin ni Kubelet, apẹrẹ fun pada metiriki lori bọtini oro. Ni gbogbogbo, ti Kubelet ba ti gba awọn iṣiro lori lilo eiyan lati ọdọ cAdvisor, ni bayi data yii wa lati agbegbe asiko asiko eiyan nipasẹ CRI (Asopọmọra Iṣeduro Apoti), ṣugbọn ibaramu fun ṣiṣẹ pẹlu awọn ẹya agbalagba ti Docker tun wa ni ipamọ. Ni iṣaaju, awọn iṣiro ti a gba ni Kubelet ni a firanṣẹ nipasẹ REST API, ṣugbọn ni bayi aaye ipari ti o wa ni /metrics/resource/v1alpha1. Gun-igba nwon.Mirza ti kóòdù ni ni lati dinku ṣeto awọn metiriki ti Kubelet pese. Nipa ọna, awọn metiriki wọnyi funrararẹ bayi ti won npe ni kii ṣe “awọn metiriki mojuto”, ṣugbọn “awọn metiriki orisun”, ati pe a ṣe apejuwe rẹ bi “awọn orisun kilasi akọkọ, gẹgẹ bi cpu, ati iranti”.

Nuance ti o nifẹ pupọ: laibikita anfani iṣẹ ṣiṣe ti o han gbangba ti aaye ipari gRPC ni lafiwe pẹlu awọn ọran pupọ ti lilo ọna kika Prometheus (wo abajade ti ọkan ninu awọn ipilẹ ti o wa ni isalẹ), awọn onkọwe fẹran ọna kika ọrọ ti Prometheus nitori itọsọna ti o han gbangba ti eto ibojuwo ni agbegbe.

“gRPC ko ni ibaramu pẹlu awọn opo gigun ti ibojuwo pataki. Ipari ipari yoo wulo nikan fun jiṣẹ awọn metiriki si olupin Metrics tabi awọn paati ibojuwo ti o ṣepọ taara pẹlu rẹ. Iṣẹ ọna kika ọrọ Prometheus nigba lilo caching ni Servers Metrics dara to fun wa lati fẹ Prometheus ju gRPC fun gbigba ni ibigbogbo ti Prometheus ni agbegbe. Ni kete ti ọna kika OpenMetrics di iduroṣinṣin diẹ sii, a yoo ni anfani lati sunmọ iṣẹ gRPC pẹlu ọna kika orisun-proto.”

Kubernetes 1.14: Akopọ ti awọn imotuntun akọkọ
Ọkan ninu awọn idanwo iṣẹ ṣiṣe afiwe ti lilo gRPC ati awọn ọna kika Prometheus ni aaye ipari Kubelet tuntun fun awọn metiriki. Awọn aworan diẹ sii ati awọn alaye miiran ni a le rii ni Bọtini.

Lara awọn iyipada miiran:

  • Kubelet bayi (akoko kan) gbiyanju lati da awọn apoti ni ipo aimọ ṣaaju tun bẹrẹ ati paarẹ awọn iṣẹ ṣiṣe.
  • Lilo PodPresets bayi si init eiyan fi kun alaye kanna bi fun eiyan deede.
  • kubelet bẹrẹ lilo usageNanoCores lati ọdọ olupese awọn iṣiro CRI, ati fun awọn apa ati awọn apoti lori Windows kun nẹtiwọki statistiki.
  • Eto iṣẹ ati alaye faaji ti wa ni igbasilẹ ni awọn aami kubernetes.io/os и kubernetes.io/arch Awọn nkan ipade (gbe lati beta si GA).
  • Agbara lati pato ẹgbẹ olumulo eto kan pato fun awọn apoti ninu adarọ ese kan (RunAsGroup, farahan ninu K8s 1.11) to ti ni ilọsiwaju ṣaaju beta (ṣiṣẹ nipasẹ aiyipada).
  • du ki o si ri lo ninu cAdvisor, rọpo lori Go imuse.

CLI

Ni cli-igba ṣiṣe ati kubectl fi kun flag -k fun Integration pẹlu ṣe akanṣe (nipasẹ ọna, idagbasoke rẹ ti wa ni bayi ni ibi ipamọ ti o yatọ), i.e. lati ṣe ilana awọn afikun awọn faili YAML lati awọn ilana kustomization pataki (fun awọn alaye lori lilo wọn, wo Bọtini):

Kubernetes 1.14: Akopọ ti awọn imotuntun akọkọ
Apẹẹrẹ ti lilo faili ti o rọrun isọdi (a eka sii ohun elo ti kustomize jẹ ṣee ṣe laarin iṣagbesori)

Ni afikun:

  • Fi kun titun egbe kubectl create cronjob, tí orúkọ rẹ̀ ń sọ̀rọ̀ fúnra rẹ̀.
  • В kubectl logs bayi o le darapọ awọn asia -f (--follow fun awọn akọọlẹ ṣiṣanwọle) ati -l (--selector fun ibeere aami).
  • kubectl kọ daakọ awọn faili ti a ti yan nipa egan kaadi.
  • Si egbe kubectl wait fi kun asia --all lati yan gbogbo awọn orisun ni aaye orukọ ti iru orisun orisun.

Miiran

Awọn agbara atẹle ti gba ipo iduroṣinṣin (GA):

Awọn ayipada miiran ti a ṣafihan ni Kubernetes 1.14:

  • Ilana RBAC aiyipada ko gba laaye API wọle si discovery и access-review awọn olumulo lai ìfàṣẹsí (aigbagbọ).
  • Atilẹyin CoreDNS osise idaniloju Lainos nikan, nitorinaa nigba lilo kubeadm lati mu ṣiṣẹ (CoreDNS) ninu iṣupọ kan, awọn apa gbọdọ ṣiṣẹ lori Lainos nikan (nodeSelectors ni a lo fun aropin yii).
  • Aiyipada CoreDNS iṣeto ni bayi awọn lilo siwaju itanna dipo aṣoju. Bakannaa, ni CoreDNS kun readinessProbe, eyi ti idilọwọ fifuye iwontunwosi lori yẹ (ko setan fun iṣẹ) pods.
  • Ni kubeadm, lori awọn ipele init tabi upload-certs, di ṣee ṣe fifuye awọn iwe-ẹri ti o nilo lati so ọkọ ofurufu iṣakoso titun pọ si kubeadm-certs asiri (lo asia --experimental-upload-certs).
  • Ẹya alpha kan ti farahan fun awọn fifi sori ẹrọ Windows atilẹyin gMSA (Akọọlẹ Iṣẹ iṣakoso Ẹgbẹ) - awọn akọọlẹ pataki ni Itọsọna Active ti o tun le ṣee lo nipasẹ awọn apoti.
  • Fun G.C.E. mu ṣiṣẹ ìsekóòdù mTLS laarin etcd ati kube-apiserver.
  • Awọn imudojuiwọn ni lilo / sọfitiwia ti o gbẹkẹle: Lọ 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 atilẹyin ni kubeadm, ati ẹya Docker API ti o kere julọ ti o ni atilẹyin jẹ bayi 1.26.

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun