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
Découvrez comment mettre à niveau la version de Kubernetes exécutée sur un noeud autogéré dans une grappe améliorée créée 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 des noeuds gérés, voir Mise à niveau des noeuds gérés vers une version de Kubernetes plus récente.
Vous pouvez mettre à niveau la version de Kubernetes s'exécutant sur un noeud auto-géré en remplaçant le noeud auto-géré initial par un nouveau noeud auto-géré exécutant la version la plus récente de Kubernetes. Après avoir drainé le noeud auto-géré initial pour empêcher le démarrage de nouveaux pods et supprimer les pods existants, vous pouvez ensuite mettre fin à l'instance de calcul hébergeant le noeud auto-géré initial.
Notez que lors de la création du nouveau noeud autogéré, il vous incombe de spécifier une image contenant une version de Kubernetes conforme à la politique de prise en charge de l'asymétrie de version de Kubernetes décrite dans la documentation sur Kubernetes. Le moteur Kubernetes ne vérifie pas que la version de Kubernetes dans l'image que vous spécifiez pour le nouveau noeud autogéré est compatible avec la version de Kubernetes exécutée sur les noeuds de plan de contrôle de la grappe. Voir Exigences relatives aux grappes.
Pour mettre à niveau la version de Kubernetes s'exécutant sur un noeud auto-géré en remplaçant le noeud auto-géré initial par un nouveau noeud auto-géré :
- Créez une instance de calcul pour héberger le nouveau noeud autogéré :
- Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
- Pour créer une nouvelle instance de calcul, suivez les instructions de la documentation du service de calcul. Notez que des politiques appropriées doivent exister pour permettre à la nouvelle instance de calcul de se joindre à la grappe améliorée. Voir Création d'un groupe dynamique et d'une politique pour les noeuds autogérés.
- Dans la section Image et forme, sélectionnez Modifier l'image.
- Sélectionnez Mes images, sélectionnez l'option OCID de l'image, puis entrez l'OCID de l'image OKE Oracle Linux 7 (OL7) ou Oracle Linux 8 (OL8) exécutant la version plus récente de Kubernetes. Voir Exigences relatives aux images.
- 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 le point d'extrémité privé de l'API Kubernetes et le certificat AC encodé en base64 dans le champ Script Cloud-init. Voir Création de scripts Cloud-init pour les noeuds autogérés.
- Sélectionnez Créer pour créer l'instance de calcul pour héberger le noeud autogéré.
Lorsque l'instance de calcul est créée, elle est ajoutée en tant que noeud autogéré à la grappe avec le point d'extrémité d'API Kubernetes que vous avez spécifié.
- Vérifiez que le noeud autogéré a été ajouté à la grappe Kubernetes et vérifiez son statut de disponibilité en entrant :
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 entrant :
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 associées au noeud auto-géré initial et que ces étiquettes sont utilisées par des sélecteurs (par exemple, pour déterminer les noeuds sur lesquels exécuter les pods), utilisez la commande
kubectl label nodes
pour associer les mêmes étiquettes au noeud auto-géré. Voir Affectation de pods à des noeuds dans la documentation sur Kubernetes. -
Empêchez le démarrage de nouveaux pods et supprimez les pods existants du noeud auto-géré initial en entrant :
kubectl drain <node_name>
Pour plus d'informations :
- sur l'utilisation de kubectl, voir Accès à une grappe à l'aide de Kubectl
- sur la commande drain, voir drain dans la documentation sur Kubernetes
Recommandation : Utilisez les budgets d'interruption de pods de l'application pour faire en sorte qu'un nombre suffisant de répliques de pod s'exécutent pendant l'opération de drainage.
-
Lorsque vous avez vidé le noeud auto-géré initial et que les pods s'exécutent sur le nouveau noeud auto-géré, mettez fin à l'instance de calcul hébergeant le noeud auto-géré initial. Voir Interruption d'une instance.