Kubernetes 1.16: Buaicphointí cad atá nua

Kubernetes 1.16: Buaicphointí cad atá nua

Inniu, Dé Céadaoin, ar siúl an chéad eisiúint eile de Kubernetes - 1.16. De réir an traidisiúin atá forbartha le haghaidh ár bhlag, is é seo an t-am deichiú bliain go bhfuil muid ag caint faoi na hathruithe is suntasaí sa leagan nua.

Tógtar an fhaisnéis a úsáidtear chun an t-ábhar seo a ullmhú ó Táblaí rianaithe feabhsuithe Kubernetes, CHANGELOG-1.16 agus saincheisteanna gaolmhara, iarratais tarraingthe, agus Moltaí Feabhsúcháin Kubernetes (KEP). Mar sin, a ligean ar dul! ..

Nóid

Cuirtear líon fíor-mhór nuálaíochtaí suntasacha (i stádas an leagan alfa) i láthair ar thaobh nóid braisle K8s (Kubelet).

Gcéad dul síos, mar a thugtar air «coimeádáin ephemeral» (Coimeádáin Ephemeral), atá deartha chun próisis dífhabhtaithe i pods a shimpliú. Ceadaíonn an mheicníocht nua duit coimeádáin speisialta a sheoladh a thosaíonn in ainmspás na pods atá ann cheana féin agus a mhaireann ar feadh tréimhse ghearr. Is é an cuspóir atá acu idirghníomhú le pods agus coimeádáin eile chun aon fhadhbanna agus dífhabhtú a réiteach. Tá ordú nua curtha i bhfeidhm don ghné seo kubectl debug, cosúil go bunúsach le kubectl exec: ach amháin in ionad próiseas a reáchtáil i gcoimeádán (mar atá i exec) seolann sé coimeádán i pod. Mar shampla, nascfaidh an t-ordú seo coimeádán nua le pod:

kubectl debug -c debug-shell --image=debian target-pod -- bash

Tá sonraí maidir le coimeádáin ghearrshaolacha (agus samplaí dá n-úsáid) le fáil in KEP comhfhreagrach. Is leagan alfa é an cur i bhfeidhm reatha (i K8s 1.16), agus i measc na gcritéar chun é a aistriú go leagan béite tá “tástáil ar an API Coimeádáin Ephemeral le haghaidh 2 eisiúint ar a laghad de [Kubernetes].”

NB: Ina bunúsach agus fiú a ainm, tá an ghné cosúil le breiseán atá ann cheana féin kubectl-debuga bhfuilimid ag caint faoi scríobh cheana. Táthar ag súil go dtiocfaidh deireadh le forbairt breiseán seachtrach ar leith le teacht coimeádáin ghearrshaolacha.

Nuáil eile - PodOverhead - deartha chun soláthar meicníocht chun forchostais a ríomh le haghaidh pods, is féidir a athrú go mór ag brath ar an am rite a úsáidtear. Mar shampla, na húdair an KEP seo mar thoradh ar Kata Containers, a éilíonn a reáchtáil an eithne aoi, gníomhaire kata, córas init, etc. Nuair a éiríonn forchostais chomh mór sin, ní féidir neamhaird a dhéanamh air, rud a chiallaíonn go gcaithfidh bealach a bheith ann chun é a chur san áireamh le haghaidh tuilleadh cuótaí, pleanáil, etc. Chun é a chur i bhfeidhm i PodSpec réimse curtha leis Overhead *ResourceList (i gcomparáid le sonraí i RuntimeClass, má úsáidtear ceann).

