
Heute, am 18. September, erscheint die neueste Version von Kubernetes — 1.16. Wie immer erwartet uns eine Menge Verbesserungen und Neuheiten. Ich möchte jedoch Ihre Aufmerksamkeit auf die Abschnitte "Action Required" in der Datei . In diesen Abschnitten werden Änderungen veröffentlicht, die die Funktionsweise Ihrer Anwendung, Tools für die Clusterverwaltung beeinträchtigen könnten oder Änderungen an den Konfigurationsdateien erfordern.
Im Allgemeinen erfordern sie manuelles Eingreifen...
Lassen Sie uns gleich zu einer Änderung kommen, die wahrscheinlich alle betreffen wird, die lange genug mit Kubernetes arbeiten. Die Kubernetes API unterstützt keine veralteten Versionen der API-Ressourcen mehr.
Falls jemand es nicht wusste oder vergessen hat...Die Version der API-Ressource wird im Manifest im Feld apiVersion: apps/v1
Und zwar:
Ressourcentyp
Die alte Version
Worauf sie ersetzt werden muss
Alle Ressourcen
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
Ich möchte auch darauf hinweisen, dass sich bei Objekttypen Ingress auch geändert hat apiVersion auf networking.k8s.io/v1beta1. Der alte Wert extensions/v1beta1 wird weiterhin unterstützt, aber es gibt einen guten Grund, auch diese Version in den Manifesten zu aktualisieren.
Es gibt viele Änderungen bei verschiedenen Systemetiketten (Node labels), die auf Knoten gesetzt werden.
Kubelet wurde verboten, beliebige Labels zu setzen (früher konnten sie über die Startschlüssel kubelet --node-labels), nur diese Liste :
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 und beta.kubernetes.io/kube-proxy-ds-ready werden nicht mehr auf neuen Knoten hinzugefügt, und verschiedene zusätzliche Komponenten verwenden etwas andere Labels als Node-Selector:
Komponente
Das alte Label
Das aktuelle 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 entfernt jetzt die anfängliche Konfigurationsdatei des Kubelets. bootstrap-kubelet.conf. Wenn Ihre Tools auf diese Datei zugegriffen haben, wechseln Sie zur Verwendung kubelet.conf, in dem die aktuellen Zugriffseinstellungen gespeichert sind.
Cadvisor gibt keine Metriken mehr aus pod_name und container_name, wenn Sie diese in Prometheus verwendet haben, wechseln Sie zu den Metriken Pod und Container entsprechend.
Die folgenden Befehlszeilenparameter wurden entfernt:
Komponente
Der entfernte Schlüssel
hyperkube
—make-symlink
kube-proxy
—resource-container
Der Scheduler verwendet jetzt die Version v1beta1 der Event API. Wenn Sie Drittanbieter-Tools zur Interaktion mit der Event API verwenden, wechseln Sie zur aktuellen Version.
Ein Moment des Humors. Im Zuge der Vorbereitung des Releases 1.16 wurden folgende Änderungen vorgenommen:
- die Annotation entfernt
scheduler.alpha.kubernetes.io/critical-podin der Version v1.16.0-alpha.1 - die Annotation wieder hinzugefügt
scheduler.alpha.kubernetes.io/critical-podin der Version v1.16.0-alpha.2 - die Annotation entfernt
scheduler.alpha.kubernetes.io/critical-podin der Version v1.16.0-beta.1
Verwenden Sie das Feld spec.priorityClassName zur Angabe der Wichtigkeit des Pods.
Quelle: habr.com
