
Nhasi, Chitatu, kuburitswa kunotevera kweKubernetes - 1.16. Zvinoenderana netsika yakagadziridzwa yebhurogu yedu, ino inguva yegumi yemakore yatiri kutaura nezve shanduko dzakakosha mushanduro itsva.
Ruzivo rwakashandiswa kugadzira chinyorwa ichi rwunotorwa kubva , uye zvine chekuita nenyaya, zvikumbiro zvekudhonza, uye Kubernetes Enhancement Proposals (KEP). Saka, handei! ..
Node
Nhamba yakakura zvechokwadi yezvitsva zvinozivikanwa (mune alpha vhezheni chimiro) inoratidzwa padivi peK8s cluster nodes (Kubelet).
Kutanga, izvo zvinonzi «» (Ephemeral Containers), yakagadzirirwa kurerutsa maitiro ekugadzirisa mumapods. Iyo nyowani meshini inobvumidza iwe kuvhura yakakosha midziyo inotanga munzvimbo yemazita emapodhi aripo uye kurarama kwenguva pfupi. Chinangwa chavo ndechekudyidzana nemamwe mapodhi nemidziyo kuitira kugadzirisa chero matambudziko uye debug. Murairo mutsva waitwa pachinhu ichi kubectl debug, zvakafanana pakureva kubectl exec: chete pachinzvimbo chekumhanyisa maitiro mumudziyo (semu exec) inoburitsa mudziyo mupodhi. Semuenzaniso, uyu murairo uchabatanidza mudziyo mutsva kune pod:
kubectl debug -c debug-shell --image=debian target-pod -- bashRuzivo nezve ephemeral midziyo (uye mienzaniso yekushandiswa kwavo) inogona kuwanikwa mukati . Kuitwa kwazvino (muK8s 1.16) ivhezheni yealpha, uye pakati pemaitiro ekuchinjisa kune beta vhezheni "kuyedza Ephemeral Containers API kuti ingangoita maviri aburitswa e [Kubernetes]."
NB: Muhunhu hwayo uye kunyangwe zita rayo, chimiro chakafanana nechekare plugin pamusoro pazvo isu . Zvinotarisirwa kuti nekuuya kwe ephemeral containers, kugadzirwa kweimwe plugin yekunze kwakasiyana kunopera.
Imwe innovation - - yakagadzirirwa kupa nzira yekuverenga mari yepamusoro yemapods, iyo inogona kusiyana zvakanyanya zvichienderana nenguva yekumhanya inoshandiswa. Somuenzaniso, vanyori mhedzisiro muKata Containers, inoda kumhanya muenzi kernel, kata mumiriri, init system, nezvimwe. Kana kumusoro kukava hombe, haigone kufuratirwa, zvinoreva kuti panofanirwa kuve nenzira yekuzvifunga nezve mamwe maquotas, kuronga, nezvimwe. Kurishandisa mukati PodSpec munda wakawedzerwa Overhead *ResourceList (inoenzanisa ne data in RuntimeClass, kana imwe yakashandiswa).
Imwe tsvakiridzo yakakurumbira ndeye node topology maneja (Node Topology Maneja), yakagadzirirwa kubatanidza nzira yekugadzirisa zvakanaka kugoverwa kwezviwanikwa zvehardware zvezvikamu zvakasiyana muKubernetes. Ichi chirongwa chinofambiswa nekukura kuri kuda kweakasiyana masisitimu emazuva ano (kubva kundima yenharembozha, kudzidza muchina, masevhisi emari, nezvimwewo) zvemhando yepamusoro-performance parallel computing uye kuderedza kunonoka mukuita mashandiro, ayo avanoshandisa advanced CPU uye. Hardware acceleration kugona. Kugadziridzwa kwakadaro muKubernetes kusvika parizvino kwave kuwanikwa nekuda kwekusiyana kwezvikamu (CPU maneja, Chishandiso maneja, CNI), uye ikozvino ivo vanozowedzerwa imwe yemukati interface inobatanidza nzira uye kurerutsa kubatana kweiyo mitsva yakafanana - inonzi topology- kuziva - zvikamu paKubelet side. Details - in .

