
An-diugh, Diciadain, an ath fhoillseachadh de Kubernetes - 1.16. A rèir an traidisean a tha air leasachadh airson ar blog, is e seo an deicheamh ceann-bliadhna a tha sinn a 'bruidhinn mu na h-atharrachaidhean as cudromaiche san dreach ùr.
Tha am fiosrachadh a chaidh a chleachdadh airson an stuth seo ullachadh air a thoirt bho , agus cùisean co-cheangailte, iarrtasan tarraing, agus Molaidhean Leasachaidh Kubernetes (KEP). Mar sin, rachamaid! ..
Nòtaichean
Tha àireamh fìor mhòr de innleachdan sònraichte (ann an inbhe dreach alpha) air an taisbeanadh air taobh nodan brabhsair K8s (Kubelet).
An toiseach, mar a chanar ris «» (Còmhdaichean Ephemeral), air a dhealbhadh gus pròiseasan dì-bhugachaidh a dhèanamh nas sìmplidhe ann am pods. Leigidh an uidheamachd ùr leat soithichean sònraichte a chuir air bhog a thòisicheas ann an àite ainmean nam pods a th’ ann agus a bhios beò airson ùine ghoirid. Is e an adhbhar aca eadar-obrachadh le pods agus soithichean eile gus fuasgladh fhaighinn air duilgheadasan agus deasbaid sam bith. Chaidh àithne ùr a chuir an gnìomh airson an fheart seo kubectl debug, co-chosmhail ri kubectl exec: a-mhàin an àite pròiseas a ruith ann an soitheach (mar ann an exec) cuiridh e soitheach air bhog ann am pod. Mar eisimpleir, ceangail an àithne seo soitheach ùr ri pod:
kubectl debug -c debug-shell --image=debian target-pod -- bashGheibhear mion-fhiosrachadh mu shoithichean geàrr-ùine (agus eisimpleirean den cleachdadh) ann an . Tha am buileachadh gnàthach (ann an K8s 1.16) na dhreach alpha, agus am measg nan slatan-tomhais airson a ghluasad gu dreach beta tha “deuchainn an Ephemeral Containers API airson co-dhiù 2 fhoillseachadh de [Kubernetes].”
NB: Anns a bhunait agus eadhon an ainm, tha am feart coltach ri plugan a tha ann mu thràth mu bheil sinn . Thathas an dùil, le teachd soithichean geàrr-ùine, gun sguir leasachadh plugan taobh a-muigh air leth.
Ùr-ghnàthachadh eile - - air a dhealbhadh gus a thoirt seachad uidheamachd airson cosgaisean os-cionn airson pods obrachadh a-mach, a dh’ fhaodadh atharrachadh gu mòr a rèir an ùine ruith a thathar a’ cleachdadh. Mar eisimpleir, na h-ùghdaran toradh ann an Kata Containers, a dh ’fheumas a bhith a’ ruith an kernel aoighean, àidseant kata, siostam init, msaa. Nuair a dh’ fhàsas an còrr cho mòr, chan urrainnear dearmad a dhèanamh air, agus tha sin a’ ciallachadh gum feum dòigh a bhith ann gus aire a thoirt dha airson tuilleadh chuotathan, dealbhadh, msaa. Gus a chur an gnìomh ann an PodSpec raon air a chur ris Overhead *ResourceList (an coimeas ri dàta ann an RuntimeClass, ma tha fear air a chleachdadh).
Tha ùr-ghnàthachadh sònraichte eile manaidsear topology node (Manaidsear Topology Node), air a dhealbhadh gus an dòigh-obrach airson mion-sgrùdadh a dhèanamh air riarachadh ghoireasan bathar-cruaidh airson diofar phàirtean ann an Kubernetes. Tha an iomairt seo air a stiùireadh leis an fheum a tha a’ sìor fhàs air diofar shiostaman ùr-nodha (bho raon cian-conaltraidh, ionnsachadh innealan, seirbheisean ionmhais, msaa) airson coimpiutaireachd àrd-choileanadh co-shìnte agus a’ lughdachadh dàil ann an coileanadh obrachaidhean, airson am bi iad a’ cleachdadh CPU adhartach agus comasan luathachadh bathar-cruaidh. Chaidh an leithid de optimizations ann an Kubernetes a choileanadh gu ruige seo le taing do cho-phàirtean eadar-dhealaichte (manaidsear CPU, manaidsear inneal, CNI), agus a-nis thèid aon eadar-aghaidh a-staigh a chuir riutha a dh’ aonaicheas an dòigh-obrach agus a nì sìmplidh air ceangal topology ùr coltach ris - ris an canar. mothachail - co-phàirtean air taobh Kubelet. Mion-fhiosrachadh - a-steach .