Is nuálaíocht shuntasach eile é bainisteoir topology nód (Bainisteoir Topology Nód), atá deartha chun an cur chuige maidir le mionchoigeartú a dhéanamh ar leithdháileadh acmhainní crua-earraí do chomhpháirteanna éagsúla Kubernetes a aontú. Tá an tionscnamh seo á thiomáint ag an ngá atá ag méadú ar chórais nua-aimseartha éagsúla (ó réimse na teileachumarsáide, na meaisínfhoghlama, na seirbhísí airgeadais, etc.) le haghaidh ríomhaireachta ardfheidhmíochta comhthreomhar agus íoslaghdú a dhéanamh ar mhoilleanna i gcur i gcrích na n-oibríochtaí, as a n-úsáideann siad ard-LAP agus cumais luasghéarú crua-earraí. Baineadh leas iomlán a bhaint as a leithéid de Kubernetes go dtí seo a bhuíochas do chomhpháirteanna díchosúla (bainisteoir LAP, Bainisteoir Gléas, CNI), agus anois cuirfear comhéadan inmheánach aonair leo a aontaíonn an cur chuige agus a shimplíonn nasc na n-ábhar nua cosúil - topology- mar a thugtar air. feasach - comhpháirteanna ar an taobh Kubelet. Sonraí - isteach KEP comhfhreagrach.

Kubernetes 1.16: Buaicphointí cad atá nua
Léaráid Comhpháirt Bainisteoir Topology

An chéad ghné eile - coimeádáin a sheiceáil agus iad ag rith (taiscéalaí tosaithe). Mar is eol duit, i gcás coimeádáin a thógann go leor ama chun iad a sheoladh, tá sé deacair stádas cothrom le dáta a fháil: déantar iad a “marú” sula dtosaíonn siad ag feidhmiú, nó bíonn siad faoi lán seoil ar feadh i bhfad. Seiceáil nua (cumasaithe tríd an ngeata gné ar a dtugtar StartupProbeEnabled) cuireann sé ar ceal - nó ina áit sin, cuireann sé siar - éifeacht aon seiceálacha eile go dtí go mbeidh an pod críochnaithe ag rith. Ar an ábhar seo, tugadh an ghné ar dtús pod-tosaithe beocht-staidéar cuardaigh. I gcás pods a thógann go leor ama le tosú, is féidir leat an stát a vótaíocht in eatraimh ama réasúnta gearr.

Ina theannta sin, tá feabhas ar RuntimeClass ar fáil láithreach i stádas béite, ag cur tacaíocht le haghaidh “braislí ilchineálacha”. c Sceidealú RuntimeClass Anois níl sé riachtanach ar chor ar bith tacaíocht a bheith ag gach nód do gach RuntimeClass: le haghaidh pods is féidir leat RuntimeClass a roghnú gan smaoineamh ar an topology braisle. Roimhe seo, chun é seo a bhaint amach - ionas go gcríochnóidh pods ar nóid le tacaíocht do gach rud a theastaíonn uathu - bhí sé riachtanach rialacha cuí a shannadh do NodeSelector agus tolerations. IN CÉIM Labhraíonn sé faoi shamplaí úsáide agus, ar ndóigh, sonraí cur chun feidhme.

Líonra

Dhá ghné líonraithe shuntasacha a tháinig chun solais den chéad uair (i leagan alfa) in Kubernetes 1.16 ná:

  • Tacaíocht stack líonra dé - IPv4/IPv6 - agus a “thuiscint” chomhfhreagrach ar leibhéal na pods, na nóid, na seirbhísí. Áiríonn sé idir-inoibritheacht IPv4-go-IPv4 agus IPv6-go-IPv6 idir pods, ó pods go seirbhísí seachtracha, feidhmiúcháin tagartha (laistigh de na breiseáin Bridge CNI, PTP CNI agus Host-Local IPAM), chomh maith le droim ar ais Ag luí le braislí Kubernetes ag rith. IPv4 nó IPv6 amháin. Tá sonraí cur chun feidhme i CÉIM.

    Sampla de sheoltaí IP de dhá chineál (IPv4 agus IPv6) a thaispeáint i liosta na pods:

    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 nua le haghaidh Endpoint - EndpointSlice API. Réitíonn sé na saincheisteanna feidhmíochta/inscálaitheachta a bhaineann leis an API Endpoint atá ann cheana féin a théann i bhfeidhm ar chomhpháirteanna éagsúla san eitleán rialaithe (an apiserver, etcd, críochphointí-rialtóir, kube-proxy). Cuirfear an API nua leis an ngrúpa Discovery API agus beidh sé in ann freastal ar na mílte críochphointí inneall ar gach seirbhís i mbraisle ina bhfuil na mílte nóid. Chun seo a dhéanamh, déantar gach Seirbhís a mhapáil chuig N réad EndpointSlice, nach bhfuil níos mó ná 100 críochphointe ag gach ceann acu de réir réamhshocraithe (is féidir an luach a chumrú). Soláthróidh an API EndpointSlice deiseanna freisin dá fhorbairt amach anseo: tacaíocht d’ilseoltaí IP do gach pod, stáit nua le haghaidh críochphointí (ní hamháin Ready и NotReady), foshuíomh dinimiciúil le haghaidh críochphointí.

Tá an leagan béite bainte amach ag an gceann a cuireadh i láthair sa scaoileadh deireanach críochnaitheoir, ainmnithe service.kubernetes.io/load-balancer-cleanup agus ceangailte le gach seirbhís le cineál LoadBalancer. Nuair a dhéantar seirbhís den sórt sin a scriosadh, cuireann sé cosc ​​ar scriosadh iarbhír na hacmhainne go dtí go mbíonn “glanadh” na n-acmhainní cothromaíochta ábhartha críochnaithe.

Innealra API

Tá an “garsprioc cobhsaíochta” fíor i réimse an fhreastalaí Kubernetes API agus idirghníomhú leis. Tharla sé seo den chuid is mó a bhuíochas sin do aistriú chuig stádas cobhsaí iad siúd nach bhfuil tabhairt isteach speisialta de dhíth orthu CustomResourceDefinitions (CRD), a bhfuil stádas béite acu ó laethanta i bhfad i gcéin Kubernetes 1.7 (agus is é seo Meitheamh 2017!). Tháinig an cobhsú céanna ar na gnéithe gaolmhara:

  • "fofhoinsí" le /status и /scale le haghaidh CustomResources;
  • tiontú leaganacha do CRD, bunaithe ar ghreamú gréasáin seachtrach;
  • curtha i láthair le déanaí (i K8anna 1.15) luachanna réamhshocraithe (réamhshocraithe) agus baint uathoibríoch réimse (bearradh) le haghaidh CustomResources;
  • deis ag baint úsáide as scéimre OpenAPI v3 chun doiciméadú OpenAPI a chruthú agus a fhoilsiú a úsáidtear chun acmhainní CRD ar thaobh an fhreastalaí a bhailíochtú.

Meicníocht eile a bhfuil aithne ag riarthóirí Kubernetes air le fada: gréasán iontrála - d'fhan sé i stádas béite freisin ar feadh i bhfad (ó K8s 1.9) agus tá sé dearbhaithe anois cobhsaí.

Tá béite bainte amach ag dhá ghné eile: taobh freastalaí i bhfeidhm и faire leabharmharcanna.

Agus ba é an t-aon nuálaíocht shuntasach sa leagan alfa teip ó SelfLink — URI speisialta a ionadaíonn don réad sonraithe agus ar cuid de ObjectMeta и ListMeta (i.e. cuid d’aon réad in Kubernetes). Cén fáth a bhfuil siad ag tréigean é? Spreagadh ar bhealach simplí fuaimeanna toisc nach bhfuil fíorchúiseanna (ró-mhór) ann leis an réimse seo a bheith ann fós. Is iad cúiseanna níos foirmiúla ná feidhmíocht a bharrfheabhsú (trí réimse neamhriachtanach a bhaint) agus obair an cineálach-apiserver a shimpliú, a bhfuil iallach air réimse den sórt sin a láimhseáil ar bhealach speisialta (is é seo an t-aon réimse atá socraithe roimh an réad. Tá sraithuimhir). Dífheidhmeacht fíor (laistigh béite) SelfLink tarlóidh sé le leagan Kubernetes 1.20, agus deiridh - 1.21.

Stóráil sonraí

