Kubernetes 1.16 — jak aktualizovat a nic nerozbít

Kubernetes 1.16 — jak aktualizovat a nic nerozbít

Dnes, 18. září, vychází nová verze Kubernetes – 1.16. Jak je obvyklé, čeká nás mnoho vylepšení a novinek. Chtěl bych však upozornit na sekce Action Required v souboru CHANGELOG-1.16.md. V těchto sekcích se zveřejňují změny, které mohou způsobit poruchy ve funkčnosti vaší aplikace, nástrojích pro údržbu clusteru, nebo vyžadují úpravy v konfiguračních souborech.

Obecně vyžadují manuální zásah…

Začněme hned se změnou, která se pravděpodobně dotkne všech, kdo pracují s Kubernetes dostatečně dlouho. Kubernetes API přestalo podporovat zastaralé verze API zdrojů.

Pro ty, kdo to nevěděli, nebo zapomněli…Verze API zdroje se uvádí v manifestu v poli apiVersion: apps/v1

A to konkrétně:

Typ zdroje
Stará verze
Na co je potřeba nahradit

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

nasazení
daemonset
replicaset
extension/v1beta1
apps/v1

networkpolicies
extensions/v1beta1
networking.k8s.io/v1

podsecuritypolicies
extensions/v1beta1
policy/v1beta1

Také bych chtěl upozornit, že objekty typu Ingress také změnily apiVersion na networking.k8s.io/v1beta1. Stará hodnota extensions/v1beta1 je stále podporována, ale je dobrým důvodem pro aktualizaci i této verze v manifestech.

Existuje poměrně mnoho změn v různých systémových označeních (Node labels), které jsou nastaveny na uzlech.

Kubelet už zakazuje nastavovat libovolné oznacení (dříve bylo možné zadávat je přes spouštěcí klíče kubelet --node-labels), ponechal pouze tento seznam 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 již nejsou přidávány na nové uzly, a různé další komponenty začaly používat mírně jiná označení jako node selector:

Komponenta
Staré označení
Aktuální označení

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 nyní odstraňuje soubor počáteční konfigurace kubeletu bootstrap-kubelet.conf. Pokud vaše nástroje k tomuto souboru přistupovaly, přepněte se na použití kubelet.conf, který uchovává aktuální nastavení přístupu.

Cadvisor již nevrací metriky pod_name a container_name, pokud je používáte v Prometheus, přejděte na metriky pod a container odpovídajícím způsobem.

Byly odstraněny příznaky příkazového řádku:

Komponenta
Odstraněný klíč

hyperkube
—make-symlink

kube-proxy
—resource-container

Scheduler začal používat verzi v1beta1 Event API. Pokud používáte třetí strany nástroje pro interakci s Event API, přepněte na aktuální verzi.

Chvíle humoru. Během přípravy vydání 1.16 byly provedeny následující změny:

  • byla odstraněna anotace scheduler.alpha.kubernetes.io/critical-pod ve verzi v1.16.0-alpha.1
  • byla vrácena anotace scheduler.alpha.kubernetes.io/critical-pod ve verzi v1.16.0-alpha.2
  • byla odstraněna anotace scheduler.alpha.kubernetes.io/critical-pod ve verzi v1.16.0-beta.1

Použijte pole spec.priorityClassName k určení významnosti podu.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster