Kubernetes 1.14: he tirohanga whanui mo nga mahi hou

Kubernetes 1.14: he tirohanga whanui mo nga mahi hou

I tenei po Ñ ​​Ð¾Ñ Ñ‚Ð¾Ð¸Ñ‚Ñ Ñ te tukunga ake o Kubernetes - 1.14. E ai ki nga tikanga kua whakawhanakehia mo to maatau blog, kei te korero matou mo nga huringa matua o te putanga hou o tenei hua Open Source whakamiharo.

Ko nga korero e whakamahia ana hei whakarite i tenei rauemi ka tangohia mai i Ko nga teepu aroturuki a Kubernetes, CHANGELOG-1.14 me nga take e pa ana, nga tono toia, Kubernetes Enhancement Proposals (KEP).

Me timata me tetahi kupu whakataki nui mai i te SIG cluster-lifecycle: tautau failover hihiri Ko nga Kubernetes (he tika ake ranei, ko nga tukunga HA e manaaki ana i a koe) inaianei ka taea te hanga te whakamahi i nga whakahau mohio (i roto i te horopaki o nga tautau-kopu kotahi). kubeadm (init и join). Hei poto, mo tenei:

  • Ko nga tiwhikete e whakamahia ana e te roopu ka whakawhitia ki nga mea ngaro;
  • mo te kaha ki te whakamahi i te roopu etcd i roto i te roopu K8s (ara te whakakore i te ti'aturi o waho o mua) etcd-kaiwhakahaere;
  • Tuhia nga tautuhinga e taunakitia ana mo te taurite kawenga o waho e whakarato ana i te whirihoranga whakaraerae i te he (i te wa kei te heke mai ka whakamaheretia kia whakakorea tenei ti'aturi, engari kaore i tenei wa).

Kubernetes 1.14: he tirohanga whanui mo nga mahi hou
Te hoahoanga o te roopu Kubernetes HA i hangaia me te kubeadm

Ka kitea nga korero mo te whakatinanatanga i roto tono hoahoa. I tino tatarihia tenei ahuatanga: ko te putanga alpha i tumanakohia kia hoki mai i roto i te K8s 1.9, engari ka puta mai inaianei.

API

rōpū apply me te korero whanui whakahaere ahanoa korero paahi Tuhinga ka whai mai kubectl i roto i te apiserver. Ko nga kaiwhakawhanake ake ka whakamarama poto i ta raatau whakatau ma te kii penei kubectl apply - he waahanga nui o te mahi me nga whirihoranga i Kubernetes, heoi, "kua ki tonu i nga pepeha me te uaua ki te whakatika," na reira me whakahoki mai tenei mahi ki te tikanga ka whakawhiti ki te waka rererangi. He tauira ngawari me te maamaa o nga raru e noho ana i enei ra:

Kubernetes 1.14: he tirohanga whanui mo nga mahi hou

Ko nga korero mo te whakatinanatanga kei roto KAUPAPA. Ko te reri o naianei he alpha (kua whakamaheretia te whakatairanga ki te beta mo te tukunga Kubernetes e whai ake nei).

Hanga e wātea ana i roto i te putanga alpha faingamālie te whakamahi i te kaupapa OpenAPI v3 mo te hanga me te whakaputa tuhinga OpenAPI mo CustomResources (CR), whakamahia ki te whakamana (taha-tūmau) K8s rauemi tautuhi-kaiwhakamahi (CustomResourceDefinition, CRD). Ko te whakaputa OpenAPI mo CRD ka taea e nga kiritaki (hei tauira. kubectl) mahia te whakamana i to taha (i roto kubectl create и kubectl apply) me te whakaputa tuhinga e ai ki te kaupapa (kubectl explain). Nga korero - in KAUPAPA.

Nga raarangi o mua kei te whakatuwhera inaianei me te haki O_APPEND (engari kaore O_TRUNC) hei karo i te ngaro o nga rakau i etahi ahuatanga me te pai o te tapahi rakau me nga taputapu o waho hei huri.

I roto ano i te horopaki o te Kubernetes API, ka taea te tohu kei roto PodSandbox и PodSandboxStatus tāpirihia mara runtime_handler ki te tuhi korero mo RuntimeClass i roto i te pota (panui atu mo tera i te tuhinga mo Kubernetes 1.12 tuku, i puta mai tenei karaehe hei putanga alpha), me te Whakauru Tukutuku whakatinana te kaha ki te whakatau he aha nga putanga AdmissionReview tautoko ana ratou. Ka mutu, ko nga ture Whakauru Tukutuku inaianei ka taea te whakawhāiti te whānuitanga o te whakamahi ma nga mokowāingoa me nga anga taapu.

Rokiroki

PersistentLocalVolumes, he mana beta mai i te tukunga K8s 1.10, panuitia stable (GA): kua kore tenei keeti ahua i monoa, ka tangohia i te Kubernetes 1.17.

faingamālie te whakamahi i nga taurangi taiao e kiia nei API whakararo (hei tauira, te ingoa pākākano) mo nga ingoa o nga raarangi kua whakauruhia hei subPath, i whakawhanakehia - i te ahua o te mara hou subPathExpr, ka whakamahia inaianei hei whakatau i te ingoa whaiaronga e hiahiatia ana. I puta tuatahi mai te ahuatanga ki Kubernetes 1.11, engari mo te 1.14 ka noho tonu ki te ahuatanga o te ahua alpha.

Pērā i te putanga o Kubernetes o mua, he maha nga huringa nui kua whakauruhia mo te CSI (Atanga Rokiroki Ipu):

CSI

Kua waatea (hei wahanga o te putanga alpha) tautoko te whakarereketanga mo nga pukapuka CSI. Hei whakamahi ka hiahia koe ki te whakahohe i te kuaha ahua e kiia nei ExpandCSIVolumes, me te aroaro o te tautoko mo tenei mahi i roto i te taraiwa CSI motuhake.

Ko tetahi atu waahanga mo te CSI i te putanga alpha - faingamālie tirohia tika (arā me te kore whakamahi i te PV/PVC) ki nga pukapuka CSI i roto i te whakatakotoranga pod. Tenei ka tango i te here mo te whakamahi CSI hei rokiroki raraunga mamao anake, te whakatuwhera i nga tatau ki te ao mo ratou pukapuka ephemeral rohe. Hei whakamahi (tauira mai i nga tuhinga) me whakahohe CSIInlineVolume kuaha ahua.

Kua puta ano te ahunga whakamua i roto i nga "roto" o Kubernetes e pa ana ki te CSI, kaore e tino kitea e nga kaiwhakamahi mutunga (kaiwhakahaere punaha) ... I tenei wa, ka akiakihia nga kaihanga ki te tautoko i nga putanga e rua o ia mono rokiroki: kotahi - "i roto i te ara tawhito", i roto i te K8s codebase (i roto i te -tree), me te tuarua - hei waahanga o te CSI hou (Panui atu mo tenei, hei tauira, i roto i konei). Na tenei ka puta nga raruraru marama e tika ana kia whakatikahia i te mea ka pumau tonu a CSI. Kaore e taea te whakakore noa i te API o roto (i roto i te rakau) monomai na te mea kaupapa here Kubernetes e tika ana.

Ko enei mea katoa i tae ki te putanga alpha tukanga hekenga waehere mono roto, ka whakatinanahia i roto i te rakau, i roto i nga taputapu CSI, na te mea ka iti ake nga awangawanga o nga kaiwhakawhanake ki te tautoko i tetahi putanga o a raatau monomai, ka noho tonu te hototahi ki nga API tawhito ka taea te kii kua tawhitotia i roto i te ahuatanga o mua. E matapaetia ana ma te tukunga o muri mai o Kubernetes (1.15) ka heke katoa nga taputapu kaiwhakarato kapua, ka whakawhiwhia te whakatinanatanga ki te mana beta ka whakahohehia i roto i nga whakaurunga K8s ma te taunoa. Mo nga taipitopito, tirohia tono hoahoa. I hua mai ano tenei heke whakakahore mai i nga rohe rōrahi kua tautuhia e nga kaiwhakarato kapua motuhake (AWS, Azure, GCE, Cinder).

I tua atu, tautoko mo nga taputapu poraka me CSI (CSIBlockVolume) whakawhitia ki te putanga beta.

Nodes/Kubelet

Putanga Arepa kua whakaatuhia pito mutunga hou i Kubelet, i hangaia mo whakahoki inenga mo nga rauemi matua. I te nuinga o te korero, mena i whiwhi a Kubelet i nga tatauranga mo te whakamahi ipu mai i cAdvisor, inaianei ka puta mai enei raraunga mai i te waahi whakahaere ipu ma te CRI (Atanga Whakahaere Waea), engari ka mau tonu te hototahi mo te mahi me nga putanga tawhito o Docker. I mua, ko nga tatauranga i kohia i Kubelet i tukuna ma te REST API, engari inaianei he waahi mutunga kei te /metrics/resource/v1alpha1. Rautaki mo te wa roa a nga kaihanga ngā he whakaiti i te huinga inenga i whakaratohia e Kubelet. Ma te ara, ko enei inenga ake inaianei ka karanga ratou ehara i te "inenga matua", engari "inenga rauemi", ka kiia ko "nga rauemi akomanga tuatahi, penei i te cpu, me te mahara".

He ahua tino pai: ahakoa te maamaa o te painga o te waahi mutunga o te gRPC ki te whakataurite ki nga momo keehi o te whakamahi i te whakatakotoranga Prometheus (tirohia te hua o tetahi o nga tohu i raro nei), i pai ake nga kaituhi ki te whakatakotoranga tuhinga a Prometheus na te maarama o te kaiarahi o tenei punaha aroturuki i roto i te hapori.

"Kaore te gRPC i te hototahi ki nga paipa aroturuki nui. Ka whai hua anake te Waahi Whakamutunga mo te tuku inenga ki te Tūmau Metrics, ki te aro turuki ranei i nga waahanga e hono tika ana ki a ia. Ko te mahinga whakatakotoranga kuputuhi Prometheus i te wa e whakamahi ana i te keteroki i roto i te Tūmau Metrics pai rawa kia pai ake taatau ki a Prometheus i runga i te gRPC i te mea kua kaha te tango a Prometheus i roto i te hapori. Kia pai ake te whakatakotoranga OpenMetrics, ka taea e tatou te whakatata atu ki nga mahi a te gRPC me te whakatakotoranga i runga i te tauira.

Kubernetes 1.14: he tirohanga whanui mo nga mahi hou
Ko tetahi o nga whakamatautau mahi whakatairite mo te whakamahi i nga whakatakotoranga gRPC me Prometheus i te pito mutunga Kubelet hou mo nga inenga. Ka kitea etahi atu kauwhata me etahi atu korero i roto KAUPAPA.

I roto i etahi atu huringa:

  • Kubelet inaianei (kotahi wa) e ngana ana ki te mutu nga ipu kei roto i te ahua kaore e mohiotia i mua i te tiimata me te whakakore i nga mahi.
  • A, no te whakamahi PodPresets inaianei ki te ipu init kei te tapirihia he rite tonu nga korero mo te ipu auau.
  • kubelet i timata te whakamahi usageNanoCores mai i te kaiwhakarato tatauranga CRI, mo nga pona me nga ipu kei runga Windows tāpirihia tatauranga whatunga.
  • Ko nga korero mo te punaha whakahaere me te hoahoanga kua tuhia inaianei ki nga tapanga kubernetes.io/os и kubernetes.io/arch Nga mea node (i whakawhitia mai i te beta ki te GA).
  • Te kaha ki te tautuhi i tetahi roopu kaiwhakamahi punaha motuhake mo nga ipu kei roto i te pona (RunAsGroup, i puta mai i roto K8s 1.11) matatau i mua i te beta (whakahohea taunoa).
  • du ka kitea whakamahia i roto i te cAdvisor, kua whakakapia i runga i te whakatinanatanga Haere.

CLI

I roto i te cli-runtime me te kubectl kua taapirihia -k haki mo te whakauru ki whakarite (i te ara, ko tana whakawhanaketanga kei te whakahaerehia i roto i tetahi putunga motuhake), i.e. ki te tukatuka i etahi atu konae YAML mai i nga raarangi whakaurunga motuhake (mo nga korero mo te whakamahi, tirohia KAUPAPA):

Kubernetes 1.14: he tirohanga whanui mo nga mahi hou
He tauira o te whakamahi kōnae ngawari whakaritenga (Ka taea he tono uaua ake o kustomize i roto Tuhinga)

I tua atu:

  • Kua tapirihia kapa hou kubectl create cronjob, ko tona ingoa te korero mo ia ano.
  • В kubectl logs inaianei ka taea e koe ki te whakakotahi haki -f (--follow mo nga raarangi rerema) me -l (--selector mo te patai tapanga).
  • kubectl whakaakona kape i nga konae kua tohua ma te kaari mohoao.
  • Ki te kapa kubectl wait kua taapirihia haki --all ki te whiriwhiri i nga rauemi katoa i te mokowāingoa o te momo rauemi kua tohua.

Ētahi atu

Ko nga kaha e whai ake nei kua whiwhi mana (GA):

Ko etahi atu huringa i whakauruhia ki Kubernetes 1.14:

  • Ko te kaupapa here taunoa RBAC kua kore e taea te uru ki te API discovery и access-review nga kaiwhakamahi kaore he motuhēhēnga (kaore i whakamanahia).
  • Tautoko CoreDNS mana whakarite Linux anake, no reira ka whakamahi i te kubeadm ki te toha (CoreDNS) ki roto i te kapoi, me rere nga pona ki runga Linux anake (ka whakamahia nga nodeSelectors mo tenei here).
  • Ko te whirihoranga CoreDNS taunoa inaianei whakamahinga mono whakamua hei takawaenga. Ano, i roto i te CoreDNS tāpirihia ReadinessProbe, e aukati ana i te taurite o te kawenga i runga i nga poti e tika ana (kaore i rite mo te ratonga).
  • I te kubeadm, i runga i nga waahanga init ranei upload-certs, ka taea utaina nga tiwhikete e hiahiatia ana hei hono i te rererangi mana hou ki te kubeadm-certs ngaro (whakamahia te haki --experimental-upload-certs).
  • Kua puta he putanga alpha mo nga whakaurunga Windows tautoko gMSA (Group Managed Service Account) - nga kaute motuhake kei Active Directory ka taea hoki te whakamahi e nga ipu.
  • Mo G.C.E. kua whakahohehia te whakamunatanga mTLS i waenga i te etcd me te kube-apiserver.
  • Ko nga whakahoutanga i roto i nga rorohiko e whakamahia ana: Haere ki te 1.12.1, CSI 1.1, CoreDNS 1.3.1, tautoko Docker 18.09 i te kubeadm, a ko te waahanga iti rawa o te tautoko Docker API inaianei ko 1.26.

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero