Suppression d'un worker
La suppression d'un worker implique la suppression de tout le workload déjà présent dans ce même worker.
Un "Drain" est lancé avant la suppression des ressources infra, afin de permettre à kubernetes de rebalancer la charge de travail sur les autres workers encore actifs.
La suppression d'un worker implique la suppression de toutes les ressources associées, y compris :
- La machine virtuelle (VM) qu'elle représente
- Les volumes internes à ce worker
Pensez à bien exporter toutes les données dans un stockage sûr et non dépendant du nodepool car la suppression des workers et ses ressources est définitive.
- Console
- API
Depuis la page Services Managés > Kubernetes qui affiche la liste de vos clusters, cliquez sur l'UUID d'un cluster pour afficher les détails de ce dernier.
Dans la section Workers du cluster Kubernetes, cliquez sur le bouton Supprimer un worker correspondant au profil dont vous souhaitez réduire le nombre de workers.
Après avoir cliqué sur le bouton, vous devez confirmer la suppression d'un worker du type sélectionné.
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 supprimer des workers dans le cluster ciblé. - Un jeton de connexion associé au compte NumSpot utilisé.
Suppression d'un worker
La suppression de workers se fait de manière unitaire: la requête d'API de suppression permet de supprimer 1 worker à la fois.
Profil du worker à supprimer
Le profil des workers permet de spécifier les caractéristiques techniques des workers à ajouter au cluster. Pour simplifier son utilisation, il existe 5 profils de workers, détaillés sur la liste des profils
Assurez-vous que le profil sélectionné soit inclus dans le cluster et que le cluster contienne au moins deux workers.
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 suppression de workers
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/workers/remove \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header 'Content-Type: application/json' \
--data '{
"nodeProfile": "SMALL"
}'
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": "RemoveWorker",
"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",
...
}
Vérification du nombre de workers
Pour vérifier que les opérations d'ajout et suppression ont bien abouti, un GET cluster permet de lister les workers du cluster.
curl https://api.$REGION.numspot.com/kubernetes/spaces/$SPACE_ID/clusters/$CLUSTER_ID \
--header "Authorization: Bearer $ACCESS_TOKEN"
Alternativement, kubectl peut être utilisé pour s'assurer que l'état du cluster est celui attendu:
kubectl get nodes
# Pour avoir plus de détails sur les nodes
kubectl describe nodes