Kubernetes 1.16 - comment mettre à niveau et ne rien casser



Aujourd'hui, le 18 septembre, la prochaine version de Kubernetes est sortie - 1.16. Comme toujours, nous trouverons de nombreuses améliorations et de nouveaux produits. Mais je voudrais attirer votre attention sur les sections du fichier Action requise CHANGELOG-1.16.md . Ces sections publient des modifications susceptibles de casser votre application, des outils de maintenance de cluster ou d'exiger des modifications des fichiers de configuration.

En général, ils nécessitent une intervention manuelle ...

Commençons tout de suite par un changement susceptible d'affecter tous ceux qui travaillent avec Kubernetes depuis un certain temps. L'API Kubernetes a cessé de prendre en charge les versions héritées de l'API de ressources.

Si quelqu'un ne savait pas, ou a oublié ...
La version de l'API de ressource est indiquée dans le manifeste dans le apiVersion: apps/v1

À savoir:
Type de ressourceAncienne versionCe qui devrait être remplacé
Toutes les ressourcesapps / v1beta1
apps / v1beta2
apps / v1
déploiements
daemonset
jeu de répliques
extensions / v1beta1apps / v1
politiques réseauextensions / v1beta1networking.k8s.io/v1
podsecuritypoliciesextensions / v1beta1politique / v1beta1
Je tiens également à noter que pour des objets comme Ingress apiVersion également changé pour networking.k8s.io/v1beta1 . L'ancienne extensions/v1beta1 toujours prise en charge, mais il y a une bonne raison de mettre à jour cette version dans les manifestes en même temps.

Il existe de nombreuses modifications dans les différentes étiquettes système (étiquettes de nœud) installées sur les nœuds.

Il était interdit à Kubelet de définir des étiquettes arbitraires (avant de pouvoir les définir via les kubelet --node-labels ), ils n'ont laissé que cette liste de celles autorisées :

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

Les étiquettes beta.kubernetes.io/metadata-proxy-ready , beta.kubernetes.io/masq-agent-ds-ready et beta.kubernetes.io/kube-proxy-ds-ready ne beta.kubernetes.io/kube-proxy-ds-ready plus ajoutées aux nouveaux nœuds et divers autres les composants ont commencé à utiliser des étiquettes légèrement différentes comme sélecteur de nœud:
ComposantAncienne étiquetteBalise actuelle
kube-proxybeta.kubernetes.io/kube-proxy-ds-readynode.kubernetes.io/kube-proxy-ds-ready
ip-mask-agentbeta.kubernetes.io/masq-agent-ds-readynode.kubernetes.io/masq-agent-ds-ready
proxy de métadonnéesbeta.kubernetes.io/metadata-proxy-readycloud.google.com/metadata-proxy-ready
kubeadm supprime maintenant le fichier de configuration initiale de bootstrap-kubelet.conf . Si vos outils ont accédé à ce fichier, passez à l'utilisation de kubelet.conf , qui stocke les paramètres d'accès actuels.

Cadvisor ne donne plus les métriques pod_name et container_name , si vous les avez utilisées dans Prometheus, accédez respectivement aux métriques pod et container .

Les clés ont été supprimées avec la ligne de commande:
ComposantClé retirée
hyperkube--make-symlink
kube-proxy--resource-container
Sheduler a commencé à utiliser la version v1beta1 Event API. Si vous utilisez des outils tiers pour interagir avec l'API d'événement, passez à la version actuelle.

Un moment d'humour. Lors de la préparation de la version 1.16, les modifications suivantes ont été apportées:

  • suppression de l'annotation scheduler.alpha.kubernetes.io/critical-pod dans la version v1.16.0-alpha.1
  • a retourné l'annotation scheduler.alpha.kubernetes.io/critical-pod dans la version v1.16.0-alpha.2
  • suppression de l'annotation scheduler.alpha.kubernetes.io/critical-pod dans la version v1.16.0-beta.1

Utilisez le champ spec.priorityClassName pour indiquer l'importance du foyer.

Source: https://habr.com/ru/post/fr467883/


All Articles