
I dag, den 18. september, udkommer endnu en version af Kubernetes — 1.16. Som altid venter der mange forbedringer og nyheder. Men jeg vil gerne påpege de sektioner, der kræver handling i filen . I disse sektioner offentliggøres ændringer, som kan bryde din applikations funktionalitet, værktøjer til vedligeholdelse af klyngen eller kræver ændringer i konfigurationsfilerne.
Generelt kræver det manuel indgriben…
Lad os starte med ændringen, der sandsynligvis vil berøre alle, der har arbejdet med Kubernetes i lang tid. Kubernetes API har stoppet understøttelsen af forældede versioner af API-ressourcer.
Hvis nogen ikke vidste, eller har glemt…API-versionen for ressourcen angives i manifestet, i feltet apiVersion: apps/v1
Nemlig:
Ressourcetype
Gammel version
Hvad der skal erstattes med
Alle ressourcer
apps/v1beta1
apps/v1beta2
apps/v1
deployments
daemonset
replicaset
extension/v1beta1
apps/v1
networkpolicies
extensions/v1beta1
networking.k8s.io/v1
podsecuritypolicies
extensions/v1beta1
policy/v1beta1
Jeg vil også gerne påpege, at objekter af typen Ingress har også ændret sig apiVersion og få en fungerende kommando. networking.k8s.io/v1beta1. Den gamle værdi extensions/v1beta1 er stadig understøttet, men der er en god grund til at opdatere denne version i manifestet.
Der er mange ændringer i forskellige systemlabels (Node labels), som er installeret på noderne.
Kubelet har fået forbud mod at installere vilkårlige labels (før kunne de angives via opstartsnøglen kubelet --node-labels), kun denne liste er tilbage :
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/*
Labels beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready og beta.kubernetes.io/kube-proxy-ds-ready tilføjes ikke længere på nye noder, og forskellige ekstra komponenter bruger nu lidt andre labels som node selector:
Komponent
Gammel label
Aktuel label
kube-proxy
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready
ip-mask-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 konfigurationsfil for kubelet bootstrap-kubelet.conf. Hvis dine værktøjer har henvist til denne fil, skal du skifte over til at bruge kubelet.conf, hvor de aktuelle adgangsindstillinger opbevares.
Cadvisor leverer ikke længere metrics pod_name og container_name, hvis du har brugt dem i Prometheus, gå til metrics pod og container henholdsvis.
Fjernede nøgler fra kommandolinjen:
Komponent
Fjernet nøgle
hyperkube
—make-symlink
kube-proxy
—resource-container
Scheduler begyndte at bruge v1beta1 Event API versionen. Hvis du bruger eksterne værktøjer til at interagere med Event API, skal du skifte til den aktuelle version.
Et øjebliks humor. I forbindelse med forberedelsen af version 1.16 blev følgende ændringer foretaget:
- fjernede annotationen
scheduler.alpha.kubernetes.io/critical-podi version v1.16.0-alpha.1 - genindførte annotationen
scheduler.alpha.kubernetes.io/critical-podi version v1.16.0-alpha.2 - fjernede annotationen
scheduler.alpha.kubernetes.io/critical-podi version v1.16.0-beta.1
Brug feltet spec.priorityClassName til at angive vigtigheden af pod'en.
Kilde: habr.com
