Kubernetes 1.16 - cum să faceți upgrade fără a întrerupe nimic

Kubernetes 1.16 - cum să faceți upgrade fără a întrerupe nimic

Astăzi, 18 septembrie, este lansată următoarea versiune de Kubernetes - 1.16. Ca întotdeauna, ne așteaptă multe îmbunătățiri și produse noi. Dar aș dori să vă atrag atenția asupra secțiunilor Acțiune necesară din fișier CHANGELOG-1.16.md. Aceste secțiuni publică modificări care vă pot distruge aplicația, instrumentele de întreținere a clusterului sau necesită modificări ale fișierelor de configurare.

În general, necesită intervenție manuală...

Să începem imediat cu o schimbare care, cel mai probabil, îi va afecta pe toți cei care lucrează cu kubernetes suficient de mult. API-ul Kubernetes nu mai acceptă versiunile API de resurse vechi.

Daca cineva nu a stiut sau a uitat...Versiunea API a resursei este indicată în manifest, în câmp apiVersion: apps/v1

Anume

Tipul de resursă
versiune veche
Cu ce ​​ar trebui inlocuit

Toate resursele
apps/v1beta1
apps/v1beta2
aplicații / v1

implementări
daemonset
replicaset
extensia/v1beta1
aplicații / v1

politicile de rețea
extensii/v1beta1
networking.k8s.io/v1

podpolitici de securitate
extensii/v1beta1
policy/v1beta1

De asemenea, aș dori să vă atrag atenția asupra faptului că obiectele de tip Ingress schimbat de asemenea apiVersion pe networking.k8s.io/v1beta1. Sensul vechi extensions/v1beta1 este încă acceptat, dar există un motiv întemeiat pentru a actualiza această versiune în manifeste în același timp.

Există destul de multe modificări în diverse etichete de sistem (etichete de nod) care sunt instalate pe noduri.

Kubelet i-a fost interzis să seteze etichete arbitrare (anterior acestea puteau fi setate prin tastele de lansare kubelet --node-labels), au lăsat doar această listă permis:

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/*

Tag-uri 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 la nodurile noi, iar diverse componente suplimentare au început să folosească etichete ușor diferite ca selectoare de noduri:

component
Etichetă veche
Eticheta curentă

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

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

kubeadm elimină acum fișierul inițial de configurare kublet din spatele acestuia bootstrap-kubelet.conf. Dacă instrumentele dvs. accesau acest fișier, treceți la utilizarea kubelet.conf, care stochează setările curente de acces.

Cadvisor nu mai oferă valori pod_name и container_namedacă le-ai folosit în Prometheus, mergi la metrics pod и container respectiv.

S-au eliminat tastele cu comanda de linie:

component
Cheie retrasă

hiperkube
--face-simbol

kube-proxy
--resource-container

Programatorul a început să utilizeze versiunea v1beta1 a API-ului Event. Dacă utilizați instrumente terțe pentru a interacționa cu API-ul Event, treceți la cea mai recentă versiune.

Un moment de umor. În timpul pregătirii versiunii 1.16, au fost făcute următoarele modificări:

  • a eliminat adnotarea scheduler.alpha.kubernetes.io/critical-pod în versiunea v1.16.0-alpha.1
  • a returnat adnotarea scheduler.alpha.kubernetes.io/critical-pod în versiunea v1.16.0-alpha.2
  • a eliminat adnotarea scheduler.alpha.kubernetes.io/critical-pod în versiunea v1.16.0-beta.1

Folosește câmpul spec.priorityClassName pentru a indica importanța păstăii.

Sursa: www.habr.com

Adauga un comentariu