Breathnaítear ar an bpríomhobair sa réimse stórála, mar atá i scaoileadh roimhe seo, sa cheantar Tacaíocht CSI. Ba iad na príomhathruithe anseo:

  • den chéad uair (i leagan alfa) le feiceáil Tacaíocht breiseán CSI do nóid oibrithe Windows: cuirfear an modh oibre atá ann faoi láthair le stóráil in ionad breiseán in-crann i gcroílár Kubernetes agus plugins FlexVolume ó Microsoft bunaithe ar Powershell;

    Kubernetes 1.16: Buaicphointí cad atá nua
    Scéim chun forlíontáin CSI a chur i bhfeidhm i Kubernetes do Windows

  • deis toirteanna CSI a athrú, a tugadh isteach ar ais i K8s 1.12, tar éis fás go leagan béite;
  • Baineadh amach “ardú céime” cosúil leis (ó alfa go béite) tríd an gcumas CSI a úsáid chun toirteanna gearrshaolacha áitiúla a chruthú (Tacaíocht Imleabhar Inlíne CSI).

Tugadh isteach sa leagan roimhe seo de Kubernetes feidhm clónála toirte (ag úsáid PVC reatha mar DataSource chun PVC nua a chruthú) tá stádas béite faighte aige freisin.

Sceidealóir

Dhá athrú suntasach ar an sceidealú (an dá cheann in alfa):

  • EvenPodsSpreading - deis úsáid a bhaint as pods in ionad aonaid feidhmithe loighciúla chun ualaí a “dháileadh go cothrom”. (cosúil le Imscaradh agus ReplicSet) agus an dáileadh seo a choigeartú (mar riachtanas crua nó mar choinníoll bog, i.e. tosaíocht). Leathnóidh an ghné na cumais dáileacháin atá ann cheana féin maidir le pods pleanáilte, atá teoranta faoi láthair ag roghanna PodAffinity и PodAntiAffinity, ag tabhairt smacht níos fearr do riarthóirí ar an ábhar seo, rud a chiallaíonn ard-infhaighteacht níos fearr agus tomhaltas acmhainní optamaithe. Sonraí - isteach CÉIM.
  • Úsáid Beartas BestFit в RequestedToCapacityRatio Feidhm Tosaíochta le linn na pleanála pod, a cheadóidh iarratas a dhéanamh pacáil bhosca bruscair (“pacáil i gcoimeádáin”) le haghaidh acmhainní bunúsacha (próiseálaí, cuimhne) agus cinn sínte (cosúil le GPU). Le haghaidh tuilleadh sonraí, féach CÉIM.

    Kubernetes 1.16: Buaicphointí cad atá nua
    Podaí sceidealaithe: sula n-úsáidtear an beartas feiliúnach is fearr (go díreach tríd an sceidealóir réamhshocraithe) agus lena úsáid (trí shínitheoir sceidil)

Ina theannta sin, curtha i láthair an cumas do chuid breiseán sceidealóir féin a chruthú lasmuigh de phríomhchrann forbartha Kubernetes (as crann).

Athruithe eile

Chomh maith leis sin i scaoileadh Kubernetes 1.16 is féidir leat a thabhairt faoi deara tionscnamh le haghaidh ag tabhairt méadracht ar fáil in ord iomlán, nó níos cruinne, de réir rialacháin oifigiúla go K8s ionstraimíochta. Siad ag brath go mór ar an comhfhreagrach Doiciméid Prometheus saor in aisce,. Tháinig neamhréireachtaí chun cinn ar chúiseanna éagsúla (mar shampla, cruthaíodh roinnt méadracht go simplí sular tháinig na treoracha reatha), agus chinn na forbróirí go raibh sé in am gach rud a thabhairt chuig aon chaighdeán amháin, "ar aon dul leis an gcuid eile d'éiceachóras Prometheus." Tá cur chun feidhme reatha an tionscnaimh seo i stádas alfa, a chuirfear chun cinn de réir a chéile i leaganacha ina dhiaidh sin de Kubernetes go beta (1.17) agus cobhsaí (1.18).

