Kubernetes 1.16: com actualitzar sense trencar res

Kubernetes 1.16: com actualitzar sense trencar res

Avui, 18 de setembre, es publica la següent versió de Kubernetes: 1.16. Com sempre, ens esperen moltes millores i nous productes. Però m'agradaria cridar la vostra atenció sobre les seccions Acció necessària del fitxer CHANGELOG-1.16.md. Aquestes seccions publiquen canvis que poden trencar la vostra aplicació, les eines de manteniment del clúster o requerir canvis als fitxers de configuració.

En general, requereixen una intervenció manual...

Comencem de seguida amb un canvi que probablement afectarà a tots els que han estat treballant amb kubernetes prou temps. L'API de Kubernetes ja no admet les versions de l'API de recursos heretats.

Si algú no ho sabia o s'havia oblidat...La versió de l'API del recurs s'indica al manifest, al camp apiVersion: apps/v1

A saber

Tipus de recurs
versió antiga
Amb què s'ha de substituir

Tots els recursos
apps/v1beta1
apps/v1beta2
apps / v1

desplegaments
conjunt de dimonis
conjunt de rèpliques
extensió/v1beta1
apps / v1

polítiques de xarxa
extensions/v1beta1
networking.k8s.io/v1

polítiques de seguretat
extensions/v1beta1
policy/v1beta1

També m'agradaria cridar la vostra atenció sobre el fet que els objectes de tipus Ingress també va canviar apiVersion en networking.k8s.io/v1beta1. Antic significat extensions/v1beta1 encara és compatible, però hi ha una bona raó per actualitzar aquesta versió als manifests alhora.

Hi ha molts canvis en diverses etiquetes del sistema (etiquetes de nodes) que s'instal·len als nodes.

Kubelet tenia prohibit establir etiquetes arbitràries (anteriorment es podien establir mitjançant les tecles d'inici kubelet --node-labels), només van deixar aquesta llista permès:

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

Etiquetes beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready i beta.kubernetes.io/kube-proxy-ds-ready ja no s'afegeixen als nodes nous i diversos components addicionals han començat a utilitzar etiquetes lleugerament diferents com a selectors de nodes:

Component
Etiqueta antiga
Etiqueta actual

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

metadades-proxy
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

kubeadm ara elimina el fitxer de configuració inicial de kublet que hi ha darrere bootstrap-kubelet.conf. Si les vostres eines accedien a aquest fitxer, canvieu a utilitzar kubelet.conf, que emmagatzema la configuració d'accés actual.

Cadvisor ja no proporciona mètriques pod_name и container_namesi els vau fer servir a Prometheus, aneu a mètriques pod и container respectivament.

S'han eliminat les tecles amb l'ordre de línia:

Component
Clau retirada

hiperkube
--fer-enllaç simbòlic

kube-proxy
--recurs-contenidor

El planificador va començar a utilitzar la versió v1beta1 de l'API d'esdeveniments. Si utilitzeu eines de tercers per interactuar amb l'API d'esdeveniments, canvieu a la versió més recent.

Un moment d'humor. Durant la preparació de la versió 1.16, es van fer els canvis següents:

  • eliminat l'anotació scheduler.alpha.kubernetes.io/critical-pod a la versió v1.16.0-alpha.1
  • va tornar l'anotació scheduler.alpha.kubernetes.io/critical-pod a la versió v1.16.0-alpha.2
  • eliminat l'anotació scheduler.alpha.kubernetes.io/critical-pod a la versió v1.16.0-beta.1

Utilitza el camp spec.priorityClassName per indicar la importància de la beina.

Font: www.habr.com

Afegeix comentari