Diagram co-phàirt Manaidsear Topology
An ath fheart - a’ cumail sùil air soithichean fhad ‘s a tha iad a’ ruith (). Mar a tha fios agad, airson soithichean a bheir ùine mhòr airson an cur air bhog, tha e duilich inbhe ùr fhaighinn: tha iad an dàrna cuid “air am marbhadh” mus tòisich iad ag obair, no bidh iad ann an glasadh airson ùine mhòr. Seic ùr (air a chomasachadh tro gheata feart ris an canar StartupProbeEnabled) a’ cuir dheth - no an àite sin, a’ cur dheth - buaidh sgrùdaidhean sam bith eile gus am bi am pod deiseil a’ ruith. Air an adhbhar seo, chaidh am feart ainmeachadh an toiseach . Airson pods a bheir ùine mhòr airson tòiseachadh, faodaidh tu an stàit a sgrùdadh ann an ùine ghoirid.
A bharrachd air an sin, tha leasachadh airson RuntimeClass ri fhaighinn sa bhad ann an inbhe beta, a’ cur taic ri “cruinneachaidhean heterogeneous”. c A-nis chan eil e riatanach idir gum bi taic aig gach nód airson gach RuntimeClass: airson pods faodaidh tu RuntimeClass a thaghadh gun a bhith a’ smaoineachadh air topology na brabhsair. Roimhe seo, gus seo a choileanadh - gus am bi pods a 'tighinn gu crìch air nodan le taic airson a h-uile dad a dh' fheumas iad - bha e riatanach riaghailtean iomchaidh a shònrachadh gu NodeSelector agus fulangas. ANNS Tha e a’ bruidhinn air eisimpleirean cleachdaidh agus, gu dearbh, mion-fhiosrachadh buileachaidh.
Lìonra
Is e dà fheart lìonraidh cudromach a nochd airson a’ chiad uair (ann an dreach alpha) ann an Kubernetes 1.16:
- cruach lìonra dùbailte - IPv4/IPv6 - agus an “tuigse” co-fhreagarrach aige aig ìre pods, nodan, seirbheisean. Tha e a’ toirt a-steach eadar-obrachaidh IPv4-gu-IPv4 agus IPv6-gu-IPv6 eadar pods, bho pods gu seirbheisean taobh a-muigh, buileachadh iomraidh (taobh a-staigh plugins Bridge CNI, PTP CNI agus Host-Local IPAM), a bharrachd air cùl Co-chosmhail ri cruinneachaidhean Kubernetes a’ ruith. IPv4 no IPv6 a-mhàin. Tha mion-fhiosrachadh buileachaidh a-staigh .
Eisimpleir de bhith a’ taisbeanadh seòlaidhean IP de dhà sheòrsa (IPv4 agus IPv6) anns an liosta 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 ùr airson Endpoint - . Bidh e a’ fuasgladh chùisean dèanadais / scalability an API Endpoint a tha ann mu thràth a bheir buaidh air diofar phàirtean anns an itealan smachd (apiserver, msaa, endpoints-controller, kube-proxy). Thèid an API ùr a chur ris a’ bhuidheann Discovery API agus bidh e comasach dhaibh deichean de mhìltean de phuingean crìochnachaidh a fhrithealadh air gach seirbheis ann am buidheann anns a bheil mìltean de nodan. Gus seo a dhèanamh, tha gach Seirbheis air a mhapadh gu N nithean
EndpointSlice, agus gu bunaiteach chan eil barrachd air 100 puing crìochnachaidh aig gach fear dhiubh (tha an luach comasach a rèiteachadh). Bheir an EndpointSlice API cothroman cuideachd airson a leasachadh san àm ri teachd: taic airson grunn sheòlaidhean IP airson gach pod, stàitean ùra airson puingean crìochnachaidh (chan e a-mhàinReadyиNotReady), fo-shuidheachadh fiùghantach airson puingean crìochnachaidh.
Tha am fear a chaidh a thaisbeanadh san fhoillseachadh mu dheireadh air an dreach beta a ruighinn , ainmeachadh service.kubernetes.io/load-balancer-cleanup agus ceangailte ri gach seirbheis le seòrsa LoadBalancer. Aig àm cuir às do leithid de sheirbheis, tha e a’ cur casg air cuir às don ghoireas gus an tèid “glanadh” de na goireasan cothromachaidh iomchaidh uile a chrìochnachadh.
Inneal API
Tha an fhìor “chlach-mhìle stèidheachaidh” ann an raon frithealaiche Kubernetes API agus eadar-obrachadh leis. Thachair seo gu ìre mhòr mar thoradh air gluasad gu inbhe seasmhach an fheadhainn aig nach eil feum air ro-ràdh sònraichte (CRD), aig a bheil inbhe beta bho làithean fad às de Kubernetes 1.7 (agus is e seo Ògmhios 2017!). Thàinig an aon seasmhachd gu na feartan co-cheangailte:
- le
/statusи/scaleairson CustomResources; - dreachan airson CRD, stèidhichte air duilleag-lìn taobh a-muigh;
- (ann an K8s 1.15) luachan bunaiteach (bunaiteach) agus toirt air falbh achaidhean gu fèin-ghluasadach (pruning) airson CustomResources;
- a’ cleachdadh sgeama OpenAPI v3 gus sgrìobhainnean OpenAPI a chruthachadh agus fhoillseachadh a chleachdar gus goireasan CRD a dhearbhadh air taobh an fhrithealaiche.
Inneal eile a tha air a bhith eòlach o chionn fhada do luchd-rianachd Kubernetes: - cuideachd air fuireach ann an inbhe beta airson ùine mhòr (bho K8s 1.9) agus tha e a-nis air ainmeachadh seasmhach.
Tha dà fheart eile air ruighinn beta: и .
Agus b 'e an aon ùr-ghnàthachadh cudromach anns an tionndadh alpha от SelfLink - URI sònraichte a’ riochdachadh an nì ainmichte agus a bhith mar phàirt dheth ObjectMeta и ListMeta (ie pàirt de nì sam bith ann an Kubernetes). Carson a tha iad ga thrèigsinn? Brosnachadh ann an dòigh shìmplidh leis nach eil fìor adhbharan (uamhasach) ann airson an raon seo a bhith ann fhathast. Is e adhbharan nas foirmeile coileanadh a bharrachadh (le bhith a’ toirt air falbh raon neo-riatanach) agus obair an t-seòrsa-apiserver a dhèanamh nas sìmplidhe, a dh’ fheumas a leithid de raon a làimhseachadh ann an dòigh shònraichte (is e seo an aon raon a tha air a shuidheachadh dìreach ron nì. air an t-sreath). Fìor obsolescence (taobh a-staigh beta) SelfLink tachairt le dreach Kubernetes 1.20, agus mu dheireadh - 1.21.
Stòradh dàta
Thathas a’ cumail sùil air a’ phrìomh obair ann an raon stòraidh, mar a bha ann am fiosan roimhe, san sgìre . B’ iad na prìomh atharrachaidhean an seo:
- airson a’ chiad uair (ann an tionndadh alpha) Taic plugan CSI airson nodan neach-obrach Windows: bidh an dòigh-obrach a th’ ann an-dràsta le stòradh cuideachd a’ dol an àite plugins in-craobh ann an cridhe Kubernetes agus plugins FlexVolume bho Microsoft stèidhichte air Powershell;

Sgeama airson plugins CSI a chuir an gnìomh ann an Kubernetes airson Windows - cothrom , air a thoirt a-steach air ais ann an K8s 1.12, air fàs gu dreach beta;
- Chaidh “adhartachadh” coltach ris (bho alpha gu beta) a choileanadh leis a’ chomas CSI a chleachdadh gus meudan geàrr-ùine ionadail a chruthachadh ().
Air a thoirt a-steach san dreach roimhe de Kubernetes (a’ cleachdadh PVC a th’ ann mar-thà mar DataSource gus PVC ùr a chruthachadh) cuideachd air inbhe beta fhaighinn.
Clàr-ama
Dà atharrachadh sònraichte air clàradh (an dà chuid ann an alpha):
- - cothrom cleachd pods an àite aonadan tagraidh loidsigeach airson “sgaoileadh cothromach” luchdan (mar Cleachdadh agus ReplicaSet) agus ag atharrachadh an t-sgaoilidh seo (mar riatanas cruaidh no mar staid bhog, ie prìomhachas). Leudaichidh am feart na comasan cuairteachaidh a th’ ann mu thràth de pods dealbhaichte, an-dràsta cuibhrichte le roghainnean
PodAffinityиPodAntiAffinity, a’ toirt smachd nas fheàrr do luchd-rianachd air a’ chùis seo, a tha a’ ciallachadh ruigsinneachd àrd nas fheàrr agus caitheamh ghoireasan as fheàrr. Mion-fhiosrachadh - a-steach . - Cleachd Poileasaidh BestFit в RequestedToCapacityRatio Gnìomh prìomhachais rè planadh pod, a leigeas cur a-steach (“ pacadh ann an soithichean ”) airson gach cuid goireasan bunaiteach (pròiseasaran, cuimhne) agus feadhainn leudaichte (mar GPU). Airson tuilleadh fiosrachaidh, faic .

Podan clàrachaidh: mus cleachd thu am poileasaidh iomchaidh (gu dìreach tron chlàr-ama bunaiteach) agus le bhith ga chleachdadh (tro neach-leudachaidh clàr-ama)
A bharrachd air sin, an comas na plugins clàr-ama agad fhèin a chruthachadh taobh a-muigh prìomh chraobh leasachaidh Kubernetes (taobh a-muigh na craoibhe).
Atharraichean eile
Cuideachd anns an fhoillseachadh Kubernetes 1.16 faodar a thoirt fa-near iomairt airson metrics rim faighinn ann an làn òrdugh, no nas mionaidiche, a rèir gu inneal-ciùil K8s. Tha iad gu ìre mhòr an urra ris a 'cho-fhreagairt . Dh ’èirich neo-chunbhalachd airson diofar adhbharan (mar eisimpleir, chaidh cuid de mheatairean a chruthachadh dìreach mus do nochd an stiùireadh gnàthach), agus cho-dhùin an luchd-leasachaidh gu robh an t-àm ann a h-uile càil a thoirt gu aon ìre,“ a rèir a ’chòrr de eag-shiostam Prometheus.” Tha buileachadh na h-iomairt seo ann an inbhe alpha, a thèid a bhrosnachadh mean air mhean ann an dreachan às deidh sin de Kubernetes gu beta (1.17) agus seasmhach (1.18).
A bharrachd air an sin, faodar na h-atharrachaidhean a leanas a thoirt fa-near:
- Windows a’ toirt taic do leasachadh с Goireasan Kubeadm airson an OS seo (dreach alpha),
RunAsUserNameairson soithichean Windows (dreach alpha), Taic Cunntas Seirbheis Stiùirichte Buidhne (gMSA) suas gu dreach beta, cuir suas / ceangail airson leabhraichean vSphere. - uidheamachd teannachaidh dàta ann am freagairtean API. Roimhe sin, chaidh criathrag HTTP a chleachdadh airson na h-adhbharan sin, a chuir grunn chuingealachaidhean an sàs a chuir casg air bho bhith air a chomasachadh gu bunaiteach. Tha “dlùthadh iarrtas follaiseach” a-nis ag obair: teachdaichean a’ cur
Accept-Encoding: gzipanns a’ bhann-cinn, gheibh iad freagairt co-dhlùthaichte GZIP ma tha a mheud nas àirde na 128 KB. Bidh teachdaichean Go gu fèin-ghluasadach a’ toirt taic do dhlùthadh (a ’cur a’ chinn a tha a dhìth), gus am faic iad sa bhad lùghdachadh ann an trafaic. (Dh’ fhaodadh gum bi feum air atharrachaidhean beaga airson cànanan eile.) - sgèileadh HPA bho / gu pods neoni stèidhichte air meatrach taobh a-muigh. Ma nì thu sgèile stèidhichte air nithean / meatrach taobh a-muigh, an uairsin nuair a tha eallach obrach leisg faodaidh tu sgèileadh gu fèin-ghluasadach gu 0 mac-samhail gus goireasan a shàbhaladh. Bu chòir am feart seo a bhith gu sònraichte feumail airson cùisean far a bheil luchd-obrach ag iarraidh goireasan GPU, agus gu bheil an àireamh de dhiofar sheòrsaichean de luchd-obrach leisg nas àirde na an àireamh de GPUs a tha rim faighinn.
- Cliant ùr - - airson ruigsinneachd “coitcheann” air nithean. Tha e air a dhealbhadh gus meata-dàta fhaighinn air ais gu furasta (i.e. fo-earrann
metadata) bho ghoireasan cnuasachaidh agus a’ dèanamh obair cruinneachadh sgudail agus cuota còmhla riutha. - Tog Kubernetes às aonais dìleab ("togte" in-craobh) solaraichean sgòthan (dreach alpha).
- Gu goireas kubeadm comas deuchainneach (dreach alpha) gus pìosan gnàthaichte a chuir an sàs rè gnìomhachd
init,joinиupgrade. Ionnsaich tuilleadh mu mar a chleachdas tu am bratach--experimental-kustomize, faic anns . - Puing crìochnachaidh ùr airson apiserver - , - a 'leigeil leat às-mhalairt fiosrachadh mu cho deònach' sa tha e. Tha bratach aig an t-seirbheisiche API a-nis
--maximum-startup-sequence-duration, a 'toirt cothrom dhut ath-thòiseachadh a riaghladh. - Dà feartan airson Azure dhearbh seasmhach: support (Sònaichean ri fhaotainn) agus (RG). A bharrachd air an sin, tha Azure air na leanas a chuir ris:
- AAD agus ADFS;
-
service.beta.kubernetes.io/azure-pip-namegus IP poblach an neach-cothromachaidh luchdan a shònrachadh; - suidheachaidhean
LoadBalancerNameиLoadBalancerResourceGroup.
- Tha aig AWS a-nis airson EBS air Windows agus EC2 gairmean API
DescribeInstances. - Tha Kubeadm a-nis neo-eisimeileach rèiteachadh CoreDNS nuair a bhios tu ag ùrachadh an tionndadh CoreDNS.
- Binaries etc anns an ìomhaigh Docker co-fhreagarrach world-excutable, a leigeas leat an ìomhaigh seo a ruith gun fheum air còraichean freumha. Cuideachd, ìomhaigh imrich etcd taic tionndadh etcd2.
- В tionndadh gu bhith a’ cleachdadh distroless mar an ìomhaigh bhunaiteach, coileanadh nas fheàrr, chuir solaraichean sgòthan ùra ris (DigitalOcean, Magnum, Packet).
- Ùrachaidhean ann am bathar-bog cleachdte / eisimeil: Rach 1.12.9, etcd 3.3.15, CoreDNS 1.6.2.
PS
Leugh cuideachd air ar blog:
- «";
- «";
- «";
- «".
Source: www.habr.com