Ina theannta sin, is féidir na hathruithe seo a leanas a thabhairt faoi deara:

  • Tacaíonn Windows le forbairt с cuma Fóntais Kubeadm don OS seo (leagan alfa), deis RunAsUserName le haghaidh coimeádáin Windows (leagan alfa), feabhsú Tacaíonn Cuntas Seirbhíse Bainistithe Grúpa (gMSA) suas go dtí leagan béite, tacaíocht mount / ceangail le haghaidh toirt vSphere.
  • Athchúrsáilte meicníocht comhbhrú sonraí i bhfreagraí API. Roimhe seo, baineadh úsáid as scagaire HTTP chun na gcríoch sin, rud a chuir roinnt srianta i bhfeidhm a chuir cosc ​​​​ar é a chumasú de réir réamhshocraithe. Oibríonn "comhbhrú iarratais trédhearcach" anois: cliaint ag seoladh Accept-Encoding: gzip sa cheanntásc, faigheann siad freagra GZIP-chomhbhrúite má sháraíonn a mhéid 128 KB. Tacaíonn cliaint Téigh go huathoibríoch le comhbhrú (an ceanntásc riachtanach a sheoladh), mar sin tabharfaidh siad faoi deara láithreach laghdú ar thrácht. (Seans go mbeidh gá le mionathruithe ar theangacha eile.)
  • Tháinig sé indéanta scálú HPA ó/go nialas pods bunaithe ar mhéadracht sheachtrach. Má dhéanann tú scála bunaithe ar réada/méadracht sheachtrach, ansin nuair a bhíonn ualaí oibre díomhaoin is féidir leat scála go huathoibríoch go 0 macasamhail chun acmhainní a shábháil. Ba cheart go mbeadh an ghné seo úsáideach go háirithe i gcásanna ina n-iarrann oibrithe acmhainní GPU, agus go sáraíonn líon na gcineálacha éagsúla oibrithe díomhaoin líon na GPUanna atá ar fáil.
  • Cliant nua - k8s.io/client-go/metadata.Client — le haghaidh rochtana “ginearálaithe” ar réada. Tá sé deartha chun meiteashonraí a aisghabháil go héasca (i.e. fo-alt metadata) as acmhainní braisle agus oibríochtaí bailithe bruscair agus cuóta a dhéanamh leo.
  • Tóg Kubernetes anois is féidir leat gan oidhreacht (“tógtha i” i-crann) soláthraithe scamall (leagan alfa).
  • Chun an fóntais kubeadm curtha leis cumas turgnamhach (leagan alfa) paistí saincheaptha a chur i bhfeidhm le linn oibríochtaí init, join и upgrade. Foghlaim tuilleadh faoi conas an bhratach a úsáid --experimental-kustomize, féach i CÉIM.
  • críochphointe nua don apiserver - readyz, - ligeann duit faisnéis a onnmhairiú faoina ullmhacht. Tá bratach ag an bhfreastalaí API freisin --maximum-startup-sequence-duration, rud a ligeann duit a atosú a rialáil.
  • Dhá Gnéithe do Azure dearbhaithe cobhsaí: tacaíocht criosanna infhaighteachta (Criosanna Infhaighteachta) agus grúpa tras-acmhainní (RG). Ina theannta sin, chuir Azure leis:
    • tacaíocht fíordheimhnithe AAD agus ADFS;
    • anótáil service.beta.kubernetes.io/azure-pip-name chun IP poiblí an chothromóra ualaigh a shonrú;
    • deis настройки LoadBalancerName и LoadBalancerResourceGroup.
  • Tá ag AWS anois tacaíocht le haghaidh EBS ar Windows agus optamaithe Glaonna EC2 API DescribeInstances.
  • Tá Kubeadm neamhspleách anois imirceann Cumraíocht CoreDNS agus an leagan CoreDNS á uasghrádú.
  • Dénártha srl san íomhá Docker comhfhreagrach déanta domhan-inrite, a ligeann duit an íomhá seo a rith gan aon ghá le cearta fréamhacha. Chomh maith leis sin, íomhá imirce srl scoirfidh tacaíocht leagan etcd2.
  • В Cnuasach Autoscaler 1.16.0 aistrigh chuig distroless a úsáid mar bhuníomhá, feidhmíocht fheabhsaithe, chuir soláthraithe scamall nua leis (DigitalOcean, Magnum, Packet).
  • Nuashonruithe i mbogearraí úsáidte/spleácha: Téigh 1.12.9, etcd 3.3.15, CoreDNS 1.6.2.

PS

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment