Kubernetes 1.17: he tirohanga whanui mo nga mahi hou

Inanahi, Tihema 9, i tupu tukunga muri o Kubernetes - 1.17. E ai ki nga tikanga kua whakawhanakehia mo to maatau blog, ka korero matou mo nga huringa tino nui o te putanga hou.

Kubernetes 1.17: he tirohanga whanui mo nga mahi hou

Ko nga korero e whakamahia ana hei whakarite i tenei rauemi i tangohia mai i te panui whaimana, Ko nga teepu aroturuki a Kubernetes, CHANGELOG-1.17 me nga take e pa ana, nga tono toia, me nga Kaupapa Whakanuia Kubernetes (KEP). Na, he aha te mea hou?..

Topology-mohio ararere

Kua roa te hapori Kubernetes e tatari ana mo tenei ahuatanga - Topology-mohio ratonga ararere. Mena KAUPAPA ka puta mai i Oketopa 2018, me te mana whakarei ake — 2 tau ki muri, ko nga take o mua (penei reira) - me etahi tau kua pakeke ake...

Ko te whakaaro nui ko te whakarato i te kaha ki te whakatinana i nga ararere "rohe" mo nga ratonga e noho ana i Kubernetes. Ko te tikanga "rohe" i roto i tenei keehi ko "te taumata o te topological" (taumata topology), tera pea:

  • node rite mo nga ratonga,
  • ko taua whata tūmau,
  • ko taua rohe ano
  • ko taua kaiwhakarato kapua,
  • ...

He tauira mo te whakamahi i tenei waahanga:

  • penapena i runga i nga waka i roto i nga whakaurunga kapua me nga waahi waatea maha (maha-AZ) - tirohia. whakaahua hou te whakamahi i te tauira o nga waka mai i te rohe kotahi, engari he rereke nga AZ i AWS;
  • he iti ake te roanga mahi/he pai ake te whakaputa;
  • he ratonga maramara e whai korero paetata ana mo te node i ia maramara;
  • te whakanohonga o te fluentd (whakariterite ranei) ki runga i te node kotahi me nga tono kua kohia nga raarangi;
  • ...

Ko taua ararere, e "mohio ana" mo te topology, ka kiia hoki ko te hononga whatunga - ma te whakataurite me hononga kōpuku, whakawhanaungatanga pd/anti-affinity i puta ranei kare i roa i mua Topology-Aware Volume Scheduling (me Whakaritenga Rōrahi). Te taumata whakatinanatanga o naianei ServiceTopology i Kubernetes - te putanga alpha.

Mo nga korero mo te mahi o te waahanga me te pehea e taea ai e koe te whakamahi, panui tenei tuhinga mai i tetahi o nga kaituhi.

IPv4/IPv6 tautoko tāpae rua

Te ahunga whakamua nui whakaritea i tetahi atu waahanga whatunga: tautoko i te wa kotahi mo nga taapu IP e rua, i whakaurua tuatahi ki roto K8s 1.16. Ina koa, ko te tukunga hou i kawe mai nga huringa e whai ake nei:

  • i te kube-takawaenga whakatinana ka taea te mahi tukutahi i roto i nga tikanga e rua (IPv4 me IPv6);
  • в Pod.Status.PodIPs puta mai tautoko mo te API whakararo (i te wa ano i roto i /etc/hosts Inaianei kei te hiahia te kaihautu ki te taapiri i tetahi wahitau IPv6);
  • tautoko tāpae rua KIND (Kubernetes IN Docker) me kubeadm;
  • nga whakamatautau e2e kua whakahoutia.

Kubernetes 1.17: he tirohanga whanui mo nga mahi hou
Whakaahua te whakamahi i te puranga rua IPV4/IPv6 i KIND

Te ahunga whakamua i runga i te CSI

Whakapuakihia te pumau tautoko topology mo te rokiroki-a-CSI, i whakauruhia tuatahi ki roto K8s 1.12.

He kaupapa mo te hekenga o nga taapiri rōrahi ki CSI - Hekenga CSI - kua tae ki te putanga beta. He mea nui tenei ahuatanga hei whakamaori i nga taputapu rokiroki o naianei (i roto i te rakau) ki te atanga hou (CSI, waho-o-rakau) e kore e kitea e nga kaiwhakamahi mutunga o Kubernetes. Ko nga kaiwhakahaere o te roopu ka hiahia noa kia taea te Migration CSI, ka mutu ka "mahi noa" nga rauemi o mua me nga kawenga mahi...

I tenei wa, kua rite te hekenga mo nga taraiwa AWS EBS i te putanga beta (kubernetes.io/aws-ebs) me GCE PD (kubernetes.io/gce-pd). Ko nga matapae mo etahi atu waahi rokiroki e whai ake nei:

Kubernetes 1.17: he tirohanga whanui mo nga mahi hou

I korero matou mo te pehea o te tautoko rokiroki "tuku iho" i roto i nga K8 i tae mai ki a CSI tenei tuhinga. A ko te whakawhiti o te hekenga CSI ki te mana beta kua whakatapua ki tānga motuhake i runga i te rangitaki kaupapa.

I tua atu, ko tetahi atu mahinga nui i roto i te horopaki o te CSI, i puta mai (te whakatinanatanga alpha) i roto i te K1.17s 8, i tae ki te mana beta (arā, kua whakahohea ma te taunoa) i roto i te tukunga Kubernetes 1.12 - te hanga pikitia me te whakaora mai i a ratou. I roto i nga huringa ki te Kubernetes Volume Snapshot i te huarahi ki te tuku beta:

  • ka wehea te CSI-waho-snapshotter sidecar kia rua nga kaiwhakahaere,
  • kua tapirihia te mea ngaro mo te whakakore (Muku ngaro) hei whakamohiotanga ki nga mea o roto o te hopukanga rōrahi,
  • he whakaotinga hou (whakaoti) kia kore e mukua te ahanoa API whakaahua mena he hononga e toe ana.