Topology Maneja Chikamu Dhiyagiramu
Chinotevera chimiro - kutarisa midziyo pavanenge vachimhanya (). Sezvaunoziva, kune midziyo inotora nguva yakareba kuti itange, zvakaoma kuwana chimiro chemazuva ano: vanogona "kuurayiwa" vasati vatanga kushanda, kana kuti vanoguma vafa kwenguva refu. Cheki nyowani (inogoneswa kuburikidza negedhi remhando inonzi StartupProbeEnabled) inokanzura - kana kuti, inononoka - mhedzisiro yeimwe cheki kusvika panguva iyo pod yapedza kushanda. Nechikonzero ichi, chimiro chakadanwa pakutanga . Kune mapodhi anotora nguva yakareba kutanga, unogona kuvhota nyika munguva pfupi pfupi.
Pamusoro pezvo, kuvandudzwa kweRuntimeClass kunobva kwawanikwa mubeta chimiro, ichiwedzera rutsigiro rwe "heterogeneous clusters". C Ikozvino hazvitombodi kuti imwe node ive nerutsigiro kune yega yega RuntimeClass: kune pods unogona kusarudza RuntimeClass usinga funge nezve cluster topology. Kare, kuita izvi - kuitira kuti mapodhi apedzisire pane node nerutsigiro rwezvese zvavanoda - zvaive zvakafanira kupa mitemo yakakodzera kuNodeSelector uye kushivirira. IN Inotaura nezvemienzaniso yekushandisa uye, hongu, ruzivo rwekuita.
Network
Zvinhu zviviri zvakakosha zvetiweki zvakaonekwa kekutanga (mune alpha vhezheni) muKubernetes 1.16 ndeidzi:
- mbiri network stack - IPv4/IPv6 - uye "kunzwisisa" kwayo kunoenderana pamwero wepods, node, masevhisi. Inosanganisira IPv4-kune-IPv4 uye IPv6-ku-IPv6 kudyidzana pakati pemapods, kubva kumapodhi kuenda kune ekunze masevhisi, mareferensi masevhisi (mukati meBridge CNI, PTP CNI uye Host-Local IPAM plugins), pamwe nereverse Inoenderana neKubernetes masumbu ari kushanda. IPv4 kana IPv6 chete. Tsanangudzo dzekuita dzirimo .
Muenzaniso wekuratidza IP kero dzemhando mbiri (IPv4 uye IPv6) mune rondedzero yemapods:
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# - New API yeEndpoint - . Inogadzirisa nyaya dzekuita / scalability dzeiyo iripo Endpoint API inobata zvikamu zvakasiyana-siyana mukudzora-ndege (apiserver, etcd, endpoints-controller, kube-proxy). Iyo API nyowani ichawedzerwa kuboka reDiscovery API uye ichakwanisa kushandira makumi ezviuru zvemashure ekupedzisira pane imwe neimwe sevhisi musumbu rine zviuru zvemanodhi. Kuti uite izvi, Sevhisi yega yega inomepu kune N zvinhu
EndpointSlice, imwe neimwe iyo nekusarudzika haina anopfuura zana emagumo (ukoshi hunogadziriswa). Iyo EndpointSlice API ichapawo mikana yekuvandudza kwayo kweramangwana: rutsigiro rweakawanda IP kero kune yega pod, nyika nyowani dzemagumo (kwete chete.ReadyиNotReady), dynamic subsetting yemagumo.
Iyo inoratidzwa mukuburitswa kwekupedzisira yasvika pabeta vhezheni , zita service.kubernetes.io/load-balancer-cleanup uye yakabatanidzwa kune imwe neimwe sevhisi ine mhando LoadBalancer. Panguva yekudzima sevhisi yakadaro, inodzivirira kubviswa chaiko kweiyo sosi kusvikira "kuchenesa" kwese kwakakodzera zviwanikwa zvebalancer kwapera.
API Michina
Iyo chaiyo "kudzikamisa chiitiko" iri munzvimbo yeKubernetes API server uye kudyidzana nayo. Izvi zvakaitika zvakanyanya thanks to kuendesa kunzvimbo yakagadzikana avo vasingadi sumo yakakosha (CRD), iyo yanga iine beta mamiriro kubvira mazuva ari kure eKubernetes 1.7 (uye uyu ndiChikumi 2017!). Kudzikamisa kwakafanana kwakauya kune zvine hukama maficha:
- со
/statusи/scaleyeCustomResources; - shanduro dzeCRD, zvichibva pawebhook yekunze;
- (muK8s 1.15) default values (defaulting) uye otomatiki munda kubviswa (kuchekerera) yeCustomResources;
- uchishandisa OpenAPI v3 schema kugadzira uye kuburitsa OpenAPI zvinyorwa zvinoshandiswa kusimbisa CRD zviwanikwa padivi reseva.
Imwe nzira yagara ichizivikanwa nevakuru veKubernetes: - yakaramba iri mubeta kwenguva yakareba (kubvira K8s 1.9) uye ikozvino yakanzi yakagadzikana.
Mamwe maficha maviri asvika pabeta: и .
Uye iyo chete yakakosha hunyanzvi mune alpha vhezheni yaive от SelfLink - yakakosha URI inomiririra chinhu chakataurwa uye kuve chikamu che ObjectMeta и ListMeta (kureva chikamu chechero chinhu muKubernetes). Sei vachiirasa? Kukurudzira nenzira iri nyore sekushaikwa kwezvikonzero zvechokwadi (zvakakura) zvekuti munda uyu urambe uripo. Zvimwe zvikonzero zvepamutemo ndezvekukwidziridza mashandiro (nekubvisa munda usina kufanira) uye kurerutsa basa reiyo generic-apiserver, iyo inomanikidzwa kubata munda wakadaro nenzira yakakosha (iyi ndiyo yega ndima yakagadzwa pamberi pechinhu. iri serialized). Chokwadi kupera (mukati mebeta) SelfLink zvichaitika neKubernetes vhezheni 1.20, uye yekupedzisira - 1.21.
Dhata yekuchengetedza
Basa guru munzvimbo yekuchengetera, sekuburitswa kwakapfuura, rinoonekwa munzvimbo . Shanduko huru apa dzaive:
- kekutanga (mune alpha vhezheni) CSI plugin rutsigiro rweWindows worker node: iyo yazvino nzira yekushanda nekuchengetedza ichatsiva mu-muti plugins muKubernetes core uye FlexVolume plugins kubva kuMicrosoft yakavakirwa paPowershell;

Scheme yekushandisa CSI plugins muKubernetes yeWindows - mukana , yakaunzwa kumashure muK8s 1.12, yakakura kusvika kune beta vhezheni;
- "Kusimudzira" kwakafanana (kubva ku alpha kuenda ku beta) kwakave nekugona kushandisa CSI kugadzira ephemeral volumes ().
Yakaunzwa mune yakapfuura vhezheni yeKubernetes (uchishandisa iripo PVC se DataSource kugadzira PVC itsva) zvakare yakagamuchira beta mamiriro.
scheduler
Shanduko mbiri dzinozivikanwa pakuronga (zvese zviri mualpha):
- - mukana shandisa mapodhi panzvimbo yezvishandiso zvine musoro zve "kugovera kwakanaka" kwemitoro (seDeployment uye ReplicaSet) uye kugadzirisa kugovera uku (sechinhu chakaoma chinodiwa kana sechimiro chakapfava, i.e. pamberi). Iyo ficha ichawedzera iripo yekugovera kugona kweakarongwa mapodhi, parizvino akaganhurirwa nesarudzo
PodAffinityиPodAntiAffinity, kupa vatariri kutonga kwakanaka mune iyi nyaya, zvinoreva kuti zvirinani kuwanikwa kwepamusoro uye nekushandisa zviwanikwa. Details - in . - Shandisa BestFit Policy в YakakumbirwaToCapacityRatio Yekutanga Basa panguva yekuronga pod, izvo zvinobvumira shandisa ("kurongedza mumidziyo") kune ese ari maviri zviwanikwa (processor, memory) uye akawedzera (seGPU). Kuti uwane rumwe ruzivo, ona .

Kuronga mapodhi: usati washandisa yakanakisa fit policy (zvakananga kuburikidza neyakagadzika scheduler) uye nekushandiswa kwayo (kuburikidza ne scheduler extender)
Mukuwedzera, kugona kugadzira yako wega scheduler plugins kunze kweiyo huru Kubernetes yekuvandudza muti (kunze-kwemuti).
Dzimwe shanduko
Zvakare muKubernetes 1.16 kuburitswa inogona kucherechedzwa initiative for mametric anowanikwa muhurongwa hwakazara, kana kuti kunyanya, maererano kuK8s chiridzwa. Ivo vanonyanya kuvimba neinoenderana . Kusawirirana kwakamuka nekuda kwezvikonzero zvakasiyana-siyana (semuenzaniso, mamwe ma metrics akangogadzirwa mirairo yazvino isati yaoneka), uye vagadziri vakafunga kuti yaive nguva yekuunza zvese kune imwechete chiyero, "zvichienderana neimwe yePrometheus ecosystem." Kuitwa kwazvino kwechirongwa ichi kuri mune alpha chimiro, icho chichasimudzirwa zvishoma nezvishoma mune dzinotevera shanduro dzeKubernetes kuita beta (1.17) uye yakagadzikana (1.18).
Mukuwedzera, shanduko dzinotevera dzinogona kucherechedzwa:
- Windows support development с Kubeadm zvishandiso zveiyi OS (alpha vhezheni),
RunAsUserNameyeWindows midziyo (alpha vhezheni), Group Managed Service Account (gMSA) inotsigira kusvika kune beta vhezheni, gomo / batanidza kune vSphere mavhoriyamu. - data compression mechanism mune API mhinduro. Kare, sefa yeHTTP yaishandiswa nekuda kwezvinangwa izvi, izvo zvaiisa zvirambidzo zvakati kuti zvaitadzisa kugoneswa nekusarudzika. "Transparent chikumbiro compression" ikozvino inoshanda: vatengi kutumira
Accept-Encoding: gzipmumusoro, vanogashira mhinduro yeGZIP-yakadzvanywa kana saizi yayo ichipfuura 128 KB. Enda vatengi vanongotsigira kumanikidza (kutumira inodiwa musoro), saka ivo vanobva vangoona kudzikiswa kwetraffic. (Kugadziridza zvishoma kungadikanwa kune mimwe mitauro.) - kuyera HPA kubva/kusvika zero pods zvichibva pane ekunze metrics. Kana iwe ukayera zvichibva pane zvinhu / ekunze metrics, saka kana basa rakawandisa unokwanisa kuyera otomatiki kusvika ku0 replicas kuchengetedza zviwanikwa. Ichi chimiro chinofanirwa kunyanya kubatsira kune zviitiko apo vashandi vanokumbira zviwanikwa zveGPU, uye huwandu hwemhando dzakasiyana dzevashandi vasina basa hunodarika huwandu hwemaGPU aripo.
- Mutengi mutsva - - ye "generalized" kuwana zvinhu. Yakagadzirwa kuti itore nyore metadata (kureva chidimbu
metadata) kubva kune zviwanikwa zvemapoka uye kuita kuunganidza marara uye quota maoperation navo. - Vaka Kubernetes pasina nhaka ("yakavakirwa-mukati" mu-muti) gore vanopa (alpha vhezheni).
- Kubeadm utility kuyedza (alpha vhezheni) kugona kushandisa gadzirisa zvigamba panguva yekushanda
init,joinиupgrade. Dzidza zvakawanda pamusoro pekushandisa mureza--experimental-kustomize, ona mu . - Nzvimbo itsva yekupedzisira ye apiserver - , - inokubvumira kutumira kunze ruzivo pamusoro pekugadzirira kwayo. Iyo API server zvakare ikozvino ine mureza
--maximum-startup-sequence-duration, zvichikubvumidza kuti udzore kutanga kwayo. - Two zvinhu zveAzure yakaziviswa yakagadzikana: rutsigiro (Kuwanikwa Nzvimbo) uye (RG). Mukuwedzera, Azure yakawedzera:
- AAD uye ADFS;
-
service.beta.kubernetes.io/azure-pip-namekutsanangura IP yeruzhinji yemuyero wemutoro; - zvirongwa
LoadBalancerNameиLoadBalancerResourceGroup.
- AWS ikozvino ine yeEBS paWindows uye EC2 API inofona
DescribeInstances. - Kubeadm yave kuzvimiririra CoreDNS kumisikidzwa paunenge uchivandudza iyo CoreDNS vhezheni.
- Binaries nezvimwewo mune inoenderana Docker mufananidzo world-executable, iyo inokutendera kuti umhanye mufananidzo uyu pasina kudiwa kwekodzero dzemidzi. Zvakare, etcd kutama mufananidzo etcd2 vhezheni rutsigiro.
- В yakachinjirwa kushandisa distroless seyakadzika mufananidzo, yakagadziridzwa mashandiro, yakawedzera vatsva vanopa gore (DigitalOcean, Magnum, Packet).
- Zvigadziriso mumapurogiramu anoshandiswa/anotsamira: Enda 1.12.9, etcd 3.3.15, CoreDNS 1.6.2.
PS
Verenga zvakare pablog yedu:
- «";
- «";
- «";
- «".
Source: www.habr.com


