Kubernetes 1.16 - jak upgradovat, aniž byste cokoli rozbili

Kubernetes 1.16 - jak upgradovat, aniž byste cokoli rozbili

Dnes, 18. září, vychází další verze Kubernetes – 1.16. Jako vždy nás čeká mnoho vylepšení a nových produktů. Ale rád bych vás upozornil na části souboru, které vyžadují akci CHANGELOG-1.16.md. Tyto části publikují změny, které mohou poškodit vaši aplikaci, nástroje pro údržbu clusteru nebo vyžadovat změny konfiguračních souborů.

Obecně vyžadují ruční zásah...

Začněme hned změnou, která se nejspíše dotkne všech, kdo s kubernetes pracují dostatečně dlouho. Rozhraní Kubernetes API již nepodporuje starší verze rozhraní API prostředků.

Kdyby někdo nevěděl nebo zapomněl...Verze API zdroje je uvedena v manifestu v poli apiVersion: apps/v1

A to

Typ zdroje
Stará verze
Čím by se mělo nahradit

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

nasazení
daemonset
replikaset
rozšíření/v1beta1
aplikace / v1

síťových zásad
rozšíření/v1beta1
networking.k8s.io/v1

podbezpečnostní zásady
rozšíření/v1beta1
politika/v1beta1

Rád bych také upozornil na skutečnost, že objekty typu Ingress také změnil apiVersion na networking.k8s.io/v1beta1. Starý význam extensions/v1beta1 je stále podporována, ale existuje dobrý důvod pro aktualizaci této verze v manifestech současně.

V různých systémových štítcích (Node labels), které jsou instalovány na uzlech, je poměrně hodně změn.

Kubelet měl zakázáno nastavovat libovolné štítky (dříve je bylo možné nastavit pomocí spouštěcích kláves kubelet --node-labels), ponechali pouze tento seznam povoleno:

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 již nejsou přidávány do nových uzlů a různé další komponenty začaly používat mírně odlišné štítky jako selektory uzlů:

Komponenta
Starý štítek
Aktuální štítek

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í odstraní počáteční konfigurační soubor kublet za ním bootstrap-kubelet.conf. Pokud vaše nástroje přistupovaly k tomuto souboru, přepněte na používání kubelet.conf, který ukládá aktuální nastavení přístupu.

Cadvisor již neposkytuje metriky pod_name и container_namepokud jste je použili v Prometheus, přejděte na metriky pod и container resp.

Odstraněny klíče příkazem line:

Komponenta
Zasunutý klíč

hyperkube
--make-symlink

kube-proxy
--resource-container

Plánovač začal používat verzi v1beta1 rozhraní Event API. Pokud k interakci s rozhraním Event API používáte nástroje třetích stran, přejděte na nejnovější verzi.

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

  • odstranil anotaci scheduler.alpha.kubernetes.io/critical-pod ve verzi v1.16.0-alpha.1
  • vrátil anotaci scheduler.alpha.kubernetes.io/critical-pod ve verzi v1.16.0-alpha.2
  • odstranil anotaci scheduler.alpha.kubernetes.io/critical-pod ve verzi v1.16.0-beta.1

Použijte pole spec.priorityClassName k označení důležitosti lusku.

Zdroj: www.habr.com

Přidat komentář