Dje, mĂ« 9 dhjetor, u lançua njĂ« version i ri i Kubernetes â 1.17. Siç Ă«shtĂ« tradita pĂ«r blogun tonĂ«, ne do tĂ« flasim pĂ«r ndryshimet mĂ« tĂ« rĂ«ndĂ«sishme nĂ« kĂ«tĂ« version tĂ« ri.

Informacioni i përdorur për përgatitjen e këtij materiali është marrë nga njoftimi zyrtar, , dhe çështjet, kërkesat për tërheqje si dhe Propozimet e Përmirësimit të Kubernetes (KEP). Pra, çfarë është e re?..
Routing me njohje të topologjisë
Kjo karakteristikĂ« Ă«shtĂ« pritur pĂ«r njĂ« periudhĂ« tĂ« gjatĂ« nĂ« komunitetin e Kubernetes â Routing i shĂ«rbimeve nĂ« pĂ«rputhje me topologjinĂ«. NĂ«se ka filluar qĂ« nĂ« tetor 2018, dhe pĂ«rmirĂ«simi zyrtar (si kanĂ« qenĂ« madje edhe mĂ« tĂ« vjetra disa vjet mĂ« parĂ«âŠ). ) Ideja kryesore Ă«shtĂ« tĂ« ofrojĂ« mundĂ«sinĂ« e realizimit tĂ« routing-ut "lokal" pĂ«r shĂ«rbimet qĂ« ndodhen nĂ« Kubernetes. "Lokaliteti" nĂ« kĂ«tĂ« rast do tĂ« thotĂ« "nĂ« tĂ« njĂ«jtin nivel topologjik"
(niveli i topologjisë) , i cili mund të jetë:i njëjtë për shërbimet e nodit,
- i njëjtë për raftin e serverit,
- i njëjtë për rajonin,
- i njëjtë për ofruesin e shërbimeve në cloud,
- shembuj të përdorimit të kësaj karakteristike:
- âŠ
kursimi i trafikut nĂ« instalime cloud me zona tĂ« shumta tĂ« disponueshmĂ«risĂ« (multi-AZ) â shih.
- ilustrimin e ri vonesa më të ulta në performancë / kapacitet më të mirë;
- shërbimi i sharduar, i cili ka informacion lokal mbi nodin në secilin shard;
- vendosja e fluentd (ose ekuivalenteve) në një nod me aplikacionet, logjet e të cilave mblidhen;
- Ky routing, i njohur pĂ«r topologjinĂ«, njihet gjithashtu si afinitet i rrjetit â nĂ« pĂ«rputhje me
- âŠ
afiniteti i nodit , jo shumë kohë më parë (dhe ServiceTopology në Kubernetes është në versionin alfa. Për detaje mbi mënyrën se si është e organizuar kjo karakteristikë dhe si mund të shfrytëzohet tashmë, lexoni në
nga një nga autorët. Mbështetje për stack të dyfishtë IPv4 / IPv6
Përparim i rëndësishëm
është regjistruar K8s 1.16 në kube-proxy
- mundësia e punës së njëkohshme në të dy modet (IPv4 dhe IPv6); Pod.Status.PodIPs
- në
mbështetje të API-së duke zbritur (në të njëjtën kohë kërkon që për hostin të shtohet gjithashtu adresa IPv6);mbështetje për dy stack-e në/etc/hostsKIND - (Kubernetes IN Docker) dhe dhe ;
- testet e rifreskuara e2e.

përdorimi i dyfishtë i stekëve IPV4/IPv6 në KIND
Progresi në CSI
Deklarohet e stabilizuar për dependet e bazuara në CSI, e prezantuar për herë të parë në .
Iniciativa pĂ«r migruerĂ«t e pluginĂ«ve tĂ« volumit nĂ« CSI â Ă«shtĂ« arritur nĂ« versionin beta. Kjo veçori Ă«shtĂ« kritike pĂ«r tĂ« transferuar pluginĂ«t ekzistues tĂ« depove (in-tree) nĂ« ndĂ«rfaqen moderne (CSI, out-of-tree) pa u vĂ«nĂ« re nga pĂ«rdoruesit pĂ«rfundimtarĂ« tĂ« Kubernetes. AdministratorĂ«t e klasterĂ«ve do tĂ« kenĂ« nevojĂ« vetĂ«m tĂ« aktivizojnĂ« Migruerjen CSI, pas sĂ« cilĂ«s burimet stateful ekzistuese dhe ngarkesat punuese do tĂ« «funksionojnë» si mĂ« parë⊠por tashmĂ« me pĂ«rdorimin e drejtuesve tĂ« rinj CSI nĂ« vend tĂ« atyre tĂ« vjetra, qĂ« janĂ« pjesĂ« e bĂ«rthamĂ«s sĂ« Kubernetes.
Aktualisht, me statusin beta, është e gatshme migruerja për drejtuesit AWS EBS (kubernetes.io/aws-ebs) dhe GCE PD (kubernetes.io/gce-pd). Parashikimet për depë të tjera janë si më poshtë:

Rreth asaj se si mbështetje «tradicionale» për depët në K8s erdhi te CSI, ne kemi folur në . Për kalimin e migruerjes CSI në statusin beta i është kushtuar në blogun e projektit.
PĂ«rveç kĂ«saj, statusi beta (d.m.th. aktivizimi si parazgjedhje) nĂ« versionin Kubernetes 1.17 u arrit pĂ«r njĂ« tjetĂ«r funksionalitet tĂ« rĂ«ndĂ«sishĂ«m nĂ« kontekstin e CSI, qĂ« ka origjinĂ«n e saj (implementimin alfa) nĂ« K8s 1.12, â dhe rikuperimi prej tyre. NdĂ«r ndryshimet e realizuara nĂ« Kubernetes Volume Snapshot nĂ« rrugĂ«n drejt versionit beta:
- ndarja e sidecar-it CSI external-snapshotter në dy kontrolerë,
- është shtuar një sekret për fshirje (deletion secret) si një aneks në përmbajtjen e snapshot-it të volumit,
- një finalizues të ri (finalizer) për të parandaluar fshirjen e API-obejktit të snapshot-it në prani të lidhjeve të mbetura.
Në momentin e lëshimit 1.17, veçoria mbështetet për tri drejtuesit CSI: GCE Persistent Disk CSI Driver, Portworx CSI Driver dhe NetApp Trident CSI Driver. Më shumë rreth realizimit dhe përdorimit të saj mund të lexoni në në blogun.
Etiketat e Shërbimit të Renë
Etiketat, tĂ« cilat automatikisht caktohen nĂ« nodet dhe volumet e krijuara sipas ofruesit tĂ« obligueshĂ«m,kanĂ« qenĂ« tĂ« disponueshme nĂ« Kubernetes si version beta pĂ«r shumĂ« kohĂ« â qĂ« nga lĂ«shimi i K8s 1.2 (prill 2016!). Duke marrĂ« parasysh pĂ«rdorimin e gjerĂ« pĂ«r aq kohĂ«, zhvilluesit , e konsideruan kohĂ«n pĂ«r tĂ« shpallur veçorinĂ« si tĂ« qĂ«ndrueshme (GA).
Prandaj, të gjitha ato janë rinovuar në mënyrë përkatëse (sipër topologjive):
-
beta.kubernetes.io/instance-typeânode.kubernetes.io/instance-type -
failure-domain.beta.kubernetes.io/zoneâtopology.kubernetes.io/zone -
failure-domain.beta.kubernetes.io/regionâtopology.kubernetes.io/region
⊠por ende, ato është ende e disponueshme me emrat e saj të vjetër (për qëllime bashkëpunimi). Sidoqoftë, të gjithë administratorët gjithmonë inkurajohen të kalojnë në etiketat aktuale. K8s është përditësuar.
Deklarim i strukturuar kubeadm
Në formatin alpha të paraqitur për herë të parë . Format e mbështetura: JSON, YAML, Go-shabllon.
Motivimi për zbatimin e kësaj veçorie (sipër ) është si vijon:
Edhe pse Kubernetes mund të jetë i instaluar manualisht, standardi de facto (nëse jo de jure) për këtë operacion është përdorimi i kubeadm. Veglat e njohura për menaxhimin e sistemeve, si Terraform, mbështeten në kubeadm për të vendosur Kubernetes. Përmirësime të planifikuara në Cluster API përfshijnë një paketë të përbërë për bootstrapping të Kubernetes me kubeadm dhe cloud-init.
Pa një deklarim të strukturuar, edhe ndryshimet më të padëmshme mund të thyejnë Terraform, Cluster API, dhe softuerë të tjerë që përdorin rezultatet e punës së kubeadm.
Planet afatshkurtë janë mbështetje (në formën e deklarimit të strukturuar) për komandat e mëposhtme kubeadm:
-
alpha certs -
config images list -
procesi -
token create -
token list -
upgrade plan -
version
Ilustrimi i përgjigjes JSON për komandën kubeadm init -o json:
{
"node0": "192.168.20.51:443",
"caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
"token": {
"id": "5ndzuu.ngie1sxkgielfpb1",
"ttl": "23h",
"expires": "2019-05-08T18:58:07Z",
"usages": [
"authentication",
"signing"
],
"description": "Token i parazgjedhur bootstrap i generuar nga 'kubeadm init'.",
"extraGroups": [
"system:bootstrappers:kubeadm:default-node-token"
]
},
"raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}Stabilizimi i risive të tjera
Përgjithësisht, lëshimi i Kubernetes 1.17 u realizua nën devizën "Qëndrueshmëria". Kjo u nxit nga fakti se shumë risive në të (numri i tyre total - 14) morën statusin GA. Ndër to:
- "shënimi" i nodëve sipas kushteve të caktuara (), e cila u shfaq në ;
- â njĂ« lloj i ri ngjarjesh, i cili ka etiketa, qĂ« tregon se tĂ« gjitha objektet deri nĂ« njĂ« version tĂ« caktuar (
resourceVersion) janë përpunuar tashmë nga watch; - (defaulting) për Burime të Personalizuara;
- në namespaces e procesit pod;
-
ScheduleDaemonSetPodsâ pĂ«rdorimin e kube-scheduler (nĂ« vend tĂ« kontrollit tĂ« DaemonSet); - nĂ« numrin e volumeve nĂ« varĂ«si tĂ« llojit tĂ« nodit;
- për emrat e drejtorive, të montuara si
subPath; - në API-në e specializuar Lease;
- «mbrojtja e finalizatorit» () për balancuesit e ngarkesës (kontrolli i burimeve të përshtatshme të Shërbimit para se të hiqen burimet e LoadBalancer-it);
- nĂ« performancĂ« kur punon me shumĂ« watches, qĂ« vĂ«zhgojnĂ« grupe identike objektesh, â arrihet duke shmangur serializimin e pĂ«rsĂ«ritur tĂ« tĂ« njĂ«jtave objekte pĂ«r çdo watcher.
Ndryshime të tjera
Lista e plotĂ« e risive nĂ« Kubernetes 1.17 natyrisht nuk kufizohet vetĂ«m nĂ« ato tĂ« pĂ«rmendura mĂ« sipĂ«r. Ja disa tĂ« tjera nga to (pĂ«r njĂ« listĂ« mĂ« tĂ« plotĂ« â shih ):
- karakteristika e paraqitur në rreshtin e kaluar arriti në beta-version ;
- ndryshim i ngjashëm API EndpointSlice (po ashtu nga K8s 1.16), megjithatë zgjidhja këtë për përmirësimin e performancës/është përmirësuar e API-së së Endpointit nuk është aktivizuar si parazgjedhje;
- pod-at kritikë për funksionimin e klasterit tani jo vetëm në hapësirat e emrave
kubectl -n kube-system edit cm kubelet-config-1.16(detajet shih nĂ« dokumentacionin pĂ«r ); - opcion i ri pĂ«r kubelet â â lejon tĂ« pĂ«rcaktohet qartazi lista e CPU-ve tĂ« rezervuara pĂ«r sistemin;
- për
kubectl logsflamuri i ri--prefix, duke shtuar emrin e pod-it dhe kontejnerit burim në çdo rresht të logut; - në
label.SelectorRequiresExactMatch; - të gjitha kontejnerët në kube-dns me privilegje më të ulëta;
- të ndara në një repozitor të veçantë GitHub dhe nuk do të përfshihen më në versionet e Kubernetes;
- duke kube-proxy për porte jo-UDP.
Ndryshimet në varësi:
- versioni CoreDNS nĂ« kubeadm â 1.6.5;
- versioni i crictl është përditësuar deri në v1.16.1;
- CSI 1.2.0;
- etcd 3.4.3;
- versioni i fundit i verifikuar i Docker u rrit në 19.03;
- versioni minimal i Go-së, i kërkuar për ndërtimin e Kubernetes 1.17, është 1.13.4.
P.S.
Lexoni gjithashtu në blogun tonë:
- «»;
- «»;
- «»;
- «».
Burimi: habr.com
