Changement d'environement d'execution (dockershim vers containerd)#
Prérequis:#
Le déploiement docker-exporter se retrouve "cassé" après le changement de runtime, il convient donc de le supprimer avant (ou après) le changement:
trackbone destroy -t <ZONE-NAME> -c docker_exporter
kubectl delete ns docker-exporter
I) Ajout de nodepool temporaires#
- Dans le fichier zones/ngot_zones/clusters.cue ajouter le code suivant dans le champ du cluster cible:
type: "cluster"
parameters: kubernetes: pools: {
"node-tmp1": {
runtime: "containerd"
availability_zone: "eu-west-0a"
}
"node-tmp2": {
runtime: "containerd"
availability_zone: "eu-west-0c"
}
}
-
Lancer la commande de plan suivante pour valider:
trackbone plan -z <ZONE-NAME> -c cce -t upgrade=true -
Lancer la commande de apply suivante:
trackbone apply -z <ZONE-NAME> -c cce
II) Recréation des nodepools#
-
Lancer un drain des nodes (utilisant dockershim):
kubectl drain <NODE1> ... <NODE> --ignore-daemonsets --delete-emptydir-data -
Editer le fichier zones/ngot_zones/clusters.cue pour y ajouter:
Le résultat doit être le suivant:type: "cluster" parameters: kubernetes: pools: { "nodes-0a": { runtime: "containerd" availability_zone: "eu-west-0a" } "nodes-0c": { runtime: "containerd" availability_zone: "eu-west-0c" } }type: "cluster" parameters: kubernetes: pools: { "node-tmp1": { min_nodes: 3 desired_nodes: 3 runtime: "containerd" availability_zone: "eu-west-0a" } "node-tmp2": { min_nodes: 3 desired_nodes: 3 runtime: "containerd" availability_zone: "eu-west-0c" } "nodes-0a": { runtime: "containerd" availability_zone: "eu-west-0a" } "nodes-0c": { runtime: "containerd" availability_zone: "eu-west-0c" } } -
Dans context/cce.cue ajouter le cluster à la liste des clusters mis à jour:
Cela mettra à jour le script de postinstall et donc recréera les random_pet et mettra à jour les nodepool.#UpdatedClusters: ["kub-10010", "kub-10011", "kub-10012", <ZONE-NAME>] -
Lancer la commande de plan suivante pour valider:
trackbone plan -z <ZONE-NAME> -c cce
Note: La commande peut renvoyer une erreur, dans ce cas il faut la relancer pour "faire le ménage".
- Lancer la commande de apply suivante:
trackbone apply -z <ZONE-NAME> -c cce
III) Bascule sur les nœuds d'origine#
- Une fois les nœuds d'origine recréés, lancer un drain des nœuds temporaires:
kubectl drain <NODE1> ... <NODE> --ignore-daemonsets --delete-emptydir-data
IV) Suppression des nœuds temporaires#
-
Editer le fichier zones/ngot_zones/clusters.cue et supprimer les nœuds temporaires:
type: "cluster" parameters: kubernetes: pools: { "nodes-0a": { runtime: "containerd" availability_zone: "eu-west-0a" } "nodes-0c": { runtime: "containerd" availability_zone: "eu-west-0c" } } -
Lancer un apply:
trackbone apply -z <ZONE-NAME> -c cce
Notes:#
- La commande generate-static-zones-files doit être lancée après chaque modifications du fichier clusters.cue
- La section concernant les nodepools nodes-0a et nodes-0c devra rester le temps de l'upgrade et sera déplacé dans le fichier model.cue à la fin.