Apres l’installation du nouveau cluster vient le moment de la migration.
Pour réaliser cette opération il existe un outil indispensable à toute installation de cluster kubernetes: Kasten
Il permet de réaliser les sauvegardes non seulement des stockages persistants, mais de tout votre déploiement.
Il permet aussi d’exporter les sauvegardes réalisées vers le clous (aws, azure…) ou sur un stockage générique S3 (MinIO ou autre)
Et lors des restaurations, il permet de restaurer en modifiant par exemple le storage-class, se qui permet par exemple d’importer une sauvegarde qui n’aurait pas les memes classes de stockage qu’a la source: donc, no problemo pour sauvegarder un cluster OnPrem, et le restaurer dans le cloud ou vice-versa…
Le mode opératoire pour la migration sera le suivant :
- Installation de kasten, sauvegarde des workloads
- Exportation sur un stockage externe accessibles des deux cluster, stockage qui pour ma part sera de type stockage S3 fournit par un container MinIO tournant sur un serveur physique indépendant.
- Importation des workloads avec kasten sur le cluster cible.
Pour l’importation, kasten se chargera de créer les PVC, il restaurera les donnée persistantes précédemment sauvegardées et enfin créera les déploiements, les services, secrets certificats , ingress et j’en passe, enfin, tout ce qui était présent en source.
Il ne restera plus qu’a rediriger le trafic sur ce cluster au travers du load-balancer niveau 4 et le tour sera joué.
Installation de kasten
Pour installer Kasten, la façon la plus aisée est d’utiliser helm.
Avant de lacer la commande il faut s’assurer que l’on a déclaré un une classe de stockage persistent par default. Dans mon cas Portworx:
Il faudra créér un name-space :
1 |
kubectl create namespace kasten-io |
Attention, petite remarque: il faut impérativement que le name-space de kasten soit le meme en source et destination, sinon l’importation de fonctionne pas !!!!
Ensuite on lance l’install avec la commande suivante: j’ai désactivé grafana et prometheus pour avoir une install plus light:
1 |
helm install k10 kasten/k10 --namespace=kasten-io --set grafana.enabled=false --set prometheus.server.enabled=false |
Configuration de Kasten
Une fois l’installation terminée (cela prends 2 a trois minutes), on se rend dans les services du name-space kasten-io pour chercher le service gateway:
C’est ce service qui permet d’acceder à l’interface kasten.
Pour se connecter en utilisant l’interface Lens, il suffit de cliquer sur le bouton Forward:
Un navigateur va se lancer automatiquement:
Pas de panique ! c’est normal qu’il n’y ai rien, kasten répond sur une url bien précise: /k10/#
Si on la rajoute dans le chemin cela fonctionne:
J’ai déja installé kasten, mais lors de la premiere installation vous aurez un écran de bienvenue, rien de bien particulier a décrire.
Il faudra en revanche paramètrer deux élément au niveau des settings:
- « Locations »
- « Infrastructure »
Dans Location, on créera un profil ou sont exportés les backups: Ce profil doit être exactement le même dans l’installation de kasten source et l’installation kasten de destination.
Apres un click sur new profile j’ai créé mon profil MinIO ou j’exporte mes sauvegardes du cluster source:
Pour l’infrastructure, pour moi c’est du Portworx et j’ai tout laissé par défaut:
Voila ! L’installation est terminée, et prête à sauvegarder et à restaurer des workloads !
Prochaine étape: configurer l’exportation des workloads sur le cluster source, et la restauration sur le cluster cible…