Utilice el centro de copias de seguridad para respaldar y restaurar aplicaciones en clústeres de ACK entre distintas regiones como parte de su estrategia de recuperación ante desastres.
Antes de empezar
Revise las siguientes restricciones antes de continuar.
|
Restricción |
Detalle |
|
Tipo de almacenamiento |
Solo se admiten aplicaciones y volúmenes en discos de Alibaba Cloud. Con otros tipos de almacenamiento no es posible migrar conservando intactos los datos del volumen. |
|
Aplicaciones con estado que usan almacenamiento externo a Alibaba Cloud |
Desmarque la casilla Backup Volume para estas aplicaciones. De lo contrario, la recuperación entre regiones fallará. |
|
Versión del clúster de destino |
El clúster de destino debe ejecutar Kubernetes 1.18 o posterior para restaurar datos de discos en la nube a partir de instantáneas de Elastic Compute Service (ECS). |
|
Plugin de almacenamiento del clúster de destino |
El clúster de destino debe usar el plugin de almacenamiento Container Storage Interface (CSI). No se admiten los clústeres que usan FlexVolume, ni aquellos que combinan CSI y FlexVolume mediante |
|
Recursos en proceso de eliminación |
Se excluyen los recursos que se estén eliminando durante la copia de seguridad. |
|
Inmutabilidad del repositorio de copias de seguridad |
Los repositorios de copias de seguridad son inmutables después de su creación y únicamente se pueden eliminar. Si crea uno nuevo con el mismo nombre, no funcionará en los clústeres que usaban el original. |
|
Clústeres dedicados y registrados de ACK |
En clústeres de Kubernetes autogestionados sobre ECS, compruebe los permisos de instantáneas de disco de ECS antes de usar la recuperación de volúmenes entre regiones. Consulte Install the migrate-controller backup service component and configure permissions. |
Requisitos previos
Asegúrese de contar con lo siguiente:
Un clúster de destino que ejecute Kubernetes 1.18 o posterior (Create an ACK managed cluster, Create an ACK dedicated cluster (no longer available for new creation) o Create a registered cluster and connect to a data center cluster).
Un clúster de destino que utilice el plugin de almacenamiento CSI.
-
Componentes del sistema instalados en el clúster de destino antes de la restauración:
Complemento sin contraseña de ACR: otorgue los permisos correspondientes y configure
acr-configuration.Complemento ALB Ingress: configure
ALBConfigy los demás parámetros necesarios.
El complemento
migrate-controllerinstalado y sus permisos configurados en ambos clústeres. Consulte Install the migrate-controller backup service component and configure permissions.Las instantáneas de discos en la nube de ECS habilitadas. Consulte Enable ECS cloud disk snapshots. Habilitar el servicio de instantáneas no tiene costo, pero estas generan cargos de pay-as-you-go según su tamaño y tiempo de retención. Consulte Snapshot billing.
Preparativos
Este ejemplo utiliza la siguiente configuración:
Clúster de copia de seguridad: clúster ACK Pro Cluster_BJ en la región China (Beijing).
Clúster de recuperación: clúster ACK Pro Cluster_SZ en la región China (Shenzhen).
Repositorio de copias de seguridad: asociado a un bucket de OSS en la región China (Beijing).
Paso 1: en la región China (Beijing), cree un bucket de OSS cuyo nombre comience con cnfs-oss-***.
Si ya existe un bucket de OSS que cumpla este requisito en dicha región, omita este paso.
Paso 2: cree una aplicación Nginx con estado en el namespace predeterminado 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
Paso 1: Crear un repositorio de copias de seguridad
El centro de copias de seguridad almacena los datos en OSS. Cree un repositorio si aún no cuenta con uno.
-
La red entre un repositorio de copias de seguridad y su bucket de OSS se configura automáticamente, lo cual afecta la velocidad de carga y descarga de las copias de seguridad.
Misma región (clúster y bucket de OSS): se utiliza PrivateLink.
Regiones distintas (clúster y bucket de OSS, como en los escenarios entre regiones): se emplea una conexión de red pública. Habilite el acceso por red pública antes de continuar. Consulte Enable public network access for a cluster.
Los repositorios de copias de seguridad son inmutables después de su creación y únicamente se pueden eliminar. Si crea uno nuevo con el mismo nombre, no funcionará en los clústeres que usaban el original.
Consulte Create a backup repository.
Paso 2: Respaldar la aplicación en Cluster_BJ
La migración entre regiones solo admite aplicaciones sin estado y aplicaciones con estado que utilicen exclusivamente discos de Alibaba Cloud. Para otras aplicaciones con estado, desmarque Backup Volume para evitar fallos durante la recuperación.
Paso 3: Restaurar la aplicación en Cluster_SZ
Consulte Restore applications and volumes.
Paso 4: Comprobar la migración
Compruebe que la aplicación Nginx se ejecute correctamente en Cluster_SZ.
Con kubectl:
kubectl get pods -n default
kubectl get pvc -n default
Verifique que el estado del Pod sea Running y que el PersistentVolumeClaim (PVC) esté Bound.
Desde la consola:
Inicie sesión en la Container Service Management Console. En el panel de navegación izquierdo, haga clic en Clusters.
En la página de administración de Cluster_SZ, dentro del panel de navegación izquierdo, elija Workloads > StatefulSets.
En la columna Actions de la aplicación Nginx, haga clic en Details y luego en la pestaña Pods. Confirme que el estado de la aplicación sea Running.
Siguientes pasos
Para migrar entre clústeres con distintos plugins de almacenamiento o versiones de Kubernetes, consulte Use the backup center to migrate applications from Kubernetes clusters of earlier versions.
Para migrar aplicaciones desde la línea de comandos, consulte Use kubectl to back up and restore cluster applications.