
Astăzi, 18 septembrie, apare o nouă versiune a Kubernetes — 1.16. Ca de obicei, ne așteaptă multe îmbunătățiri și noutăți. Dar aș dori să atrag atenția asupra secțiunilor Action Required din fișier . În aceste secțiuni sunt publicate modificările care pot afecta funcționarea aplicației tale, a uneltelor de întreținere a cluster-ului sau care necesită modificări în fișierele de configurare.
În general, necesită intervenție manuală…
Să începem imediat cu o modificare care, cel mai probabil, va afecta pe toți cei care lucrează de mult timp cu Kubernetes. API-ul Kubernetes nu mai suportă versiunile învechite ale API-ului resurselor.
Dacă cineva nu știa, sau a uitat…Versiunea API-ului resursei este specificată în manifest, în câmpul apiVersion: apps/v1
Anume:
Tipul resursei
Vechea versiune
Ce trebuie să înlocuiești
Toate resursele
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
De asemenea, vreau să atrag atenția că obiectele de tip Ingress au și schimbat apiVersion pe networking.k8s.io/v1beta1. Valoarea veche extensions/v1beta1 este încă suportată, dar este un motiv bun să actualizezi și această versiune în manifeste.
Există destule modificări în diverse etichete de sistem (Node labels) care sunt setate pe noduri.
Kubelet a interzis setarea etichetelor arbitrare (anterior acestea puteau fi setate prin opțiunile de pornire kubelet --node-labels), a lăsat doar această listă :
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/*
Etichete beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready și beta.kubernetes.io/kube-proxy-ds-ready nu mai sunt adăugate pe noile noduri, iar diferitele componente suplimentare au început să utilizeze alte etichete ca selector de nod:
Componentă
Eticheta veche
Eticheta actuală
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 acum șterge fișierul de configurare inițial al kubelet-ului bootstrap-kubelet.conf. Dacă instrumentele tale s-au referit la acest fișier, atunci fă trecerea la utilizarea kubelet.conf, în care se păstrează setările actuale de acces.
Cadvisor nu mai oferă metrici pod_name și container_name, dacă le-ai folosit în Prometheus, treci la metrici pod și container corespunzător.
Am eliminat cheile din linia de comandă:
Componentă
Cheie eliminată
hyperkube
--make-symlink
kube-proxy
--resource-container
Schedulerul a început să folosească versiunea v1beta1 a Event API. Dacă utilizați instrumente externe pentru interacțiunea cu Event API, comutați la versiunea actualizată.
Un moment de umor. În procesul de pregătire a versiunii 1.16, au fost făcute următoarele modificări:
- am eliminat notația
scheduler.alpha.kubernetes.io/critical-podîn versiunea v1.16.0-alpha.1 - am reintegrat notația
scheduler.alpha.kubernetes.io/critical-podîn versiunea v1.16.0-alpha.2 - am eliminat notația
scheduler.alpha.kubernetes.io/critical-podîn versiunea v1.16.0-beta.1
Utilizați câmpul spec.priorityClassName pentru a specifica importanța pod-ului.
Sursa: habr.com
