Kubernetes 1.16 - ako upgradovať bez toho, aby ste niečo porušili

Kubernetes 1.16 - ako upgradovať bez toho, aby ste niečo porušili

Dnes, 18. septembra, vychádza ďalšia verzia Kubernetes – 1.16. Ako vždy nás čaká veľa vylepšení a nových produktov. Chcel by som však upriamiť vašu pozornosť na časti súboru, ktoré vyžadujú akciu CHANGELOG-1.16.md. Tieto časti zverejňujú zmeny, ktoré môžu poškodiť vašu aplikáciu, nástroje na údržbu klastra alebo vyžadovať zmeny v konfiguračných súboroch.

Vo všeobecnosti vyžadujú manuálny zásah...

Začnime hneď so zmenou, ktorá sa s najväčšou pravdepodobnosťou dotkne všetkých, ktorí s kubernetes pracujú dostatočne dlho. Kubernetes API už nepodporuje staršie verzie API prostriedkov.

Ak by niekto nevedel alebo zabudol...Verzia API zdroja je uvedená v manifeste v poli apiVersion: apps/v1

A to

Typ zdroja
stará verzia
Čo by sa malo nahradiť

Všetky zdroje
apps/v1beta1
apps/v1beta2
aplikácie / v1

nasadenia
daemonset
replikaset
rozšírenie/v1beta1
aplikácie / v1

sieťové politiky
rozšírenia/v1beta1
networking.k8s.io/v1

podbezpečnostné politiky
rozšírenia/v1beta1
politika/v1beta1

Chcel by som tiež upozorniť na skutočnosť, že objekty typu Ingress tiež zmenil apiVersion na networking.k8s.io/v1beta1. Starý význam extensions/v1beta1 je stále podporovaný, ale existuje dobrý dôvod na aktualizáciu tejto verzie v manifestoch súčasne.

Existuje pomerne veľa zmien v rôznych systémových štítkoch (Node labels), ktoré sú nainštalované na uzloch.

Kubeletovi bolo zakázané nastavovať ľubovoľné štítky (predtým ich bolo možné nastaviť pomocou spúšťacích kláves kubelet --node-labels), ponechali len tento zoznam povolenej:

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

Tagy beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready a beta.kubernetes.io/kube-proxy-ds-ready sa už nepridávajú do nových uzlov a rôzne ďalšie komponenty začali používať mierne odlišné označenia ako selektory uzlov:

komponentov
Starý štítok
Aktuálny štítok

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 odstráni počiatočný konfiguračný súbor kublet za ním bootstrap-kubelet.conf. Ak vaše nástroje pristupovali k tomuto súboru, prepnite na používanie kubelet.conf, ktorý ukladá aktuálne nastavenia prístupu.

Cadvisor už neposkytuje metriky pod_name и container_nameak ste ich použili v Prometheus, prejdite na metriky pod и container resp.

Odstránili sa kľúče príkazom line:

komponentov
Zatiahnutý kľúč

hyperkube
--make-symlink

kube-proxy
--resource-container

Plánovač začal používať verziu v1beta1 rozhrania Event API. Ak na interakciu s rozhraním Event API používate nástroje tretích strán, prejdite na najnovšiu verziu.

Chvíľka humoru. Počas prípravy vydania 1.16 boli vykonané nasledujúce zmeny:

  • odstránili anotáciu scheduler.alpha.kubernetes.io/critical-pod vo verzii v1.16.0-alpha.1
  • vrátil anotáciu scheduler.alpha.kubernetes.io/critical-pod vo verzii v1.16.0-alpha.2
  • odstránili anotáciu scheduler.alpha.kubernetes.io/critical-pod vo verzii v1.16.0-beta.1

Použite pole spec.priorityClassName na označenie dôležitosti lusku.

Zdroj: hab.com

Pridať komentár