Mise à niveau des grappes vers les dernières versions de Kubernetes

Découvrez les différentes façons de mettre à niveau les noeuds de plan de contrôle et de travail vers les nouvelles versions de Kubernetes à l'aide de Kubernetes Engine (OKE).

Après le lancement d'une nouvelle version de Kubernetes et lorsque Kubernetes Engine prend en charge cette nouvelle version, vous pouvez mettre à niveau la version de Kubernetes exécutée sur les noeuds de plan de contrôle et de travail d'une grappe.

Les noeuds de plan de contrôle et de travail qui composent la grappe peuvent exécuter différentes versions de Kubernetes, à condition que la politique de prise en charge de l'asymétrie de version Kubernetes décrite dans la documentation sur Kubernetes soit respectée.

La mise à niveau des noeuds de plan de contrôle et de travail s'effectue différemment :

  • Mise à niveau des noeuds de plan de contrôle : Vous mettez à niveau les noeuds de plan de contrôle en mettant à niveau la grappe et en spécifiant une version de Kubernetes plus récente pour celle-ci. Les noeuds de plan de contrôle exécutant d'anciennes versions de Kubernetes sont mis à niveau. Comme Kubernetes Engine distribue le plan de contrôle Kubernetes sur plusieurs noeuds de plan de contrôle gérés par Oracle pour assurer la haute disponibilité (répartie entre différents domaines de disponibilité d'une région lorsque cette fonction est prise en charge), vous pouvez mettre à niveau la version de Kubernetes s'exécutant sur les noeuds de plan de contrôle sans temps d'arrêt.

    La mise à niveau des noeuds de plan de contrôle vers une nouvelle version de Kubernetes permet de créer de nouveaux groupes de noeuds comportant des noeuds de travail qui exécutent la dernière version. Vous pouvez également continuer de créer des groupes de noeuds comportant des noeuds de travail qui exécutent d'anciennes versions de Kubernetes (à condition que celles-ci soient compatibles avec la version de Kubernetes exécutée sur les noeuds de plan de contrôle).

    Pour plus d'informations sur la mise à niveau des noeuds de plan de contrôle, voir Mise à niveau de la version de Kubernetes sur les noeuds de plan de contrôle d'une grappe.

  • Mise à niveau des noeuds de travail : Vous mettez à niveau les noeuds gérés, les noeuds autogérés et les noeuds virtuels différemment :
    • Mise à niveau de noeud géré : Vous mettez à niveau les noeuds de travail de l'une des façons suivantes :
      • En effectuant une mise à niveau sur place d'un groupe de noeuds dans la grappe, en spécifiant une version de Kubernetes plus récente pour le groupe de noeuds existant, puis en effectuant un cycle sur les noeuds pour remplacer les volumes de démarrage des instances hébergeant des noeuds de travail existants, ou pour mettre fin aux noeuds de travail existants et les remplacer.
      • En effectuant une mise à niveau "sur place" d'un groupe de noeuds de la grappe, en spécifiant une version de Kubernetes plus récente pour le groupe de noeuds existant, puis en remplaçant manuellement chaque noeud de travail existant par un nouveau noeud de travail.
      • En effectuant une mise à niveau dans un nouveau répertoire de base d'un groupe de noeuds de la grappe, en remplaçant le groupe de noeuds initial par un nouveau groupe de noeuds pour lequel vous avez spécifié une version Kubernetes plus récente.

      Pour plus d'informations sur la mise à niveau des noeuds gérés, voir Mise à niveau des noeuds gérés vers une nouvelle version de Kubernetes.

    • Mise à niveau d'un noeud autogéré : Vous mettez à niveau les noeuds autogérés en remplaçant un noeud autogéré existant par un nouveau noeud autogéré hébergé sur une nouvelle instance de calcul. Pour plus d'informations sur la mise à niveau d'un noeud auto-géré, voir Mise à niveau de noeuds auto-gérés vers une version de Kubernetes plus récente en remplaçant un noeud auto-géré existant.
    • Mise à niveau de noeud virtuel : Vous mettez à niveau les noeuds virtuels en mettant à niveau les noeuds de plan de contrôle d'une grappe. Lorsque vous mettez à niveau la version de Kubernetes exécutée sur des noeuds de plan de contrôle, les noeuds virtuels de chaque groupe de noeuds virtuels de la grappe sont également mis à niveau automatiquement vers cette version de Kubernetes. Pour plus d'informations sur la mise à niveau des noeuds virtuels, voir Mise à niveau des noeuds virtuels vers une nouvelle version de Kubernetes.

Pour en savoir plus sur les versions de Kubernetes actuellement et précédemment prises en charge par Kubernetes Engine, voir Versions de Kubernetes prises en charge.

Notes sur la mise à niveau des grappes

Notez les informations suivantes concernant la mise à niveau des grappes :

  • Kubernetes Engine ne met à niveau la version de Kubernetes qui s'exécute sur les noeuds de plan de contrôle que lorsque vous lancez l'opération de mise à niveau explicitement.
  • Une fois les noeuds de plan de contrôle actualisés avec une nouvelle version de Kubernetes, vous ne pouvez pas les faire repasser à une version antérieure de Kubernetes.
  • Avant de mettre à niveau la version de Kubernetes exécutée sur les noeuds de plan de contrôle, testez la compatibilité des applications déployées dans la grappe avec la nouvelle version. Par exemple, avant de mettre à niveau la grappe existante, vous pouvez créer une nouvelle grappe exécutant la nouvelle version de Kubernetes pour tester vos applications.
  • Les versions de Kubernetes qui s'exécutent sur les noeuds de plan de contrôle et les noeuds de travail doivent être compatibles. Autrement dit, la version de Kubernetes sur les noeuds de plan de contrôle ne doit pas être supérieure de plus de deux versions mineures (ou de trois versions mineures, à partir de Kubernetes version 1.28) à la version de Kubernetes sur les noeuds de travail. Voir la politique de prise en charge d'asymétrie de version Kubernetes décrite dans la documentation sur Kubernetes.
  • Si la version de Kubernetes actuellement exécutée sur les noeuds de plan de contrôle est inférieure de plus d'un niveau à la dernière version prise en charge, vous pouvez choisir la version vers laquelle effectuer la mise à niveau. Pour effectuer une mise à niveau vers une version de Kubernetes supérieure de plus d'un niveau à celle actuellement exécutée sur les noeuds de plan de contrôle, vous devez effectuer une mise à niveau vers chaque version intermédiaire, dans l'ordre, sans en ignorer aucune (comme indiqué dans la documentation sur Kubernetes).
  • Pour que les noeuds de plan de contrôle d'une grappe puissent être mis à niveau, le service de tableau de bord Kubernetes doit être de type ClusterIP. Si le service de tableau de bord Kubernetes n'est pas de type ClusterIP (par exemple, s'il est de type NodePort), la mise à niveau échouera. Dans ce cas, remplacez le type du service de tableau de bord Kubernetes par ClusterIP (par exemple, en entrant kubectl -n kube-system edit service kubernetes-dashboard et en changeant le type).

  • Avant la version 1.14 de Kubernetes, Kubernetes Engine créait des grappes avec kube-dns comme serveur DNS. Cependant, à partir de la version 1.14 de Kubernetes, Kubernetes Engine crée des grappes avec CoreDNS comme serveur DNS. Lorsque vous mettez à niveau une grappe créée par Kubernetes Engine d'une ancienne version, vers Kubernetes version 1.14 ou ultérieure, le serveur kube-dns de la grappe est automatiquement remplacé par le serveur CoreDNS. Notez que si vous avez personnalisé le comportement de kube-dns à l'aide du ConfigMap kube-dns initial, ces personnalisations ne sont pas reportées dans le ConfigMap CoreDNS. Vous devez créer et appliquer un nouveau ConfigMap contenant les personnalisations pour remplacer les paramètres du fichier Corefile CoreDNS. Pour plus d'informations sur la mise à niveau vers CoreDNS, voir Configuration des serveurs DNS pour les grappes Kubernetes.