Kubernetes 1.16 — hur man uppdaterar utan att bryta nĂ„got

Kubernetes 1.16 — hur man uppdaterar utan att bryta nĂ„got

Idag, den 18 september, slÀpps ytterligare en version av Kubernetes - 1.16. Som vanligt kan vi förvÀnta oss mÄnga förbÀttringar och nyheter. Men jag vill sÀrskilt uppmÀrksamma er pÄ avsnitten Action Required i filen CHANGELOG-1.16.md. I dessa avsnitt publiceras Àndringar som kan bryta din applikations funktionalitet, verktyg för att underhÄlla kluster eller krÀver Àndringar i konfigurationsfiler.

Generellt behöver de manuell inblandning


LÄt oss börja med en Àndring som troligtvis kommer att pÄverka alla som har arbetat lÀnge med Kubernetes. Kubernetes API slutade stödja förÄldrade versioner av API-resurser.

För den som inte visste, eller har glömt
Versionen av API-resursen anges i manifestet, i fĂ€ltet apiVersion: apps/v1

Det vill sÀga:

Resurstyper
Gammal version
Vad som ska ersÀttas

Alla resurser
apps/v1beta1
apps/v1beta2
apps/v1

deployment
daemonset
replicaset
extension/v1beta1
apps/v1

networkpolicies
extensions/v1beta1
networking.k8s.io/v1

podsecuritypolicies
extensions/v1beta1
policy/v1beta1

Jag vill ocksÄ pÄpeka att Àven objekt av typen Ingress har genomgÄtt en förÀndring apiVersion till networking.k8s.io/v1beta1. Det gamla vÀrdet extensions/v1beta1 stöds fortfarande, men det finns en god anledning att uppdatera Àven den hÀr versionen i manifesten.

Det finns en hel del Àndringar i olika systemetiketter (Node labels) som installeras pÄ noder.

Kubelet har fÄtt förbud mot att installera godtyckliga etiketter (tidigare kunde de anges via startnycklarna kubelet --node-labels), endast denna lista har kvarblivit tillÄtna:

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

Taggar beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready och beta.kubernetes.io/kube-proxy-ds-ready lÀggs inte lÀngre till pÄ nya noder, och olika ytterligare komponenter har börjat anvÀnda nÄgot andra etiketter som node selector:

Komponent
Gammal etikett
Aktuell etikett

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 tar nu bort startkonfigurationsfilen för kubelet bootstrap-kubelet.conf. Om dina verktyg har refererat till den hÀr filen, byt till att anvÀnda kubelet.conf, dÀr de aktuella ÄtkomstinstÀllningarna lagras.

Cadvisor ger inte lÀngre metrik pod_name och container_name, om du har anvÀnt dem i Prometheus, gÄ över till metrik pod och container respektive.

Vi har tagit bort kommandon frÄn kommandoraden:

Komponent
Borttaget kommando

hyperkube
--make-symlink

kube-proxy
--resource-container

SchemalÀggaren har börjat anvÀnda version v1beta1 Event API. Om du anvÀnder tredjepartsverktyg för att interagera med Event API, byt till den aktuella versionen.

Ett ögonblick av humor. I processen av att förbereda release 1.16 gjordes följande Àndringar:

  • tillagd annotering scheduler.alpha.kubernetes.io/critical-pod i version v1.16.0-alpha.1
  • Ă„terstĂ€lld annotering scheduler.alpha.kubernetes.io/critical-pod i version v1.16.0-alpha.2
  • tillagd annotering scheduler.alpha.kubernetes.io/critical-pod i version v1.16.0-beta.1

AnvÀnd fÀltet spec.priorityClassName för att ange betydelsen av podden.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster