Kubernetes 1.14: giştpirsiya nûbûnên sereke

Kubernetes 1.14: giştpirsiya nûbûnên sereke

Vê şevê dê pêk were serbestberdana din a Kubernetes - 1.14. Li gorî kevneşopiya ku ji bo bloga me pêş ketiye, em li ser guhertoyên sereke yên di guhertoya nû ya vê hilbera Çavkaniya Vekirî ya hêja de diaxivin.

Agahiyên ku ji bo amadekirina vê materyalê têne bikar anîn ji têne girtin Tabloyên şopandina pêşkeftinên Kubernetes, GUHERIN-1.14 û pirsgirêkên têkildar, daxwazên kişandinê, Pêşniyarên Zêdekirina Kubernetes (KEP).

Werin em bi destpêkek girîng ji SIG cluster-lifecycle dest pê bikin: komên failover dînamîk Kubernetes (an jî rasttir be, bicîhkirina HA-ya xwe-mêvandar) naha ye dikare were afirandin bikaranîna fermanên naskirî (di çarçoveya komikên yek-nodê de). kubeadm (init и join). Bi kurtasî, ji bo vê:

  • sertîfîkayên ku ji hêla komê ve têne bikar anîn veguhezîne nehêniyan;
  • ji bo îhtîmala karanîna komika etcd di hundurê koma K8s de (ango xilasbûna ji pêwendiya derveyî ya berê ya heyî) etcd-operator;
  • Mîhengên pêşniyarkirî yên ji bo balansek barkirinê ya derveyî ku mîhengek beredayî ya xelet peyda dike belge dike (di pêşerojê de tê plan kirin ku vê girêdayîbûnê ji holê rake, lê ne di vê qonaxê de).

Kubernetes 1.14: giştpirsiya nûbûnên sereke
Mîmariya komek Kubernetes HA ya ku bi kubeadm hatî afirandin

Hûrguliyên pêkanînê di nav de têne dîtin pêşniyara sêwiranê. Ev taybetmendî bi rastî demek dirêj bû: guhertoya alpha di K8s 1.9 de paşde dihat hêvîkirin, lê tenê nuha xuya bû.

API

tîma apply û bi gelemperî dipeyivin rêveberiya objeya ragihandinê derbas bû ji kubectl di apiserver de. Pêşdebir bixwe biryara xwe bi vê gotinê bi kurtî rave dikin kubectl apply - Parçeyek bingehîn a xebata bi mîhengan re li Kubernetes, lêbelê, "ew tijî xeletî ye û rastkirina wê dijwar e," û ji ber vê yekê pêdivî ye ku ev fonksiyona normal were vegerandin û veguhezîne balafira kontrolê. Nimûneyên hêsan û zelal ên pirsgirêkên ku îro hene:

Kubernetes 1.14: giştpirsiya nûbûnên sereke

Agahiyên derbarê pêkanînê de ne DEVIK. Amadebûna heyî alpha ye (pêşveçûna betayê ji bo serbestberdana din a Kubernetes tê plan kirin).

Di guhertoya alpha de peyda dibe fersend ji bo nexşeya OpenAPI v3 bikar bînin ji bo CustomResources belgeyên OpenAPI çêkirin û weşandin (CR) ji bo erêkirina (aliyê pêşkêşker) çavkaniyên-karhênerê diyarkirî yên K8 (CustomResourceDefinition, CRD) tê bikar anîn. Weşandina OpenAPI ji bo CRD destûrê dide xerîdaran (mînak. kubectl) erêkirinê li kêleka xwe (di nav kubectl create и kubectl apply) û li gorî nexşeyê belgeyan derxînin (kubectl explain). Details - in DEVIK.

Têketinên berê hene niha tên vekirin bi ala O_APPEND (lê na O_TRUNC) ji bo ku di hin rewşan de windabûna têketinê nehêlin û ji bo rehetiya qutkirina têketinên bi karûbarên derveyî yên ji bo zivirandinê.

Di heman demê de di çarçoveya Kubernetes API de, meriv dikare were zanîn ku di PodSandbox и PodSandboxStatus zêde kirin zevî runtime_handler ji bo tomarkirina agahiyên li ser RuntimeClass di binavê de (li ser wê di nivîsê de bêtir bixwînin Weşandina Kubernetes 1.12, ku ev çîn wekî guhertoyek alpha xuya bû), û di Webhooks Admission pêkanîn şiyana destnîşankirina kîjan versiyonên AdmissionReview ew piştgirî dikin. Di dawiyê de, qaîdeyên Admission Webhooks niha ne dikare bê sînorkirin radeya bikaranîna wan ji hêla nav û çarçoveyên komê ve.

Qelebalix

PersistentLocalVolumes, ku ji dema serbestberdanê ve xwediyê statûya beta bû K8s 1.10, başbûn stabîl (GA): ev deriyê taybetmendiyê êdî neçalak e û dê di Kubernetes 1.17 de were rakirin.

Fersend bikaranîna guherbarên jîngehê tê gotin Downward API (mînakî, navê pod) ji bo navên pelrêçan ên ku wekî hatine lêkirin subPath, hate pêşxistin - di forma qada nû de subPathExpr, ku niha ji bo destnîşankirina navê pelrêça xwestî tê bikar anîn. Taybetmendî di destpêkê de di Kubernetes 1.11 de xuya bû, lê ji bo 1.14 ew di rewşa guhertoya alpha de ma.

Mîna serbestberdana berê ya Kubernetes, gelek guhertinên girîng ji bo CSI-ya çalak a pêşkeftî (Navenda hilanîna konteyner) têne destnîşan kirin:

CSI

Berdest bû (wekî beşek ji guhertoya alpha) alîkarî ji bo cildên CSI veguherandin. Ji bo ku hûn wê bikar bînin hûn ê hewce bikin ku deriyê taybetmendiyê ku tê gotin çalak bikin ExpandCSIVolumes, û her weha hebûna piştgirî ji bo vê operasyonê di ajokerek taybetî ya CSI de.

Taybetmendiyek din ji bo CSI di guhertoya alpha de - fersend rasterast (ango bêyî karanîna PV/PVC) li cildên CSI-yê di hundurê taybetmendiya pod de binihêrin. Ev sînorkirina li ser karanîna CSI wekî hilanîna daneya bi taybetî ji dûr ve radike, deriyên cîhanê ji wan re vekir cildên efemeral herêmî. Ji bo bikaranînê (mînakek ji belgeyê) divê were çalak kirin CSIInlineVolume deriyê taybetmendiyê.

Di heman demê de pêşkeftinek di "navxweyî" yên Kubernetes-ê yên girêdayî CSI-yê de jî heye, ku ji bikarhênerên dawîn (rêvebirên pergalê) re ew qas xuya nabin… Niha, pêşdebiran neçar in ku du guhertoyên her pêveka hilanînê piştgirî bikin: yek - "di awayê kevn", di hundurê kodê K8s de (di -darê de), û ya duyemîn - wekî beşek ji CSI-ya nû (li ser wê bêtir bixwînin, mînakî, li vir). Ev dibe sedema nerehetiyên têgihîştî yên ku divê werin çareser kirin ji ber ku CSI bixwe stabîl dibe. Ne gengaz e ku meriv bi tenê API-ya pêvekên hundurîn (di nav darê de) ji ber vê yekê betal bike siyaseta Kubernetes têkildar.

