
Heddiw, dydd Mercher, datganiad nesaf Kubernetes - 1.16. Yn ôl y traddodiad sydd wedi datblygu ar gyfer ein blog, dyma'r degfed pen-blwydd yr ydym yn sôn am y newidiadau mwyaf arwyddocaol yn y fersiwn newydd.
Daw'r wybodaeth a ddefnyddiwyd i baratoi'r deunydd hwn o , a materion cysylltiedig, ceisiadau tynnu, a Chynigion Gwella Kubernetes (KEP). Felly, gadewch i ni fynd!..
Nodau
Cyflwynir nifer wirioneddol fawr o arloesiadau nodedig (mewn statws fersiwn alffa) ar ochr nodau clwstwr K8s (Kubelet).
Yn gyntaf, yr hyn a elwir «» (Cynwysyddion Byrhoedlog), wedi'i gynllunio i symleiddio prosesau dadfygio mewn codennau. Mae'r mecanwaith newydd yn caniatáu ichi lansio cynwysyddion arbennig sy'n cychwyn yng ngofod enwau codennau presennol ac yn byw am gyfnod byr. Eu pwrpas yw rhyngweithio â chodau a chynwysyddion eraill er mwyn datrys unrhyw broblemau a dadfygio. Mae gorchymyn newydd wedi'i weithredu ar gyfer y nodwedd hon kubectl debug, yn debyg yn ei hanfod i kubectl exec: dim ond yn lle rhedeg proses mewn cynhwysydd (fel yn exec) mae'n lansio cynhwysydd mewn pod. Er enghraifft, bydd y gorchymyn hwn yn cysylltu cynhwysydd newydd i god:
kubectl debug -c debug-shell --image=debian target-pod -- bashCeir manylion am gynwysyddion byrhoedlog (ac enghreifftiau o’u defnydd) yn . Mae'r gweithrediad presennol (yn K8s 1.16) yn fersiwn alffa, ac ymhlith y meini prawf ar gyfer ei drosglwyddo i fersiwn beta mae “profi'r API Cynwysyddion Effemeral am o leiaf 2 ryddhad o [Kubernetes].”
NB: Yn ei hanfod a hyd yn oed ei enw, mae'r nodwedd yn debyg i ategyn sy'n bodoli eisoes amdanom ni . Disgwylir, gyda dyfodiad cynwysyddion byrhoedlog, y bydd datblygiad ategyn allanol ar wahân yn dod i ben.
Arloesedd arall - - wedi'i gynllunio i ddarparu mecanwaith ar gyfer cyfrifo costau gorbenion codennau, a all amrywio'n fawr yn dibynnu ar yr amser rhedeg a ddefnyddir. Fel enghraifft, yr awduron arwain at Kata Containers, sy'n gofyn am redeg y cnewyllyn gwadd, asiant kata, system init, ac ati. Pan fydd gorbenion mor fawr, ni ellir ei anwybyddu, sy'n golygu bod angen ffordd i'w gymryd i ystyriaeth ar gyfer cwotâu pellach, cynllunio, ac ati. I'w weithredu yn PodSpec maes wedi'i ychwanegu Overhead *ResourceList (yn cymharu â data yn RuntimeClass, os defnyddir un).
Arloesiad nodedig arall yw rheolwr topoleg nodau (Rheolwr Topoleg Node), wedi'i gynllunio i uno'r dull o fireinio'r dyraniad o adnoddau caledwedd ar gyfer gwahanol gydrannau yn Kubernetes. Mae'r fenter hon yn cael ei gyrru gan yr angen cynyddol am systemau modern amrywiol (o faes telathrebu, dysgu peiriannau, gwasanaethau ariannol, ac ati) ar gyfer cyfrifiadura cyfochrog perfformiad uchel a lleihau oedi wrth gyflawni gweithrediadau, y maent yn defnyddio CPU uwch ar eu cyfer a galluoedd cyflymu caledwedd. Hyd yn hyn mae optimeiddiadau o'r fath yn Kubernetes wedi'u cyflawni diolch i gydrannau gwahanol (rheolwr CPU, rheolwr Dyfais, CNI), a nawr byddant yn cael eu hychwanegu un rhyngwyneb mewnol sy'n uno'r dull gweithredu ac yn symleiddio cysylltiad topoleg newydd tebyg - fel y'i gelwir- ymwybodol - cydrannau ar ochr Kubelet. Manylion - yn .

Diagram Cydran Rheolwr Topoleg
Nodwedd nesaf - gwirio cynwysyddion wrth iddynt redeg (). Fel y gwyddoch, ar gyfer cynwysyddion sy'n cymryd amser hir i'w lansio, mae'n anodd cael statws cyfredol: maent naill ai'n cael eu “lladd” cyn iddynt ddechrau gweithredu mewn gwirionedd, neu maent yn y diwedd mewn sefyllfa cloi am amser hir. Gwiriad newydd (wedi'i alluogi trwy giât nodwedd o'r enw StartupProbeEnabled) canslo - neu yn hytrach, gohirio - effaith unrhyw wiriadau eraill hyd nes y bydd y pod wedi gorffen rhedeg. Am y rheswm hwn, galwyd y nodwedd yn wreiddiol . Ar gyfer codennau sy'n cymryd amser hir i ddechrau, gallwch chi bleidleisio'r wladwriaeth mewn cyfnodau amser cymharol fyr.
Yn ogystal, mae gwelliant ar gyfer RuntimeClass ar gael ar unwaith mewn statws beta, gan ychwanegu cefnogaeth ar gyfer “clystyrau heterogenaidd”. C Nawr nid yw'n angenrheidiol o gwbl i bob nod gael cefnogaeth ar gyfer pob RuntimeClass: ar gyfer codennau gallwch ddewis RuntimeClass heb feddwl am dopoleg y clwstwr. Yn flaenorol, er mwyn cyflawni hyn - fel bod codennau'n dod i ben ar nodau gyda chefnogaeth i bopeth sydd ei angen arnynt - roedd angen neilltuo rheolau priodol i NodeSelector a goddefiannau. YN Mae'n sôn am enghreifftiau o ddefnydd ac, wrth gwrs, manylion gweithredu.
Rhwydwaith
Dwy nodwedd rwydweithio arwyddocaol a ymddangosodd am y tro cyntaf (mewn fersiwn alffa) yn Kubernetes 1.16 yw:
- pentwr rhwydwaith deuol - IPv4/IPv6 - a'i “ddealltwriaeth” gyfatebol ar lefel codennau, nodau, gwasanaethau. Mae'n cynnwys rhyngweithredu IPv4-i-IPv4 ac IPv6-i-IPv6 rhwng codennau, o godennau i wasanaethau allanol, gweithrediadau cyfeirio (o fewn y Bridge CNI, PTP CNI ac ategion IPAM Host-Local), yn ogystal â gwrthdroi Yn gydnaws â chlystyrau Kubernetes yn rhedeg IPv4 neu IPv6 yn unig. Mae manylion gweithredu i mewn .
Enghraifft o arddangos cyfeiriadau IP o ddau fath (IPv4 ac IPv6) yn y rhestr codennau:
kube-master# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE nginx-controller 1/1 Running 0 20m fd00:db8:1::2,192.168.1.3 kube-minion-1 kube-master# - API newydd ar gyfer Endpoint - . Mae'n datrys materion perfformiad / graddadwyedd yr API Endpoint presennol sy'n effeithio ar wahanol gydrannau yn yr awyren reoli (gweinyddwr, ac ati, rheolydd pwyntiau terfyn, kube-proxy). Bydd yr API newydd yn cael ei ychwanegu at y grŵp Discovery API a bydd yn gallu gwasanaethu degau o filoedd o olbwyntiau ar bob gwasanaeth mewn clwstwr sy'n cynnwys miloedd o nodau. I wneud hyn, mae pob Gwasanaeth yn cael ei fapio i N gwrthrych
EndpointSlice, ac nid oes gan bob un ohonynt yn ddiofyn fwy na 100 pwynt terfyn (mae'r gwerth yn ffurfweddadwy). Bydd yr API EndpointSlice hefyd yn darparu cyfleoedd ar gyfer ei ddatblygiad yn y dyfodol: cefnogaeth ar gyfer cyfeiriadau IP lluosog ar gyfer pob pod, cyflyrau newydd ar gyfer pwyntiau terfyn (nid yn unigReadyиNotReady), is-osod deinamig ar gyfer pwyntiau terfyn.
Mae'r un a gyflwynwyd yn y datganiad diwethaf wedi cyrraedd y fersiwn beta enwi service.kubernetes.io/load-balancer-cleanup ac ynghlwm wrth bob gwasanaeth gyda math LoadBalancer. Ar adeg dileu gwasanaeth o'r fath, mae'n atal yr adnodd rhag cael ei ddileu hyd nes y cwblheir “glanhau” yr holl adnoddau cydbwysedd perthnasol.
Peiriannau API
Mae'r “garreg filltir sefydlogi” go iawn yn ardal gweinydd Kubernetes API a rhyngweithio ag ef. Digwyddodd hyn yn bennaf diolch i trosglwyddo i statws sefydlog y rhai nad oes angen cyflwyniad arbennig arnynt (CRD), sydd wedi cael statws beta ers dyddiau pell Kubernetes 1.7 (a dyma fis Mehefin 2017!). Daeth yr un sefydlogi i'r nodweddion cysylltiedig:
- gyda
/statusи/scalear gyfer CustomResources; - fersiynau ar gyfer CRD, yn seiliedig ar we bachyn allanol;
- (yn K8s 1.15) gwerthoedd diofyn (diofyn) a thynnu maes yn awtomatig (tocio) ar gyfer CustomResources;
- defnyddio sgema OpenAPI v3 i greu a chyhoeddi dogfennaeth OpenAPI a ddefnyddir i ddilysu adnoddau CRD ar ochr y gweinydd.
Mecanwaith arall sydd wedi dod yn gyfarwydd i weinyddwyr Kubernetes ers tro: - hefyd wedi aros mewn statws beta am amser hir (ers K8s 1.9) ac mae bellach wedi'i ddatgan yn sefydlog.
Mae dwy nodwedd arall wedi cyrraedd beta: и .
A'r unig arloesi arwyddocaol yn y fersiwn alffa oedd o SelfLink — URI arbennig sy'n cynrychioli'r gwrthrych penodedig ac sy'n rhan ohono ObjectMeta и ListMeta (h.y. rhan o unrhyw wrthrych yn Kubernetes). Pam maen nhw'n cefnu arno? Cymhelliant mewn ffordd syml fel absenoldeb rhesymau gwirioneddol (llethol) i'r maes hwn fodoli o hyd. Rhesymau mwy ffurfiol yw optimeiddio perfformiad (trwy ddileu maes diangen) a symleiddio gwaith yr apiserver generig, sy'n cael ei orfodi i drin maes o'r fath mewn ffordd arbennig (dyma'r unig faes sydd wedi'i osod yn union cyn y gwrthrych yn cael ei gyfresoli). Darfodiad gwirioneddol (o fewn beta) SelfLink yn digwydd erbyn fersiwn Kubernetes 1.20, a'r rownd derfynol - 1.21.
Storio data
Gwelir y prif waith yn y maes storio, fel mewn datganiadau blaenorol, yn yr ardal . Y prif newidiadau yma oedd:
- am y tro cyntaf (mewn fersiwn alffa) cefnogaeth ar gyfer ategion CSI ar gyfer nodau gweithwyr gyda Windows: bydd y ffordd bresennol o weithio gyda storio hefyd yn disodli ategion mewn-coed yng nghraidd Kubernetes ac ategion FlexVolume gan Microsoft yn seiliedig ar Powershell;

Diagram gweithredu o ategion CSI yn Kubernetes ar gyfer Windows - cyfle , a gyflwynwyd yn ôl yn K8s 1.12, wedi tyfu i fersiwn beta;
- Cyflawnwyd "hyrwyddiad" tebyg (o alffa i beta) trwy'r gallu i ddefnyddio CSI i greu cyfrolau byrhoedlog lleol ().
Wedi'i gyflwyno yn y fersiwn flaenorol o Kubernetes (gan ddefnyddio PVC presennol fel DataSource i greu PVC newydd) hefyd bellach wedi derbyn statws beta.
Trefnydd
Dau newid nodedig i amserlennu (y ddau yn alpha):
- - cyfle defnyddio codennau yn lle unedau cymhwyso rhesymegol ar gyfer “dosbarthiad teg” llwythi (fel Deployment a ReplicaSet) ac addasu'r dosbarthiad hwn (fel gofyniad caled neu fel cyflwr meddal, h.y. blaenoriaeth). Bydd y nodwedd yn ehangu galluoedd dosbarthu presennol codennau wedi'u cynllunio, sy'n gyfyngedig ar hyn o bryd gan opsiynau
PodAffinityиPodAntiAffinity, gan roi rheolaeth fanylach i weinyddwyr yn y mater hwn, sy'n golygu gwell argaeledd uchel a defnydd gorau o adnoddau. Manylion - yn . - Defnyddio Polisi BestFit в RequestedToCapcityRatio Swyddogaeth Blaenoriaeth yn ystod cynllunio codennau, a fydd yn caniatáu gwneud cais (“pacio mewn cynwysyddion”) ar gyfer adnoddau sylfaenol (prosesydd, cof) a rhai estynedig (fel GPU). Am ragor o fanylion, gw .

Podiau amserlennu: cyn defnyddio'r polisi ffit orau (yn uniongyrchol trwy'r rhaglennydd rhagosodedig) a chyda'i ddefnydd (trwy estynnwr amserlen)
Yn ogystal, y gallu i greu eich ategion amserlennu eich hun y tu allan i brif goeden ddatblygu Kubernetes (allan o'r goeden).
Newidiadau eraill
Hefyd yn y datganiad Kubernetes 1.16 gallwch chi nodi menter ar gyfer metrigau sydd ar gael mewn trefn lawn, neu yn fwy manwl, yn unol â i K8s offeryniaeth. Maent yn dibynnu i raddau helaeth ar y cyfatebol . Cododd anghysondebau am wahanol resymau (er enghraifft, crëwyd rhai metrigau yn syml cyn i’r cyfarwyddiadau presennol ymddangos), a phenderfynodd y datblygwyr ei bod yn bryd dod â phopeth i un safon, “yn unol â gweddill ecosystem Prometheus.” Mae gweithrediad presennol y fenter hon mewn statws alffa, a fydd yn cael ei hyrwyddo'n raddol mewn fersiynau dilynol o Kubernetes i beta (1.17) a sefydlog (1.18).
Yn ogystal, gellir nodi'r newidiadau canlynol:
- Datblygu cefnogaeth Windows с Cyfleustodau Kubeadm ar gyfer yr OS hwn (fersiwn alffa),
RunAsUserNamegyfer Windows- cynwysyddion (fersiwn alffa), Cefnogaeth Cyfrif Gwasanaeth a Reolir gan Grŵp (gMSA) hyd at fersiwn beta, gosod / atodi ar gyfer cyfrolau vSphere. - mecanwaith cywasgu data mewn ymatebion API. Yn flaenorol, defnyddiwyd hidlydd HTTP at y dibenion hyn, a osododd nifer o gyfyngiadau a oedd yn ei atal rhag cael ei alluogi yn ddiofyn. Mae "cywasgu cais tryloyw" bellach yn gweithio: cleientiaid yn anfon
Accept-Encoding: gzipyn y pennawd, maent yn derbyn ymateb cywasgedig GZIP os yw ei faint yn fwy na 128 KB. Mae cleientiaid Ewch yn cefnogi cywasgu yn awtomatig (anfon y pennawd gofynnol), felly byddant yn sylwi ar ostyngiad mewn traffig ar unwaith. (Efallai y bydd angen mân addasiadau ar gyfer ieithoedd eraill.) - graddio HPA o/i godennau sero yn seiliedig ar fetrigau allanol. Os ydych chi'n graddio'n seiliedig ar wrthrychau/metrigau allanol, yna pan fydd llwythi gwaith yn segur gallwch chi raddio i 0 replicas yn awtomatig i arbed adnoddau. Dylai'r nodwedd hon fod yn arbennig o ddefnyddiol mewn achosion lle mae gweithwyr yn gofyn am adnoddau GPU, ac mae nifer y gwahanol fathau o weithwyr segur yn fwy na nifer y GPUs sydd ar gael.
- Cleient newydd - — ar gyfer mynediad “cyffredinol” i wrthrychau. Fe'i cynlluniwyd i adalw metadata yn hawdd (h.y. is-adran
metadata) o adnoddau clwstwr a pherfformio gweithrediadau casglu sbwriel a chwota gyda nhw. - Adeiladu Kubernetes heb etifeddiaeth (“built-in” yn y goeden) darparwyr cwmwl (fersiwn alffa).
- I'r cyfleustodau kubeadm gallu arbrofol (fersiwn alffa) i gymhwyso clytiau addasu yn ystod gweithrediadau
init,joinиupgrade. Dysgwch fwy am sut i ddefnyddio'r faner--experimental-kustomize, gweler yn . - Terfynbwynt newydd ar gyfer gweinydd gwenyn - , - yn eich galluogi i allforio gwybodaeth am ei barodrwydd. Mae gan y gweinydd API hefyd faner bellach
--maximum-startup-sequence-duration, sy'n eich galluogi i reoleiddio ei ailgychwyn. - Dau nodweddion ar gyfer Azure datganedig sefydlog: support (Parthau Argaeledd) a (RG). Yn ogystal, mae Azure wedi ychwanegu:
- AAD ac ADFS;
-
service.beta.kubernetes.io/azure-pip-namei nodi IP cyhoeddus y balans llwyth; - настройки
LoadBalancerNameиLoadBalancerResourceGroup.
- Mae gan AWS bellach ar gyfer EBS yn Windows и Galwadau API EC2
DescribeInstances. - Mae Kubeadm bellach yn annibynnol Cyfluniad CoreDNS wrth uwchraddio'r fersiwn CoreDNS.
- Deuaidd etcd yn y ddelwedd Docker cyfatebol byd-gweithredadwy, sy'n eich galluogi i redeg y ddelwedd hon heb yr angen am hawliau gwraidd. Hefyd, delwedd mudo ac ati cefnogaeth fersiwn etcd2.
- В newid i ddefnyddio distroless fel y ddelwedd sylfaenol, perfformiad gwell, ychwanegu darparwyr cwmwl newydd (DigitalOcean, Magnum, Packet).
- Diweddariadau mewn meddalwedd a ddefnyddir/dibynnol: Ewch 1.12.9, ac ati 3.3.15, CoreDNS 1.6.2.
PS
Darllenwch hefyd ar ein blog:
- «";
- «";
- «";
- «'.
Ffynhonnell: hab.com


