Kubernetes 1.16 - hvordan oppgradere uten å ødelegge noe

Kubernetes 1.16 - hvordan oppgradere uten å ødelegge noe

I dag, 18. september, slippes neste versjon av Kubernetes – 1.16. Som alltid venter mange forbedringer og nye produkter på oss. Men jeg vil gjerne trekke oppmerksomheten din til delene som kreves for handling i filen ENDRINGSLOGG-1.16.md. Disse delene publiserer endringer som kan ødelegge applikasjonen din, klyngevedlikeholdsverktøy eller kreve endringer i konfigurasjonsfiler.

Generelt krever de manuell inngripen...

La oss starte med en gang med en endring som mest sannsynlig vil påvirke alle som har jobbet lenge nok med kubernetes. Kubernetes API støtter ikke lenger eldre versjoner av ressurs-API.

Hvis noen ikke visste eller glemte...API-versjonen av ressursen er angitt i manifestet i feltet apiVersion: apps/v1

nemlig

Ressurstype
gammel versjon
Hva bør erstattes med

Alle ressurser
apps/v1beta1
apps/v1beta2
apps / v1

distribusjoner
daemonset
replikasett
utvidelse/v1beta1
apps / v1

nettverkspolitikk
extensions/v1beta1
networking.k8s.io/v1

podsecuritypolicyer
extensions/v1beta1
policy/v1beta1

Jeg vil også henlede oppmerksomheten på det faktum at gjenstander av type Ingress også endret apiVersionnetworking.k8s.io/v1beta1. Gammel betydning extensions/v1beta1 er fortsatt støttet, men det er en god grunn til å oppdatere denne versjonen i manifestene samtidig.

Det er ganske mange endringer i ulike systemetiketter (Node-etiketter) som er installert på noder.

Kubelet ble forbudt å sette vilkårlige etiketter (tidligere kunne de settes via starttaster kubelet --node-labels), forlot de bare denne listen tillatt:

kubernetes.io/hostname
kubernetes.io/instance-type
kubernetes.io/os
kubernetes.io/arch

beta.kubernetes.io/instance-type
beta.kubernetes.io/os
beta.kubernetes.io/arch

failure-domain.beta.kubernetes.io/zone
failure-domain.beta.kubernetes.io/region

failure-domain.kubernetes.io/zone
failure-domain.kubernetes.io/region

[*.]kubelet.kubernetes.io/*
[*.]node.kubernetes.io/*

Tags beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready og beta.kubernetes.io/kube-proxy-ds-ready er ikke lenger lagt til nye noder, og ulike tilleggskomponenter har begynt å bruke litt forskjellige etiketter som nodevelgere:

komponent
Gammel etikett
Gjeldende etikett

kube-proxy
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

ip-maske-agent
beta.kubernetes.io/masq-agent-ds-ready
node.kubernetes.io/masq-agent-ds-ready

metadata-proxy
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

kubeadm fjerner nå den opprinnelige kublet-konfigurasjonsfilen bak den bootstrap-kubelet.conf. Hvis verktøyene dine hadde tilgang til denne filen, bytt til å bruke kubelet.conf, som lagrer gjeldende tilgangsinnstillinger.

Cadvisor gir ikke lenger beregninger pod_name и container_namehvis du brukte dem i Prometheus, gå til metrikk pod и container henholdsvis.

Fjernet nøklene med linjekommandoen:

komponent
Inntrukket nøkkel

hyperkube
--lag-symbolkobling

kube-proxy
--ressursbeholder

Planleggeren begynte å bruke versjon v1beta1 av Event API. Hvis du bruker tredjepartsverktøy for å samhandle med Event API, bytt til den nyeste versjonen.

Et øyeblikk med humor. Under utarbeidelsen av utgivelse 1.16 ble følgende endringer gjort:

  • fjernet merknaden scheduler.alpha.kubernetes.io/critical-pod i versjon v1.16.0-alpha.1
  • returnerte merknaden scheduler.alpha.kubernetes.io/critical-pod i versjon v1.16.0-alpha.2
  • fjernet merknaden scheduler.alpha.kubernetes.io/critical-pod i versjon v1.16.0-beta.1

Bruk feltet spec.priorityClassName for å indikere podens betydning.

Kilde: www.habr.com

Legg til en kommentar