Kubernetes 1.16 – ako sa aktualizovať a nič neolomiť

Kubernetes 1.16 – ako sa aktualizovať a nič neolomiť

Dnes, 18. septembra, vychádza nová verzia Kubernetes — 1.16. Ako obvykle nás čaká mnoho vylepšení a noviniek. Ale chcel by som upriamiť vašu pozornosť na sekcie Action Required v súbore CHANGELOG-1.16.md. V týchto sekciách sú zverejnené zmeny, ktoré môžu narušiť fungovanie vašej aplikácie, nástrojov na správu klastera alebo si vyžadujú úpravy v konfiguračných súboroch.

V skratke, vyžadujú manuálny zásah...

Začneme hneď so zmenou, ktorá pravdepodobne zasiahne všetkých, ktorí dostatočne dlho pracujú s Kubernetes. Kubernetes API prestalo podporovať zastarané verzie API zdrojov.

Ak niekto nevedel, alebo zabudol...Verzia API zdroja sa uvádza v manifeste, v poli apiVersion: apps/v1

A konkrétne:

Typ zdroja
Stará verzia
Na čo treba nahradiť

Všetky zdroje
apps/v1beta1
apps/v1beta2
apps/v1

nasadenia
daemonset
replicaset
extension/v1beta1
apps/v1

networkpolicies
extensions/v1beta1
networking.k8s.io/v1

podsecuritypolicies
extensions/v1beta1
policy/v1beta1

Taktiež chcem upozorniť, že objekty typu Ingress tiež zmenili apiVersion na networking.k8s.io/v1beta1. Stará hodnota extensions/v1beta1 je stále podporovaná, ale je dobrý dôvod zároveň aktualizovať aj túto verziu v manifestoch.

Existuje mnoho zmien v rôznych systémových značkách (Node labels), ktoré sa nastavujú na uzloch.

Kubelet zakázal nastavovať ľubovoľné značky (predtým bolo možné ich nastaviť pomocou spúšťacích kľúčov kubelet --node-labels), zostal iba tento zoznam povolených:

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

Štítky beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready a beta.kubernetes.io/kube-proxy-ds-ready sa už nepridávajú na nové uzly, a rôzne ďalšie komponenty začali používať trochu iné značky ako node selector:

Komponent
Stará značka
Aktuálna značka

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 teraz odstraňuje svoj konfiguračný súbor iniciálnej konfigurácie kubeletu bootstrap-kubelet.conf. Ak vaše nástroje pristupovali k tomuto súboru, prepnite sa na používanie kubelet.conf, v ktorom sú uložené aktuálne nastavenia prístupu.

Cadvisor už nevracia metriky pod_name a container_name, ak ste ich používali v Prometheus, prejdite na metriky pod a kontejner prípadne.

Vymazali sme kľúče príkazového riadku:

Komponent
Odstránený kľúč

hyperkube
—make-symlink

kube-proxy
—resource-container

Plánovač začal používať verziu v1beta1 Event API. Ak používate externé nástroje na interakciu s Event API, prepnite na aktuálnu verziu.

Minútka humoru. Počas prípravy verzie 1.16 boli vykonané nasledujúce zmeny:

  • vymazali sme anotáciu scheduler.alpha.kubernetes.io/critical-pod vo verzii v1.16.0-alpha.1
  • vrátili sme anotáciu scheduler.alpha.kubernetes.io/critical-pod vo verzii v1.16.0-alpha.2
  • vymazali sme anotáciu scheduler.alpha.kubernetes.io/critical-pod vo verzii v1.16.0-beta.1

Použite pole spec.priorityClassName na určenie dôležitosti podu.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster