Kubernetes 1.14: kakaretso ea lintlafatso tsa mantlha

Kubernetes 1.14: kakaretso ea lintlafatso tsa mantlha

Bosiung bona li tla etsahala tokollo e latelang ea Kubernetes - 1.14. Ho ea ka moetlo o ntlafalitsoeng bakeng sa blog ea rona, re bua ka liphetoho tsa bohlokoa mofuteng o mocha oa sehlahisoa sena se setle sa Open Source.

Boitsebiso bo sebelisitsoeng ho lokisetsa boitsebiso bona bo nkiloe ho Kubernetes e ntlafatsa litafole tsa ho latedisa, PHETOHO-1.14 le litaba tse amanang le tsona, likopo tsa ho hula, Litlhahiso tsa Ntlafatso ea Kubernetes (KEP).

Ha re qaleng ka kenyelletso ea bohlokoa ho tsoa ho SIG cluster-lifecycle: lihlopha tse matla tsa failover Kubernetes (kapa ho bua ka nepo, li-deployments tsa HA tse ikemetseng) li se li le teng e ka etsoa ho sebelisa tse tloaelehileng (moelelong oa lihlopha tsa node e le 'ngoe) litaelo kubeadm (init и join). Ka bokhutšoanyane, bakeng sa sena:

  • litifikeiti tse sebelisoang ke sehlopha li fetisetsoa ho liphiri;
  • bakeng sa monyetla oa ho sebelisa sehlopha sa etcd ka har'a sehlopha sa K8s (ke hore, ho tlosa botšepehi bo neng bo le teng pele ba kantle) etcd-opereishene;
  • Litokomane tsa litlhophiso tse khothalelitsoeng bakeng sa balancer ea mojaro oa kantle e fanang ka tlhophiso e mamellang liphoso (nakong e tlang ho reriloe ho felisa ho itšetleha hona, empa eseng mothating ona).

Kubernetes 1.14: kakaretso ea lintlafatso tsa mantlha
Moralo oa sehlopha sa Kubernetes HA se entsoeng ka kubeadm

Lintlha tsa ts'ebetsong li ka fumanoa ho tlhahiso ea moralo. Karolo ena e ne e letetsoe ka nako e telele: mofuta oa alpha o ne o lebelletsoe morao ho K8s 1.9, empa o hlahile hona joale.

API

sehlopha apply le ka kakaretso taolo ya ntho e hlalosang feta ho tswa kubectl ka apiserver. Bahlahisi ka bobona ba hlalosa qeto ea bona ka bokhutšoanyane ka ho bua joalo kubectl apply - karolo ea bohlokoa ea ho sebetsa le litlhophiso ho Kubernetes, leha ho le joalo, "e tletse likokoana-hloko ebile ho thata ho e lokisa," ka hona ts'ebetso ena e hloka ho khutlisetsoa ho tloaelehileng le ho fetisetsoa sefofaneng sa taolo. Mehlala e bonolo le e hlakileng ea mathata a teng kajeno:

Kubernetes 1.14: kakaretso ea lintlafatso tsa mantlha

Lintlha tse mabapi le ts'ebetsong li teng Kep. Boitokisetso ba hajoale ke alpha (ho reriloe ho beta bakeng sa tokollo e latelang ea Kubernetes).

E fumaneha ka mofuta oa alpha monyetla ho sebelisa morero oa OpenAPI v3 bakeng sa ho theha le ho phatlalatsa litokomane tsa OpenAPI bakeng sa CustomResources (CR) e sebelisetsoang ho netefatsa (lehlakore la seva) lisebelisoa tsa K8s tse hlalositsoeng ke basebelisi (CustomResourceDefinition, CRD). Ho phatlalatsa OpenAPI bakeng sa CRD ho lumella bareki (mohlala. kubectl) etsa netefatso ka lehlakoreng la hau (ka hare ho kubectl create и kubectl apply) le ho fana ka litokomane ho latela morero (kubectl explain). Lintlha - ho Kep.

Li-logs tse seng li ntse li le teng li ntse li buloa e nang le folakha O_APPEND (empa ha ho joalo O_TRUNC) ho qoba tahlehelo ea lits'oants'o maemong a mang le molemong oa ho fokotsa likutu tse nang le lisebelisoa tsa kantle bakeng sa ho potoloha.

Hape maemong a Kubernetes API, ho ka hlokomeloa hore ho PodSandbox и PodSandboxStatus eketsoe tšimo runtime_handler ho rekota tlhahisoleseding mabapi le RuntimeClass ka pod (bala haholoanyane ka eona temaneng e mabapi le Kubernetes 1.12 tokollo, moo sehlopha sena se hlahileng e le mofuta oa alpha), le ho Admission Webhooks kenngwa tshebetsong bokhoni ba ho tseba hore na ke liphetolelo life AdmissionReview ba tšehetsa. Qetellong, melao ea Admission Webhooks e se e le teng e ka fokotsoa tekanyo ya tshebediso ya tsona ka dibaka tsa mabitso le dibopeho tsa sehlopha.

Li-vaults

PersistentLocalVolumes, e neng e na le boemo ba beta ho tloha ha e lokolloa K8s 1.10, phatlalatsoa e tsitsitseng (GA): heke ena ea likarolo ha e sa sebetsa 'me e tla tlosoa Kubernetes 1.17.

Monyetla ho sebedisa diphapano tsa tikoloho tse bitswang Downward API (mohlala, lebitso la pod) bakeng sa mabitso a li-directory tse kentsoeng joalo ka subPath, e ile ea ntlafatsoa - ka mokhoa oa tšimo e ncha subPathExpr, e seng e sebelisoa ho fumana lebitso la directory le lakatsehang. Karolo e qalile e hlahile ho Kubernetes 1.11, empa bakeng sa 1.14 e ile ea lula e le boemong ba mofuta oa alpha.

Joalo ka tokollo e fetileng ea Kubernetes, ho hlahisoa liphetoho tse ngata tsa bohlokoa bakeng sa CSI e ntseng e tsoela pele ka mafolofolo (Container Storage Interface):

CSI

E fumaneha (e le karolo ea mofuta oa alpha) tšehetso ho fetola boholo ba meqolo ea CSI. Ho e sebelisa o tla hloka ho nolofalletsa heke ea tšobotsi e bitsoang ExpandCSIVolumes, hammoho le boteng ba tšehetso bakeng sa ts'ebetso ena ho mokhanni o itseng oa CSI.

Ntho e 'ngoe bakeng sa CSI phetolelong ea alpha - monyetla bua ka kotloloho (ke hore ntle le ho sebelisa PV/PVC) ho meqolo ea CSI ka har'a litlhaloso tsa pod. Sena e tlosa thibelo ea tšebeliso ea CSI e le polokelo ea data e hole feela, ho ba bulela menyako ea lefatše meqolo ea sebaka sa ephemeral. Bakeng sa tšebeliso (mohlala ho tsoa litokomaneng) e tlameha ho bulela CSIInlineVolume keke ea tšobotsi.

Hape ho bile le tsoelo-pele ho "internals" ea Kubernetes e amanang le CSI, e sa bonahaleng ho basebelisi ba ho qetela (batsamaisi ba tsamaiso) ... Hajoale, bahlahisi ba qobelloa ho tšehetsa liphetolelo tse peli tsa plugin ka 'ngoe ea polokelo: e le' ngoe - "ho khale", ka hare ho codebase ea K8s (ka-sefate), 'me ea bobeli - e le karolo ea CSI e ncha. (bala haholoanyane ka eona, mohlala, ho mona). Sena se baka litšitiso tse utloisisehang tse hlokang ho rarolloa ha CSI ka boeona e tsitsa. Ho ke ke ha khoneha ho nyenyefatsa API ea li-plugins tsa ka hare (ka-sefateng) ka lebaka la leano la bohlokoa la Kubernetes.

Sena sohle se ile sa lebisa ntlheng ea hore mofuta oa alpha o fihlile mokhoa oa ho falla khoutu ea ka hare ea plugin, e kenngoa ts'ebetsong e le sefate, ho li-plugins tsa CSI, ka lebaka leo matšoenyeho a bahlahisi a tla fokotsoa ho tšehetsa mofuta o le mong oa li-plugins tsa bona, 'me ho lumellana le li-API tsa khale ho tla sala' me ho ka phatlalatsoa hore ha e sebetse ka mokhoa o tloaelehileng. Ho lebelletsoe hore ka tokollo e latelang ea Kubernetes (1.15) li-plugins tsohle tsa cloud provider li tla fallisetsoa, ​​ts'ebetsong e tla fumana boemo ba beta mme e tla kengoa lits'ebetsong tsa K8s ka boiketsetso. Bakeng sa lintlha, bona tlhahiso ea moralo. Ho falla hona ho ile ha boela ha fella ka ho ikhula ho tloha meeling ea molumo e hlalosoang ke bafani ba maru ba khethehileng (AWS, Azure, GCE, Cinder).

Ntle le moo, tšehetso ea lisebelisoa tsa block ka CSI (CSIBlockVolume) fetisetsoa ho mofuta oa beta.

Nodes/Kubelet

Alpha version e hlahisitsoe pheletso e ncha ho Kubelet, e etselitsoeng khutlisetsa metrics ho lisebelisoa tsa bohlokoa. Ka kakaretso, haeba Kubelet e kile ea fumana lipalo-palo mabapi le ts'ebeliso ea setshelo ho tsoa ho cAdvisor, joale data ena e tsoa tikolohong ea nako ea setshelo ka CRI (Container Runtime Interface), empa ho lumellana ha ho sebetsa le liphetolelo tsa khale tsa Docker le hona ho bolokiloe. Pejana, lipalo-palo tse neng li bokelloa Kubelet li ne li romelloa ka REST API, empa joale ke pheletso e fumanehang ho. /metrics/resource/v1alpha1. Leano la nako e telele la bahlahisi ke ke ho fokotsa palo ea metrics e fanoeng ke Kubelet. Ka tsela, metrics tsena ka botsona joale baa letsa eseng "metrics ea mantlha", empa "metrics ea lisebelisoa", 'me e hlalosoa e le "lisebelisoa tsa boemo ba pele, joalo ka cpu, le memori".

Ntho e khahlisang haholo: leha ho na le monyetla o hlakileng oa ts'ebetso ea gRPC ha e bapisoa le linyeoe tse fapaneng tsa ho sebelisa sebopeho sa Prometheus. (sheba sephetho sa e 'ngoe ea li-benchmarks tse ka tlase), bangoli ba ne ba khetha mokhoa oa mongolo oa Prometheus ka lebaka la boetapele bo hlakileng ba tsamaiso ena ea tlhokomelo sechabeng.

"gRPC ha e tsamaellane le lipeipi tse kholo tsa ho beha leihlo. Endpoint e tla thusa feela bakeng sa ho fana ka metrics ho Metrics Server kapa likarolo tsa ho beha leihlo tse hokahanang le eona ka kotloloho. Ts'ebetso ea sebopeho sa mongolo oa Prometheus ha o sebelisa caching ho Metrics Server ho lekana hore re rate Prometheus ho feta gRPC ka lebaka la kamohelo e atileng ea Prometheus sechabeng. Hang ha sebopeho sa OpenMetrics se tsitsa haholoanyane, re tla khona ho atamela ts'ebetso ea gRPC ka sebopeho se thehiloeng ho proto."

Kubernetes 1.14: kakaretso ea lintlafatso tsa mantlha
E 'ngoe ea liteko tsa papiso ea ts'ebetso ea ho sebelisa lifomate tsa gRPC le Prometheus pheletsong e ncha ea Kubelet bakeng sa metrics. Li-graph tse ling le lintlha tse ling li ka fumanoa ho Kep.

Har'a liphetoho tse ling:

  • Hobelet hona joale (ka nako e le 'ngoe) ho leka ho emisa lijana sebakeng se sa tsejoeng pele u qala hape le ho hlakola lits'ebetso.
  • Ho sebelisa PodPresets hona joale ho init setshelo eketsa boitsebiso bo tšoanang le ba setshelo se tloaelehileng.
  • kubelet qala ho sebelisa usageNanoCores ho tsoa ho mofani oa lipalo oa CRI, le bakeng sa li-node le lijana ho Windows eketsoe lipalo-palo tsa marang-rang.
  • Sistimi ea ts'ebetso le tlhaiso-leseling ea meralo e se e tlalehiloe ka lileibole kubernetes.io/os и kubernetes.io/arch Lintho tsa node (tse fetisitsoeng ho tloha beta ho ea GA).
  • Bokhoni ba ho hlakisa sehlopha se itseng sa basebelisi ba sistimi bakeng sa lijana ka har'a pod (RunAsGroup, a hlaha ka hare K8s 1.11) e tsoetseng pele pele ho beta (e lumelloa ke kamehla).
  • du mme o fumane o sebelisitsoe ho cAdvisor, nkeloa sebaka ka Go kenngwa tshebetsong.

CLI

Ka cli-runtime le kubectl eketsa -k folakha bakeng sa ho kopanngoa le Customize (ka tsela, nts'etsopele ea eona e se e etsoa sebakeng sa polokelo e arohaneng), i.e. ho sebetsana le lifaele tse ling tsa YAML ho tsoa ho li-directory tse khethehileng tsa kustomization (bakeng sa lintlha tsa ho li sebelisa, bona Kep):

Kubernetes 1.14: kakaretso ea lintlafatso tsa mantlha
Mohlala oa tšebeliso e bonolo ea faele tlhophiso (ts'ebetso e rarahaneng ho feta ea kustomize e ka khoneha ka hare ho koahela)

Ho phaella moo:

  • E kentsoe sehlopha se secha kubectl create cronjob, eo lebitso la hae le itlhalosang.
  • В kubectl logs joale u ka khona kopanya lifolakha -f (--follow bakeng sa ho phallela likutung) le -l (--selector bakeng sa potso ya label).
  • kubctl rutoa kopitsa lifaele tse khethiloeng ka karete e hlaha.
  • Ho sehlopha kubectl wait eketsa folakha --all ho khetha lisebelisoa tsohle sebakeng sa mabitso sa mofuta o boletsoeng.

Tse ling

Bokhoni bo latelang bo fumane boemo bo tsitsitseng (GA):

Liphetoho tse ling tse hlahisitsoeng ho Kubernetes 1.14:

  • Leano la kamehla la RBAC ha le sa lumella API ho kena discovery и access-review basebelisi ntle le netefatso (ha e netefatsoe).
  • Ts'ehetso ea CoreDNS ea semmuso tiisitsoe Linux feela, kahoo ha u sebelisa kubeadm ho e sebelisa (CoreDNS) ka har'a sehlopha, li-node li tlameha ho sebetsa ho Linux feela (nodeSelectors e sebelisetsoa moeli ona).
  • Tlhophiso ea kamehla ea CoreDNS e se e le teng sebedisa plugin ea pele sebakeng sa moemeli. Hape, ho CoreDNS eketsoe ReadinessProbe, e thibelang ho leka-lekanya mojaro holim'a li-pods tse loketseng (tse seng li loketse ho sebelisoa).
  • Ho kubeadm, ka mekhahlelo init kapa upload-certs, ho ile ha khoneha laela litifikeiti tse hlokahalang ho hokahanya sefofane se secha sa taolo le lekunutu la kubeadm-certs (sebelisa folakha --experimental-upload-certs).
  • Ho hlahile mofuta oa alpha bakeng sa lits'ebetso tsa Windows tšehetso gMSA (Akhaonto ya Tshebeletso e Laolwang ke Sehlopha) - diakhaonto tse ikgethang ho Active Directory tse ka sebediswang le ke dijana.
  • Bakeng sa G.C.E. butsoe mTLS encryption lipakeng tsa etcd le kube-apiserver.
  • Lintlafatso ho software e sebelisitsoeng / e itšetlehileng ka eona: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 tshehetso ho kubeadm, mme mofuta o tlase o tšehetsoeng oa Docker API ke 1.26.

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso