Kubernetes 1.17: Uchafbwyntiau o'r hyn sy'n newydd

Ddoe, Rhagfyr 9, ddigwyddodd datganiad nesaf Kubernetes - 1.17. Yn ôl y traddodiad sydd wedi datblygu ar gyfer ein blog, rydym yn siarad am y newidiadau mwyaf arwyddocaol yn y fersiwn newydd.

Kubernetes 1.17: Uchafbwyntiau o'r hyn sy'n newydd

Daw’r wybodaeth a ddefnyddiwyd i baratoi’r deunydd hwn o’r cyhoeddiad swyddogol, Tablau olrhain gwelliannau Kubernetes, CHANGELOG-1.17 a materion cysylltiedig, ceisiadau tynnu, a Chynigion Gwella Kubernetes (KEP). Felly, beth sy'n newydd?..

Llwybro sy'n ymwybodol o dopoleg

Mae cymuned Kubernetes wedi bod yn aros am y nodwedd hon ers amser maith - Llwybro gwasanaeth sy'n ymwybodol o dopoleg. Os CAP mae'n tarddu ym mis Hydref 2018, a'r swyddogol gwella - 2 flynedd yn ôl, y materion arferol (fel o hyn) - ac ychydig flynyddoedd yn hŷn ...

Y syniad cyffredinol yw darparu'r gallu i weithredu llwybro “lleol” ar gyfer gwasanaethau sy'n byw yn Kubernetes. Mae “ardal” yn yr achos hwn yn golygu “yr un lefel topolegol” (lefel topoleg), a all fod yn:

  • nod union yr un fath ar gyfer gwasanaethau,
  • yr un rac gweinydd,
  • yr un rhanbarth
  • yr un darparwr cwmwl,
  • ...

Enghreifftiau o ddefnyddio'r nodwedd hon:

  • arbedion ar draffig mewn gosodiadau cwmwl gyda pharthau argaeledd lluosog (aml-AZ) - gweler. darluniad ffres defnyddio'r enghraifft o draffig o'r un rhanbarth, ond gwahanol AZ yn AWS;
  • perfformiad cudd is/gwell trwybwn;
  • gwasanaeth wedi'i dorri'n ddarnau sydd â gwybodaeth leol am y nod ym mhob darn;
  • lleoli rhugl (neu analogau) ar yr un nod gyda'r cymwysiadau y mae eu logiau'n cael eu casglu;
  • ...

Gelwir llwybro o'r fath, sy'n “gwybod” am y topoleg, hefyd yn affinedd rhwydwaith - trwy gyfatebiaeth â affinedd nod, affinedd pod/gwrth-affinedd neu ymddangosodd ddim mor bell yn ôl Amserlennu Cyfrol Ymwybodol o Topoleg (a Darpariaeth Cyfrol). Lefel gweithredu presennol ServiceTopology yn Kubernetes - fersiwn alffa.

I gael manylion am sut mae'r nodwedd yn gweithio a sut y gallwch chi ei defnyddio eisoes, darllenwch Mae'r erthygl hon yn gan un o'r awduron.

Cefnogaeth pentwr deuol IPv4 / IPv6

Cynnydd sylweddol sefydlog mewn nodwedd rhwydwaith arall: cefnogaeth ar yr un pryd ar gyfer dau bentwr IP, a gyflwynwyd gyntaf yn K8s 1.16. Yn benodol, daeth y datganiad newydd â'r newidiadau canlynol:

  • mewn ciwb-procsi gweithredu posibilrwydd o weithredu ar yr un pryd yn y ddau fodd (IPv4 a IPv6);
  • в Pod.Status.PodIPs ymddangos cefnogaeth ar gyfer API i lawr (ar yr un pryd ag yn /etc/hosts nawr mae angen i'r gwesteiwr ychwanegu cyfeiriad IPv6);
  • cymorth pentwr deuol FATH (Kubernetes IN Docker) a kubeadm;
  • profion e2e wedi'u diweddaru.

Kubernetes 1.17: Uchafbwyntiau o'r hyn sy'n newydd
Darlun gan ddefnyddio pentwr deuol IPV4/IPv6 mewn KIND

Cynnydd ar DPC

Wedi'i ddatgan yn sefydlog cymorth topoleg ar gyfer storio sy'n seiliedig ar CSI, a gyflwynwyd gyntaf yn K8s 1.12.

Menter ar gyfer mudo ategion cyfaint i CSI - CSI Mudo - cyrraedd fersiwn beta. Mae'r nodwedd hon yn hanfodol er mwyn cyfieithu ategion storio presennol (yn y goeden) i ryngwyneb modern (CSI, tu allan i'r goeden) anweledig i ddefnyddwyr terfynol Kubernetes. Dim ond CSI Migration y bydd angen i weinyddwyr clwstwr ei alluogi, ac ar ôl hynny bydd yr adnoddau a'r llwythi gwaith nodedig presennol yn parhau i “ddim ond yn gweithio”... ond gan ddefnyddio'r gyrwyr CSI diweddaraf yn lle'r rhai hen ffasiwn sydd wedi'u cynnwys yng nghraidd Kubernetes.

Ar hyn o bryd, mae mudo ar gyfer gyrwyr AWS EBS yn barod mewn fersiwn beta (kubernetes.io/aws-ebs) a TAG PD (kubernetes.io/gce-pd). Mae'r rhagolygon ar gyfer cyfleusterau storio eraill fel a ganlyn:

Kubernetes 1.17: Uchafbwyntiau o'r hyn sy'n newydd

Buom yn siarad am sut y daeth cymorth storio “traddodiadol” mewn K8s i CSI i mewn Mae'r erthygl hon yn. Ac mae trosglwyddo mudo CSI i statws beta yn ymroddedig i cyhoeddiad ar wahân ar blog y prosiect.

Yn ogystal, cyrhaeddodd swyddogaeth arwyddocaol arall yng nghyd-destun CSI, sy'n tarddu (gweithredu alffa) yn K1.17s 8, statws beta (h.y. wedi'i alluogi yn ddiofyn) yn natganiad Kubernetes 1.12 - creu cipluniau ac adferiad oddi wrthynt. Ymhlith y newidiadau a wnaed i Kubernetes Volume Snapshot ar y ffordd i ryddhau beta:

  • rhannu'r car ochr ciplun allanol CSI yn ddau reolwr,
  • gyfrinach ychwanegol i'w dileu (cyfrinach dileu) fel anodiad i gynnwys ciplun cyfrol,
  • terfynwr newydd (terfynol) i atal y gwrthrych API ciplun rhag cael ei ddileu os oes cysylltiadau yn weddill.

Ar adeg rhyddhau 1.17, cefnogir y nodwedd gan dri gyrrwr CSI: Gyrrwr CSI Disg Parhaus TAG, Gyrrwr CSI Portworx a Gyrrwr CSI NetApp Trident. Ceir rhagor o fanylion am ei weithrediad a’i ddefnydd yn y cyhoeddiad hwn ar y blog.

Labeli Darparwr Cwmwl

Labeli sy'n awtomatig wedi'i neilltuo i nodau a chyfeintiau a grëwyd yn dibynnu ar y darparwr cwmwl a ddefnyddir, wedi bod ar gael yn Kubernetes fel fersiwn beta ers amser maith - ers rhyddhau K8s 1.2 (Ebrill 2016!). O ystyried eu defnydd eang am gymaint o amser, datblygwyr penderfynwyd, ei bod yn bryd datgan y nodwedd yn sefydlog (GA).

Felly, cawsant eu hail-enwi yn unol â hynny (yn ôl topoleg):

  • beta.kubernetes.io/instance-typenode.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zonetopology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/regiontopology.kubernetes.io/region

... ond yn dal i fod ar gael o dan eu hen enwau (am yn ôl cydnawsedd). Fodd bynnag, argymhellir bod pob gweinyddwr yn newid i labeli cyfredol. Dogfennau Cysylltiedig Mae K8s wedi'u diweddaru.

Allbwn strwythuredig o kubeadm

Wedi'i gyflwyno mewn fersiwn alffa am y tro cyntaf allbwn strwythuredig ar gyfer y cyfleustodau kubeadm. Fformatau â chymorth: JSON, YAML, templed Go.

Cymhelliant i weithredu'r nodwedd hon (yn ôl CAP) yw:

Er y gellir defnyddio Kubernetes â llaw, y safon de facto (os nad de jure) ar gyfer y llawdriniaeth hon yw defnyddio kubeadm. Mae offer rheoli systemau poblogaidd fel Terraform yn dibynnu ar kubeadm ar gyfer defnyddio Kubernetes. Mae gwelliannau arfaethedig i'r API Clwstwr yn cynnwys pecyn cyfansawdd ar gyfer Kubernetes bootstrapping gyda kubeadm a cloud-init.

Heb allbwn strwythuredig, gall hyd yn oed y newidiadau mwyaf diniwed ar yr olwg gyntaf dorri Terraform, Cluster API a meddalwedd arall sy'n defnyddio canlyniadau kubeadm.

Mae ein cynlluniau uniongyrchol yn cynnwys cefnogaeth (ar ffurf allbwn strwythuredig) ar gyfer y gorchmynion kubeadm canlynol:

  • alpha certs
  • config images list
  • init
  • token create
  • token list
  • upgrade plan
  • version

Darlun o ymateb JSON i orchymyn 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": "The default bootstrap token generated by 'kubeadm init'.",
    "extraGroups": [
      "system:bootstrappers:kubeadm:default-node-token"
    ]
  },
  "raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}

Sefydlogi arloesiadau eraill

Yn gyffredinol, rhyddhawyd Kubernetes 1.17 o dan yr arwyddair “Sefydlogrwydd" Hwyluswyd hyn gan y ffaith bod llawer o nodweddion ynddo (cyfanswm eu nifer yw 14) wedi derbyn statws GA. Yn eu plith:

Newidiadau eraill

Nid yw'r rhestr lawn o ddatblygiadau arloesol yn Kubernetes 1.17, wrth gwrs, yn gyfyngedig i'r rhai a restrir uchod. Dyma rai eraill (ac am restr fwy cyflawn, gw CHANGELOG):

  • Mae'r nodwedd a gyflwynwyd yn y datganiad diwethaf wedi cyrraedd y fersiwn beta RunAsUserName ar gyfer ffenestri;
  • newid tebyg digwyddodd API EndpointSlice (hefyd o K8s 1.16), fodd bynnag am y tro nid yw'r datrysiad hwn i wella perfformiad / graddadwyedd yr API Endpoint wedi'i alluogi yn ddiofyn;
  • mae codennau bellach yn hanfodol ar gyfer gweithrediad clwstwr gellir ei greu nid yn unig mewn gofodau enwau kube-system (am fanylion, gweler y ddogfennaeth ar gyfer Cyfyngu defnydd Dosbarth Blaenoriaeth);
  • opsiwn newydd ar gyfer kubelet - --reserved-cpus — yn caniatáu ichi ddiffinio'n benodol y rhestr o CPUs a gedwir ar gyfer y system;
  • gyfer kubectl logs wedi'i gyflwyno baner newydd --prefix, gan ychwanegu enw'r pod a'r cynhwysydd ffynhonnell i bob llinell o'r log;
  • в label.Selector wedi adio RequiresExactMatch;
  • pob cynhwysydd mewn kube-dns yn rhedeg yn awr gyda llai o freintiau;
  • hyperciwb wedi'i wahanu i gadwrfa GitHub ar wahân ac ni fydd bellach yn cael ei chynnwys yn natganiadau Kubernetes;
  • llawer perfformiad gwell kube-proxy ar gyfer porthladdoedd nad ydynt yn CDU.

Newidiadau dibyniaeth:

  • Fersiwn CoreDNS a gynhwysir yn kubeadm yw 1.6.5;
  • fersiwn crictl wedi'i diweddaru i v1.16.1;
  • DPC 1.2.0;
  • etcd 3.4.3;
  • Uwchraddiwyd fersiwn diweddaraf y Docker i 19.03;
  • Y fersiwn Go leiaf sy'n ofynnol i adeiladu Kubernetes 1.17 yw 1.13.4.

PS

Darllenwch hefyd ar ein blog:

Ffynhonnell: hab.com

Ychwanegu sylw