I te wa o te tukunga 1.17, ka tautokohia te ahuatanga e toru nga taraiwa CSI: GCE Persistent Disk CSI Driver, Portworx CSI Driver me NetApp Trident CSI Driver. Ka kitea etahi atu korero mo tona whakatinanatanga me tana whakamahinga i roto tenei whakaputanga i runga i te rangitaki.

Tapanga Kaiwhakarato Kapua

Tapanga e aunoa kua tohua ki nga pona me nga pukapuka i hangaia i runga i te kaiwhakarato kapua i whakamahia, kua waatea ki Kubernetes hei putanga beta mo te wa roa - mai i te tukunga o K8s 1.2 (Aperira 2016!). I runga i to raatau whakamahinga mo te wa roa, nga kaihanga whakatau, kua tae ki te wa ki te kii i te ahua pumau (GA).

Na reira, i whakaingoatia katoatia (ma te topology):

  • beta.kubernetes.io/instance-typenode.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zonetopology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/regiontopology.kubernetes.io/region

... engari kei te waatea tonu i raro i o raatau ingoa tawhito (mo te hototahi whakamuri). Heoi, ka tūtohu nga kaiwhakahaere katoa ki te huri ki nga tapanga o naianei. Tuhinga e Pa ana Kua whakahoutia nga K8s.

Putanga hanganga o kubeadm

Ka whakaatuhia ki te putanga alpha mo te wa tuatahi putanga hanganga mo te whaipainga kubeadm. Nga whakatakotoranga tautoko: JSON, YAML, tauira Haere.

Te hihiri mo te whakatinana i tenei ahuatanga (e ai ki KAUPAPA) ko:

Ahakoa ka taea te tuku a-ringa i nga Kubernetes, ko te paerewa de facto (mehemea ehara i te de jure) mo tenei mahi ko te whakamahi kubeadm. Ko nga taputapu whakahaere punaha rongonui penei i a Terraform ka whakawhirinaki ki te kubeadm mo te tuku Kubernetes. Ko nga whakapainga kua whakamaheretia ki te Cluster API kei roto he kete tito mo te Kubernetes bootstrapping me te kubeadm me te kapua-init.

Ki te kore he putanga hanganga, ahakoa nga huringa tino harakore i te titiro tuatahi ka taea te pakaru i te Terraform, Cluster API me etahi atu rorohiko e whakamahi ana i nga hua o te kubeadm.

Kei roto i a maatau mahere te tautoko (i te ahua o te whakaputanga hanganga) mo nga whakahau kubeadm e whai ake nei:

  • alpha certs
  • config images list
  • init
  • token create
  • token list
  • upgrade plan
  • version

Whakaahua o te whakautu JSON ki tetahi whakahau kubeadm init -o json:

{
  "node0": "192.168.20.51:443",
  "caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
  "token": {
    "id":          "5ndzuu.ngie1sxkgielfpb1",
    "ttl":         "23h",
    "expires":     "2019-05-08T18:58:07Z",
    "usages":      [
      "authentication",
      "signing"
    ],
    "description": "The default bootstrap token generated by 'kubeadm init'.",
    "extraGroups": [
      "system:bootstrappers:kubeadm:default-node-token"
    ]
  },
  "raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}

Te whakapumautanga o etahi atu mea hou

I te nuinga, ko te tukunga o Kubernetes 1.17 i puta i raro i te pepeha "Whakahaumau" I awhinahia tenei na te maha o nga ahuatanga kei roto (ko to raatau nama ko 14) riro te mana GA. I roto ia ratou:

Othertahi atu whakarerekētanga

Ko te rarangi katoa o nga mea hou i roto i te Kubernetes 1.17, o te akoranga, ehara i te mea iti ki era kua whakarārangihia i runga ake nei. Anei etahi atu (a mo te rarangi tino katoa, tirohia PANUI):

  • Ko te waahanga i whakaatuhia i te tukunga whakamutunga kua tae ki te putanga beta RunAsUserName mo nga matapihi;
  • huringa rite i pa EndpointSlice API (mai i K8s 1.16 ano), engari mo tenei wa ko tenei otinga hei whakapai ake i te mahinga/whakanui o te Endpoint API kaore i te whakahohea ma te taunoa;
  • He mea tino nui nga putunga mo te mahi tautau ka taea te hanga ehara i te waahi ingoa anake kube-system (mo nga taipitopito, tirohia te tuhinga mo Whakaitihia te kai o te akomanga matua);
  • kōwhiringa hōu mō kubelet - --reserved-cpus — ka taea e koe te tautuhi i te rarangi o nga PTM kua rahuitia mo te punaha;
  • ki kubectl logs i tukuna haki hou --prefix, te taapiri i te ingoa o te peera me te ipu puna ki ia rarangi o te poro;
  • в label.Selector kua taapirihia RequiresExactMatch;
  • nga ipu katoa i kube-dns kei te rere inaianei me te iti o nga painga;
  • hyperkube kua wehea ki tetahi putunga motuhake a GitHub, ka kore e whakaurua ki roto i nga tukunga Kubernetes;
  • nui kua pai ake te mahi kube-takawaenga mo nga tauranga kore-UDP.

Huritanga whakawhirinaki:

  • Ko te putanga CoreDNS kei roto i te kubeadm ko 1.6.5;
  • crictl putanga whakahoutia ki v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • Ko te putanga hou o Docker kua whakamatauria kua whakahoutia ki te 19.03;
  • Ko te putanga iti rawa e hiahiatia ana hei hanga Kubernetes 1.17 he 1.13.4.

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero