Mise à niveau de noeuds autogérés vers une version de Kubernetes plus récente en remplaçant un noeud autogéré existant
Découvrez comment mettre à niveau la version de Kubernetes exécutée sur un noeud autogéré dans un cluster amélioré créé avec Kubernetes Engine, en remplaçant le noeud par un nouveau noeud autogéré.
Cette section s'applique uniquement aux noeuds autogérés. Pour plus d'informations sur la mise à niveau de noeuds gérés, reportez-vous à Mise à niveau de noeuds gérés vers une version de Kubernetes plus récente.
Vous pouvez mettre à niveau la version de Kubernetes exécutée sur un noeud auto-géré en remplaçant le noeud auto-géré d'origine par un nouveau noeud auto-géré exécutant la nouvelle version de Kubernetes. Après avoir purgé le noeud autogéré d'origine afin d'empêcher le démarrage de nouveaux pods et la suppression de pods existants, vous pouvez mettre fin à l'instance de calcul hébergeant le noeud autogéré d'origine.
Lors de la création du noeud autogéré, il vous incombe de spécifier une image contenant une version de Kubernetes conforme à la stratégie de prise en charge des écarts de version de Kubernetes décrite dans la documentation Kubernetes. Kubernetes Engine ne vérifie pas que la version de Kubernetes dans l'image que vous indiquez pour le nouveau noeud autogéré est compatible avec la version de Kubernetes exécutée sur les noeuds de plan de contrôle du cluster. Reportez-vous à la section Cluster Requirements.
Pour mettre à niveau la version de Kubernetes exécutée sur un noeud autogéré en remplaçant le noeud autogéré d'origine par un nouveau noeud autogéré, procédez comme suit :
- Créez une instance de calcul pour héberger le nouveau noeud autogéré :
- Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances.
- Suivez les instructions de la documentation du service Compute pour créer une instance de calcul. Les stratégies appropriées doivent exister pour permettre à la nouvelle instance de calcul de rejoindre le cluster amélioré. Reportez-vous à la section Creating a Dynamic Group and a Policy for Self-Managed Nodes.
- Dans la section Image et Forme, sélectionnez Modifier l'image.
- Sélectionnez Mes images, sélectionnez l'option OCID d'image, puis entrez l'OCID de l'image Oracle Linux 7 (OL7) ou Oracle Linux 8 (OL8) OKE exécutant la version la plus récente de Kubernetes. Reportez-vous à Exigences d'image.
- Sélectionnez Afficher les options avancées et, dans l'onglet Gestion, sélectionnez l'option Coller le script cloud-init.
- Copiez et collez le script cloud-init contenant l'adresse privée d'API Kubernetes et le certificat d'autorité de certification encodé en base64 dans le champ Script cloud-init. Reportez-vous à Création de scripts cloud-init pour les noeuds autogérés.
- Sélectionnez Créer pour créer l'instance de calcul destinée à héberger le noeud autogéré.
Lorsque l'instance de calcul est créée, elle est ajoutée en tant que noeud autogéré au cluster avec l'adresse d'API Kubernetes que vous avez indiquée.
- Vérifiez que le noeud autogéré a été ajouté au cluster Kubernetes et confirmez son statut de préparation en saisissant la commande suivante :
kubectl get nodes
Par exemple :
kubectl get nodes NAME STATUS ROLES AGE VERSION 10.0.103.170 Ready <none> 40m v1.25.4
- Vérifiez que les étiquettes ont été ajoutées au noeud et définies comme prévu en saisissant la commande suivante :
kubectl get node <node-name> -o json | jq '.metadata.labels'
Par exemple :
kubectl get node 10.0.103.170 -o json | jq '.metadata.labels' { ... "displayName": "oke-self-managed-node", "oci.oraclecloud.com/node.info.byon": "true", ... }
- Si des étiquettes sont attachées au noeud autogéré d'origine et que ces étiquettes sont utilisées par des sélecteurs (par exemple, pour déterminer les noeuds sur lesquels les pods doivent être exécutés), utilisez la commande
kubectl label nodes
pour attacher les mêmes étiquettes au nouveau noeud autogéré. Reportez-vous à Affectation de pods aux noeuds dans la documentation Kubernetes. -
Pour empêcher les nouveaux pods de démarrer et supprimer les pods existants sur le noeud autogéré d'origine, saisissez ce qui suit :
kubectl drain <node_name>
Pour plus d'informations :
- Pour en savoir plus sur l'utilisation de kubectl, reportez-vous à Accès à un cluster à l'aide de kubectl.
- Pour en savoir plus sur la commande drain, reportez-vous à drain dans la documentation Kubernetes.
Recommandation : si besoin, utilisez les budgets alloués en cas de perturbation de pod pour votre application afin de garantir qu'un nombre suffisant de pods de réplique est exécuté pendant toute l'opération de purge.
-
Une fois que vous avez purgé le noeud autogéré d'origine et que les pods s'exécutent sur le nouveau noeud autogéré, mettez fin à l'instance de calcul hébergeant le noeud autogéré d'origine. Reportez-vous à Terminaison d'une instance.