Utilisez le centre de sauvegarde pour sauvegarder et restaurer des applications dans les clusters ACK situés dans différentes régions, afin d'assurer la reprise après sinistre.
Avant de commencer
Vérifiez les contraintes suivantes avant de poursuivre.
| Contrainte | Détail |
|---|---|
| Type de stockage | Seules les applications et les volumes sur disques Alibaba Cloud sont pris en charge. Les autres types de stockage ne permettent pas de migrer les données de volume intactes. |
| Applications avec état utilisant un stockage non Alibaba Cloud | Désactivez l'option Backup Volume pour ces applications. Sinon, la récupération inter-régions échouera. |
| Version du cluster de destination | Le cluster de destination doit exécuter Kubernetes 1.18 ou une version ultérieure pour restaurer les données de disque cloud à partir des snapshots ECS (Elastic Compute Service). |
| Plug-in de stockage du cluster de destination | Le cluster de destination doit utiliser le plug-in de stockage CSI (Container Storage Interface). Les clusters utilisant FlexVolume, ou à la fois CSI et FlexVolume via csi-compatible-controller, ne sont pas pris en charge. |
| Ressources en cours de suppression | Les ressources en cours de suppression lors de la sauvegarde sont exclues. |
| Immuabilité du dépôt de sauvegarde | Les dépôts de sauvegarde sont immuables après leur création et ne peuvent être que supprimés. Recréer un dépôt portant le même nom ne fonctionne pas dans les clusters qui ont utilisé l'original. |
| Clusters ACK dédiés et enregistrés | Pour les clusters Kubernetes autogérés sur ECS, vérifiez les autorisations de snapshot de disque ECS avant d'utiliser la récupération de volume inter-régions. Consultez la rubrique Installer le composant de service de sauvegarde migrate-controller et configurer les autorisations. |
Prérequis
Assurez-vous de disposer des éléments suivants :
Un cluster de destination exécutant Kubernetes 1.18 ou une version ultérieure (Créer un cluster ACK managé, Créer un cluster ACK dédié (n'est plus disponible pour les nouvelles créations), ou Créer un cluster enregistré et se connecter à un cluster de centre de données).
Un cluster de destination utilisant le plug-in de stockage CSI.
-
Les composants système installés dans le cluster de destination avant la restauration :
Module complémentaire ACR sans mot de passe : accordez les autorisations et configurez
acr-configuration.Module complémentaire ALB Ingress : configurez
ALBConfiget d'autres paramètres.
Le module complémentaire
migrate-controllerinstallé et les autorisations configurées sur les deux clusters. Consultez la rubrique Installer le composant de service de sauvegarde migrate-controller et configurer les autorisations.Les snapshots de disque cloud ECS activés. Consultez la rubrique Activer les snapshots de disque cloud ECS. L'activation du service de snapshot est gratuite. Les snapshots entraînent des frais de paiement à l'utilisation basés sur la taille et la durée de rétention. Consultez la rubrique Facturation des snapshots.
Préparatifs
Cet exemple utilise la configuration suivante :
Cluster de sauvegarde : cluster ACK Pro Cluster_BJ dans la région Chine (Pékin)
Cluster de récupération : cluster ACK Pro Cluster_SZ dans la région Chine (Shenzhen)
Dépôt de sauvegarde : associé à un bucket OSS dans la région Chine (Pékin)
Étape 1 : Dans la région Chine (Pékin), créez un bucket OSS dont le nom commence par cnfs-oss-***.
Si un bucket OSS éligible existe déjà dans cette région, ignorez cette étape.
Étape 2 : Créez une application Nginx avec état dans le namespace par défaut de Cluster_BJ.
cat << EOF | kubectl apply -f -
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
labels:
app: nginx
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "alicloud-disk-topology-alltype"
resources:
requests:
storage: 20Gi
EOF
Étape 1 : Créer un dépôt de sauvegarde
Le centre de sauvegarde stocke les données de sauvegarde dans OSS. Créez un dépôt si aucun n'existe.
-
La connexion réseau entre un dépôt de sauvegarde et son bucket OSS est configurée automatiquement, ce qui affecte les vitesses de chargement et de téléchargement des sauvegardes.
Même région (cluster et bucket OSS) : utilisation de PrivateLink.
Régions différentes (cluster et bucket OSS, comme dans les scénarios inter-régions) : utilisation d'une connexion au réseau public. Activez l'accès au réseau public avant de poursuivre. Consultez la rubrique Activer l'accès au réseau public pour un cluster.
Les dépôts de sauvegarde sont immuables après leur création et ne peuvent être que supprimés. Recréer un dépôt portant le même nom ne fonctionne pas dans les clusters qui ont utilisé l'original.
Consultez la rubrique Créer un dépôt de sauvegarde.
Étape 2 : Sauvegarder l'application dans Cluster_BJ
La migration inter-régions prend uniquement en charge les applications sans état et les applications avec état utilisant exclusivement des disques Alibaba Cloud. Pour les autres applications avec état, désactivez l'option Backup Volume pour éviter les échecs de récupération.
Consultez la rubrique Créer une planification de sauvegarde ou une sauvegarde immédiate.
Étape 3 : Restaurer l'application dans Cluster_SZ
Consultez la rubrique Restaurer des applications et des volumes.
Étape 4 : Vérifier la migration
Confirmez que l'application Nginx s'exécute correctement dans Cluster_SZ.
À l'aide de kubectl :
kubectl get pods -n default
kubectl get pvc -n default
Vérifiez que l'état du Pod est Running et que la PersistentVolumeClaim (PVC) est Bound.
À l'aide de la console :
Connectez-vous à la console de gestion Container Service. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page de gestion de Cluster_SZ, dans le volet de navigation de gauche, choisissez Workloads > StatefulSets.
Dans la colonne Actions pour l'application Nginx, cliquez sur Details, puis cliquez sur l'onglet Pods. Confirmez que l'état de l'application est Running.
Étapes suivantes
Pour migrer entre des clusters dotés de plug-ins de stockage ou de versions Kubernetes différents, consultez la rubrique Utiliser le centre de sauvegarde pour migrer des applications depuis des clusters Kubernetes de versions antérieures.
Pour migrer des applications via la ligne de commande, consultez la rubrique Utiliser kubectl pour sauvegarder et restaurer des applications de cluster.