Lero, Lachitatu, zichitika kutulutsidwa kotsatira kwa Kubernetes - 1.16. Malinga ndi mwambo womwe wapanga blog yathu, ino ndi nthawi yokumbukira zaka khumi zomwe tikukamba za kusintha kwakukulu mu mtundu watsopano.
Tsatanetsatane wa zotengera za ephemeral (ndi zitsanzo zakugwiritsa ntchito) zitha kupezeka mkati zogwirizana ndi KEP. Kukhazikitsa kwapano (mu K8s 1.16) ndi mtundu wa alpha, ndipo mwa njira zosinthira ku mtundu wa beta ndi "kuyesa Ephemeral Containers API pakutulutsa 2 kwa [Kubernetes]."
NB: M'malo mwake komanso dzina lake, mawonekedwewa akufanana ndi pulogalamu yowonjezera yomwe ilipo kale kubectl-debugza zomwe ife adalemba kale. Zikuyembekezeka kuti pobwera nkhokwe za ephemeral, kupangidwa kwa pulogalamu yowonjezera yakunja kutha.
Chinanso chatsopano - PodOverhead - idapangidwa kuti ipereke ndondomeko yowerengera mtengo wamtengo wapatali wa pods, zomwe zingasiyane kwambiri malinga ndi nthawi yogwiritsira ntchito. Mwachitsanzo, olemba izi KEP zotsatira mu Kata Containers, zomwe zimafuna kuyendetsa kernel ya alendo, wothandizira kata, init system, ndi zina. Kupitilira apo kumakhala kokulirapo, sikunganyalanyazidwe, zomwe zikutanthauza kuti payenera kukhala njira yoti muganizire za magawo ena, kukonzekera, ndi zina. Kuti mugwiritse ntchito PodSpec munda wawonjezedwa Overhead *ResourceList (kuyerekeza ndi data in RuntimeClass, ngati wina agwiritsidwa ntchito).
Chinanso chodziwika bwino ndi node topology manager(Woyang'anira Node Topology), yopangidwa kuti igwirizanitse njira yokonzekera bwino kugawidwa kwazinthu za hardware zamagulu osiyanasiyana ku Kubernetes. Ntchitoyi imayendetsedwa ndi kufunikira kokulirapo kwa machitidwe osiyanasiyana amakono (kuchokera kumunda wa matelefoni, kuphunzira makina, ntchito zachuma, ndi zina zotero) pakugwiritsa ntchito kwambiri makompyuta ofananirako komanso kuchepetsa kuchedwa kwa magwiridwe antchito, omwe amagwiritsa ntchito CPU yapamwamba komanso hardware mathamangitsidwe mphamvu. Kukhathamiritsa kotereku ku Kubernetes mpaka pano kwakwaniritsidwa chifukwa cha magawo osiyanasiyana (woyang'anira CPU, woyang'anira Chipangizo, CNI), ndipo tsopano adzawonjezedwa mawonekedwe amodzi amkati omwe amagwirizanitsa njirayo ndikuthandizira kulumikizana kwatsopano - chotchedwa topology- kudziwa - zigawo za mbali ya Kubelet. Tsatanetsatane - mu zogwirizana ndi KEP.
Chithunzi cha Woyang'anira Topology
Chotsatira - kuyang'ana zotengera pamene zikuyenda (kafukufuku woyamba). Monga mukudziwira, pazotengera zomwe zimatenga nthawi yayitali kuti zikhazikitsidwe, zimakhala zovuta kuti zitsimikizike zaposachedwa: mwina "zimaphedwa" zisanayambe kugwira ntchito, kapena zimatha kwa nthawi yayitali. Cheke chatsopano (chothandizidwa kudzera pachipata chotchedwa StartupProbeEnabled) amaletsa - kapena m'malo, amachedwetsa - zotsatira za cheke china chilichonse mpaka pomwe pod yatha. Pachifukwa ichi, mawonekedwewo adatchedwa poyamba poyambira moyo-kufufuza kukakamira. Kwa ma pod omwe amatenga nthawi yayitali kuti ayambe, mutha kuvotera boma pakanthawi kochepa.
Kuphatikiza apo, kusintha kwa RuntimeClass kumapezeka nthawi yomweyo mu beta, ndikuwonjezera chithandizo cha "magulu osiyanasiyana". C Kukonzekera kwa RuntimeClass Tsopano sikofunikira konse kuti node iliyonse ikhale ndi chithandizo pa RuntimeClass iliyonse: pamapodo mutha kusankha RuntimeClass osaganizira zamagulu amagulu. M'mbuyomu, kuti akwaniritse izi - kotero kuti ma pod amatha kukhala pa node ndi chithandizo cha zonse zomwe amafunikira - kunali koyenera kupereka malamulo oyenerera ku NodeSelector ndi kulekerera. MU KAPA Imalankhula za zitsanzo zogwiritsira ntchito komanso, zowonadi, tsatanetsatane wa kukhazikitsa.
Mtanda
Zinthu ziwiri zofunika pa intaneti zomwe zidawonekera koyamba (mu mtundu wa alpha) ku Kubernetes 1.16 ndi:
thandizo maukonde apawiri - IPv4/IPv6 - ndi "kumvetsetsa" kwake kofananira pamlingo wa pods, node, mautumiki. Zimaphatikizapo IPv4-to-IPv4 ndi IPv6-to-IPv6 kugwirizana pakati pa ma pod, kuchokera ku pods kupita ku ntchito zakunja, zowonetsera (mkati mwa Bridge CNI, PTP CNI ndi Host-Local IPAM mapulagini), komanso kubwereranso Kugwirizana ndi magulu a Kubernetes omwe akuyenda. IPv4 kapena IPv6 yokha. Tsatanetsatane wa kakhazikitsidwe ali mkati KAPA.
Chitsanzo chosonyeza ma adilesi a IP amitundu iwiri (IPv4 ndi IPv6) pamndandanda wamapodo:
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 Yatsopano ya Endpoint - EndpointSlice API. Imathetsa nkhani zogwirira ntchito / zowonongeka za Endpoint API yomwe ilipo yomwe imakhudza zigawo zosiyanasiyana mu ndege yolamulira (apiserver, etcd, endpoints-controller, kube-proxy). API yatsopanoyo idzawonjezedwa ku gulu la Discovery API ndipo idzatha kugwiritsa ntchito masauzande masauzande a backend endpoints pa ntchito iliyonse mumagulu omwe ali ndi masauzande a node. Kuti muchite izi, Ntchito iliyonse imajambulidwa ku zinthu za N EndpointSlice, iliyonse yomwe mwachisawawa ilibe mathero opitilira 100 (mtengo wake ndi wosinthika). The EndpointSlice API iperekanso mwayi wa chitukuko chake chamtsogolo: kuthandizira ma adilesi angapo a IP pa pod iliyonse, mayiko atsopano omaliza (osati kokha Ready и NotReady), kusintha kosinthika kwa ma endpoints.
Zomwe zidatulutsidwa komaliza zafika ku mtundu wa beta womaliza, dzina service.kubernetes.io/load-balancer-cleanup ndi kumangirizidwa ku utumiki uliwonse ndi mtundu LoadBalancer. Pa nthawi yochotsa ntchito yotereyi, imalepheretsa kuchotsedwa kwenikweni kwa gwero mpaka "kuyeretsa" kwazinthu zonse zoyenera kutha.
Makina a API
"Chokhazikika chokhazikika" chili mdera la seva ya Kubernetes API ndikulumikizana nayo. Izi zidachitika makamaka chifukwa kusamutsira ku chikhalidwe chokhazikika iwo omwe safuna kuzindikiritsa mwapadera CustomResourceDefinitions (CRD), omwe akhala ndi beta kuyambira masiku akutali a Kubernetes 1.7 (ndipo iyi ndi June 2017!). Kukhazikika komweku kunabwera kuzinthu zofananira:
kutembenuka mitundu ya CRD, yotengera webhook yakunja;
posachedwapa (mu K8s 1.15) zokhazikika (zosasintha) ndi zodziwikiratu kumunda kuchotsa (kudulira) za CustomResources;
mwayi pogwiritsa ntchito OpenAPI v3 schema kupanga ndi kusindikiza zolemba za OpenAPI zomwe zimagwiritsidwa ntchito kutsimikizira zothandizira za CRD kumbali ya seva.
Njira ina yomwe yadziwika kale kwa oyang'anira Kubernetes: kuvomereza webhook - adakhalanso mu beta kwa nthawi yayitali (kuyambira K8s 1.9) ndipo tsopano akulengezedwa kukhala wokhazikika.
Ndipo chidziwitso chokhacho chofunikira mu mtundu wa alpha chinali kukana от SelfLink - URI yapadera yoyimira chinthu chomwe chatchulidwa ndikukhala gawo lake ObjectMeta и ListMeta (ie gawo la chinthu chilichonse ku Kubernetes). N’chifukwa chiyani akuzisiya? Kulimbikitsa m'njira yosavuta mawu monga kusakhalapo kwa zifukwa zenizeni (zokulirapo) za gawoli kukhalabe. Zifukwa zomveka bwino ndikuwongolera magwiridwe antchito (pochotsa gawo losafunikira) ndikuchepetsa ntchito ya generic-apiserver, yomwe imakakamizika kugwira gawo loterolo mwanjira yapadera (iyi ndi gawo lokhalo lomwe limayikidwa patsogolo pa chinthucho. ndi serialized). Kutha kwenikweni (mkati mwa beta) SelfLink zidzachitika ndi Kubernetes mtundu 1.20, ndipo chomaliza - 1.21.
Kusunga deta
Ntchito yayikulu m'malo osungiramo, monga momwe zidatulutsira kale, imawonedwa m'derali Thandizo la CSI. Zosintha zazikulu apa zinali:
kwa nthawi yoyamba (mu mtundu wa alpha) adawonekeraThandizo la CSI plugin la Windows worker node: njira yamakono yogwirira ntchito ndi yosungirako idzalowetsanso mapulagini amtengo wapatali mu Kubernetes core ndi FlexVolume mapulagini ochokera ku Microsoft ozikidwa pa Powershell;
Chiwembu chokhazikitsa mapulagini a CSI ku Kubernetes a Windows
Kusintha kwa chithandizo cha Windows с maonekedwe Zothandizira za Kubeadm za OS iyi (mtundu wa alpha), mwayiRunAsUserName kwa zotengera za Windows (mtundu wa alpha), kusintha Akaunti Yoyang'anira Gulu la Gulu (gMSA) imathandizira mpaka mtundu wa beta, chithandizo khazikitsani / phatikizani ma voliyumu a vSphere.
ZobwezerezedwansoDeta compression mechanism mumayankho a API. M'mbuyomu, fyuluta ya HTTP idagwiritsidwa ntchito pazifukwa izi, zomwe zidayika zoletsa zingapo zomwe zidalepheretsa kuyimitsa mwachisawawa. "Transparent request compression" tsopano ikugwira ntchito: makasitomala kutumiza Accept-Encoding: gzip pamutu, amalandira yankho la GZIP-compressed ngati kukula kwake kupitirira 128 KB. Makasitomala a Go amathandizira okha kukanikiza (kutumiza mutu wofunikira), kuti azindikire kuchepa kwa magalimoto nthawi yomweyo. (Kusintha pang'ono kungafunike m'zinenero zina.)
Zinakhala zothekakukulitsa HPA kuchokera/mpaka ziro potengera ma metric akunja. Ngati mukulitsa potengera zinthu / ma metric akunja, ndiye kuti ntchito ikapanda ntchito mutha kungofikira ku 0 replicas kuti musunge zinthu. Izi ziyenera kukhala zothandiza makamaka pazochitika zomwe ogwira ntchito amapempha zothandizira za GPU, ndipo chiwerengero cha mitundu yosiyanasiyana ya ogwira ntchito opanda pake chimaposa chiwerengero cha ma GPU omwe alipo.
Kwa kubeadm utility anawonjezera luso loyesera (mtundu wa alpha) wogwiritsa ntchito makonda pakugwira ntchito init, join и upgrade. Dziwani zambiri za momwe mungagwiritsire ntchito mbendera --experimental-kustomize, mu KAPA.
Mapeto atsopano a apiserver - readyz, - amakulolani kutumiza zambiri za kukonzekera kwake. Seva ya API ilinso ndi mbendera --maximum-startup-sequence-duration, kukulolani kuti muwongolere kuyambiranso kwake.
Awiri mawonekedwe a Azure adalengeza kukhala okhazikika: thandizo madera opezeka (Magawo Opezeka) ndi cross resources group (RG). Kuphatikiza apo, Azure adawonjezera: