Kubernetes 1.16 - hvordan man opgraderer uden at ødelægge noget

Kubernetes 1.16 - hvordan man opgraderer uden at ødelægge noget

I dag, den 18. september, udkommer den næste version af Kubernetes - 1.16. Som altid venter der os mange forbedringer og nye produkter. Men jeg vil gerne henlede din opmærksomhed på de handlingskrævede sektioner af filen CHANGELOG-1.16.md. Disse sektioner udgiver ændringer, der kan ødelægge din applikation, klyngevedligeholdelsesværktøjer eller kræve ændringer af konfigurationsfiler.

Generelt kræver de manuel indgriben...

Lad os starte med det samme med en ændring, der højst sandsynligt vil påvirke alle, der har arbejdet med kubernetes længe nok. Kubernetes API understøtter ikke længere ældre ressource-API-versioner.

Hvis nogen ikke vidste eller glemte...API-versionen af ​​ressourcen er angivet i manifestet i feltet apiVersion: apps/v1

Nemlig

Ressourcetype
Gammel version
Hvad skal erstattes med

Alle ressourcer
apps/v1beta1
apps/v1beta2
apps / v1

implementeringer
daemonset
replikasæt
extension/v1beta1
apps / v1

netværkspolitikker
extensions/v1beta1
networking.k8s.io/v1

podsikkerhedspolitikker
extensions/v1beta1
politik/v1beta1

Jeg vil også gerne henlede Deres opmærksomhed på, at genstande af type Ingress også ændret apiVersionnetworking.k8s.io/v1beta1. Gammel betydning extensions/v1beta1 er stadig understøttet, men der er en god grund til at opdatere denne version i manifesterne på samme tid.

Der er en del ændringer i forskellige systemetiketter (Node-etiketter), der er installeret på noder.

Kubelet fik forbud mod at angive vilkårlige etiketter (tidligere kunne de indstilles via starttaster kubelet --node-labels), forlod de kun denne liste tilladt:

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 føjes ikke længere til nye noder, og forskellige yderligere komponenter er begyndt at bruge lidt forskellige etiketter som nodevælgere:

komponent
Gammel etiket
Nuværende etiket

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 nu den oprindelige kublet-konfigurationsfil bag den bootstrap-kubelet.conf. Hvis dine værktøjer havde adgang til denne fil, så skift til at bruge kubelet.conf, som gemmer aktuelle adgangsindstillinger.

Cadvisor leverer ikke længere metrics pod_name и container_namehvis du brugte dem i Prometheus, skal du gå til metrics pod и container hhv.

Fjernede nøglerne med linjekommandoen:

komponent
Indtrukket nøgle

hyperkube
--make-symlink

kube-proxy
--ressourcebeholder

Planlæggeren begyndte at bruge version v1beta1 af Event API. Hvis du bruger tredjepartsværktøjer til at interagere med Event API, skal du skifte til den nyeste version.

Et øjebliks humor. Under forberedelsen af ​​udgivelse 1.16 blev følgende ændringer foretaget:

  • fjernede anmærkningen scheduler.alpha.kubernetes.io/critical-pod i version v1.16.0-alpha.1
  • returnerede anmærkningen scheduler.alpha.kubernetes.io/critical-pod i version v1.16.0-alpha.2
  • fjernede anmærkningen scheduler.alpha.kubernetes.io/critical-pod i version v1.16.0-beta.1

Brug feltet spec.priorityClassName for at indikere podens betydning.

Kilde: www.habr.com

Tilføj en kommentar