Hemî ev bû sedem ku guhertoya alpha gihîştiye pêvajoya koçberiyê koda pêveka navxweyî, di pêvekên CSI de wekî hundurê darê hatî bicîh kirin, bi saya wê dê fikarên pêşdebiran ji piştgirîkirina yek guhertoya pêvekên wan kêm bibin, û hevahengiya bi API-yên kevn re dê bimîne û ew dikarin di senaryoya asayî de kevinbûyî bêne ragihandin. Tê çaverêkirin ku heya berdana din a Kubernetes (1.15) dê hemî pêvekên peydakerê cloudê werin veguheztin, pêkanîn dê statûya betayê werbigire û dê di sazkirinên K8s de ji hêla xwerû ve were çalak kirin. Ji bo hûrguliyan, binêre pêşniyara sêwiranê. Ev koçberî jî bi encam bû red kirin ji tixûbên volumê yên ku ji hêla pêşkêşkerên ewr ên taybetî ve hatine destnîşankirin (AWS, Azure, GCE, Cinder).

Wekî din, piştgirî ji bo amûrên blokê yên bi CSI (CSIBlockVolume) veguhestin ji bo guhertoya beta.

Nodes / Kubelet

Guhertoya Alpha pêşkêş kirin xala dawî ya nû li Kubelet, ji bo dîzaynkirin metrîkên li ser çavkaniyên sereke vedigerin. Bi gelemperî, heke berê Kubelet statîstîkên li ser karanîna konteynerê ji cAdvisor werdigirt, naha ev dane ji hawîrdora dema xebitandinê ya konteynerê bi navgîniya CRI (Navenda Runtime Container) tê, lê hevahengiya ji bo xebata bi guhertoyên kevntir ên Docker re jî tê parastin. Berê, statîstîkên ku li Kubelet hatine berhev kirin bi riya API-ya REST ve dihatin şandin, lê naha xalek dawiya ku li /metrics/resource/v1alpha1. Stratejiya demdirêj a pêşdebiran pêk tê ev e ku komek metrîkên ku ji hêla Kubelet ve hatî peyda kirin kêm bike. Bi awayê, ev metrics bixwe niha gazî dikin ne "metrîkên bingehîn", lê "metrîkên çavkaniyê", û wekî "çavkaniyên pola yekem, wekî cpu, û bîranîn" têne binav kirin.

Nîşanek pir balkêş: tevî ku sûdmendiya performansa zelal a xala dawiya gRPC li gorî rewşên cihêreng ên karanîna forma Prometheus (encama yek ji pîvanên jêrîn binêre), nivîskaran ji ber pêşengiya zelal a vê pergala şopandinê ya di civakê de, forma nivîsê ya Prometheus tercîh kirin.

"gRPC bi lûleyên çavdêriya sereke re ne hevaheng e. Endpoint dê tenê ji bo radestkirina metrîkan ji Servera Metrics an çavdêrîkirina hêmanên ku rasterast bi wê re têkildar in kêrhatî be. Performansa formata nivîsê ya Prometheus dema ku di Pêşkêşkara Metrics de caching bikar tîne bes baş ji bo ku em Prometheus li ser gRPC tercîh bikin ji ber pejirandina berfireh a Prometheus di civakê de. Gava ku formata OpenMetrics aramtir bibe, em ê karibin bi forma proto-based nêzîkê performansa gRPC bibin."

Kubernetes 1.14: giştpirsiya nûbûnên sereke
Yek ji ceribandinên performansa berawirdî ya karanîna gRPC û formatên Prometheus di xala dawî ya Kubelet ya nû de ji bo metrîkan. Zêdetir grafî û hûrguliyên din dikarin di nav de werin dîtin DEVIK.

Di nav guhertinên din de:

  • Kubelet niha (yek car) hewl dide ku bisekine konteyneran di rewşek nenas de berî ku operasyonan ji nû ve bidin destpêkirin û jêbirin.
  • Dema ku bikar bînin PodPresets niha li konteynera destpêkê zêdekirin heman agahdarî wekî ji bo konteynirek birêkûpêk.
  • kubelet dest bi kar kirin usageNanoCores ji pêşkêşvanê statîstîkên CRI, û ji bo nod û konteynerên li ser Windows zêde kirin statîstîkên torê.
  • Agahiyên pergala xebitandinê û mîmariyê naha di etîketan de têne tomar kirin kubernetes.io/os и kubernetes.io/arch Tiştên girêk (ji betayê berbi GA ve hatî veguheztin).
  • Qebûlbûna diyarkirina komek bikarhênerek pergalê ya taybetî ji bo konteynerên di binavê de (RunAsGroup, xuya bû K8s 1.11) pêşveçû berî betayê (ji hêla xwerû ve hatî çalak kirin).
  • du û bibînin ku di cAdvisor de têne bikar anîn, veguherandin li ser pêkanîna Go.

CLI

Di cli-runtime û kubectl de zêde kirin ala -k ji bo entegrasyonê bi xweş bike (bi awayê, pêşveçûna wê naha di depoyek veqetandî de tête kirin), ango. ji bo pêvajoykirina pelên YAML-ê yên din ji pelrêçikên kustomîzasyona taybetî (ji bo hûrguliyên li ser karanîna wan, binêre DEVIK):

Kubernetes 1.14: giştpirsiya nûbûnên sereke
Mînaka karanîna pelê ya hêsan takekskirina (serîlêdanek tevlihevtir a kustomize di hundurê de gengaz e overlays)

Her wiha:

  • Zêde kirin tîma nû kubectl create cronjob, ku navê wê ji bo xwe dipeyive.
  • В kubectl logs niha hûn dikarin hev kirin flags -f (--follow ji bo têketinên streaming) û -l (--selector ji bo pirsa labelê).
  • kubectl hîn kirin pelên kopî ji hêla qerta çolê ve hatî hilbijartin.
  • Ji tîmê re kubectl wait zêde kirin al --all ji bo bijartina hemî çavkaniyan di nav qada navên celebê çavkaniyê yên diyarkirî de.

Din

Kapasîteyên jêrîn statûya stabîl (GA) wergirtine:

Guhertinên din ên ku di Kubernetes 1.14 de hatine destnîşan kirin:

  • Siyaseta xwerû ya RBAC êdî destûrê nade gihîştina API discovery и access-review bikarhênerên bê authentication (nenaskirî).
  • Piştgiriya fermî ya CoreDNS misoger kirin Tenê Linux, ji ber vê yekê dema ku kubeadm bikar bînin da ku wê (CoreDNS) di komekê de bicîh bikin, pêdivî ye ku nod tenê li Linux-ê bixebitin (nodeSelectors ji bo vê sînorkirinê têne bikar anîn).
  • Veavakirina xwerû ya CoreDNS naha ye bikar tîne pêveka pêş şûna proxy. Di heman demê de, di CoreDNS de zêde kirin ReadinessProbe, ku rê li ber hevsengiya barkirinê li ser podên guncaw (ji bo karûbarê ne amade ne) digire.
  • Di kubeadm de, li ser qonaxan init an upload-certs, mimkun bû sertîfîkayên ku ji bo girêdana balafira kontrolê ya nû bi sira kubeadm-certs re tê xwestin barkirin (ala bikar bînin --experimental-upload-certs).
  • Ji bo sazkirinên Windows-ê guhertoyek alpha xuya bû piştgirî gMSA (Hesabê Karûbarê Birêvebir a Komê) - Hesabên taybetî yên di Active Directory de ku dikarin ji hêla konteyneran ve jî werin bikar anîn.
  • Ji bo G.C.E. aktîf kirin Şîfrekirina mTLS di navbera etcd û kube-apiserver de.
  • Nûvekirinên di nermalava hatî bikar anîn/girêdayî de: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 di kubeadm de piştgirî dikin, û guhertoya herî kêm a Docker API-ya piştgirî naha 1.26 e.

PS

Li ser bloga me jî bixwînin:

Source: www.habr.com

Add a comment