Mettre à jour les paquets du système d'exploitation de l'ensemble des nœuds du cluster
Le cycle de vie des nœuds n'étant pas autonome, les mises à jour disponibles du système d'exploitation ne sont pas appliquées immédiatement dès leur disponibilité. Il est donc possible de mettre à jour les packages du système d'exploitation manuellement.
La mise à jour des paquets du système d'exploitation est effectuée sur chaque nœud, un par un. Le nœud sera indisponible durant la mise à jour, ce qui rendra indisponible toute la charge de travail (workload) qui lui était assignée.
L'ajout de nœuds dans un cluster rentre dans les actions qui impactent techniquement le cluster.
Cette action peut être lancée seulement si le cluster en question n'a pas d'autre opération en cours.
Pour rappel, toute opération constitue une demande qui a un impacte technique sur le cluster.
Voici la liste des opérations:
- Mettre à jour les paquets du système d'exploitation de l'ensemble des nœuds
- Supprimer des nœuds
- Mettre à jour les paquets OS des nœuds
- Mettre à niveau les nœuds
- Mettre à niveau le planel de contrôle
- Créer un cluster
- Supprimer un cluster
- Console
- API
Prérequis
- Un compte NumSpot.
- Un espace NumSpot auquel le compte est associé.
- Un compte avec le rôle
Kubernetes Admin
sur l'espace ou des accès RBAC qui accordent les droits nécessaires à la mise à jour les nœuds dans le cluster ciblé. - Un jeton de connexion associé au compte NumSpot utilisé.
Mettre à jour les nœuds
Choix de la version
La liste des versions disponibles peut être consultée depuis une API qui liste toutes les versions disponibles.
À noter qu'il est impossible pour les nœuds d'avoir une version supérieure à celle des masters.
L'écart de version entre la version initiale de Kubernetes du cluster et celle demandée ne doit pas dépasser deux versions MINOR
.
Il est donc requis, pour une mise à niveau MINOR
, d'effectuer d'abord une mise à niveau vers la dernière version PATCH
, puis de procéder à la mise à niveau MINOR
.
Les données qu'il faut avoir
SPACE_ID
est l'identifiant de l'espace NumSpot dans lequel le cluster a été crééREGION
est la région dans laquelle l'espace NumSpot a été crééACCESS_TOKEN
est le jeton (token) généré via la connexion (consulter la génération d'un token d'accès)CLUSTER_ID
est l'identifiant du cluster NumSpot sur lequel on veut effectuer la mise à jour
Requête de mise à niveau des nœuds
export REGION="myregion"
export SPACE_ID="myspaceid"
export ACCESS_TOKEN="myaccesstoken"
export CLUSTER_ID="myclusterid"
curl -X POST https://api.$REGION.numspot.com/kubernetes/spaces/$SPACE_ID/clusters/$CLUSTER_ID/nodes/update \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header 'Content-Type: application/json' \
--data '{
"version": "1.29.5"
}'
Si l'opération lancée est validée et acceptée, un objet Operation
est retourné par l'API avec un code de statut 202 Accepted
:
{
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"operationType": "UpdateNodes",
"status": "PENDING",
"progress": "During step",
"target": "https://..../kubernetes/spaces/{spaceId}/clusters/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"selfLink": "https://..../kubernetes/spaces/{spaceId}/operations/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"targetName": "myCluster",
"clusterid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
...
}