Requisitos del clúster Kubernetes para NetApp Disaster Recovery
Antes de configurar NetApp Disaster Recovery para clústeres de Kubernetes, tienes que preparar cada clúster de Kubernetes. Normalmente, la protección se aplica a un clúster de origen y a un clúster de destino independiente, lo que significa que estos procedimientos deben aplicarse a cada clúster del par.
Prerrequisitos
Antes de configurar los requisitos del clúster de Kubernetes, asegúrate de haber configurado tu clúster de Kubernetes y los clústeres de ONTAP.
Recuperación en caso de catástrofe es compatible con "cualquier versión de Kubernetes actualmente soportada por Trident Protect".
Clústeres Kubernetes
Para cada clúster de Kubernetes, asegúrate de lo siguiente:
-
Tienes acceso de administrador
kubectla cada clúster Kubernetes. -
Helm 3 está disponible donde ejecutas los comandos de instalación
Requisitos ONTAP
Para cada clúster ONTAP, asegúrate de haber configurado los siguientes recursos:
-
Management LIF - lo utiliza Trident para acceder a la API de gestión
-
Data (NFS) LIF - se utiliza para el tráfico NFS de volúmenes
-
Nombre de la SVM - la SVM de almacenamiento que aloja los volúmenes
-
Credenciales - La cuenta que utilizará Trident (generalmente,
admino una cuenta de ámbito SVM) -
Los nodos de trabajo deben poder acceder a los LIFs de gestión y datos de ONTAP.
-
Si usas
autoExportPolicycon restricciones CIDR, incluye las subredes de tus nodos.
Instala NetApp Trident CSI
Si ya has instalado Trident, verifica la instalación con el comando
kubectl get pods -n trident. Si la instalación es exitosa, verás el controlador Trident, los pods de nodo (DaemonSet) y el estado del operador es Running después de unos minutos.
Configura el backend de ONTAP y el StorageClass de Trident
Crear un secreto de Kubernetes
Crea un secreto de Kubernetes en el espacio de nombres:
+
kubectl create secret generic trident-ontap-secret -n <namespace> \
--from-literal=username=<adminOrOtherUsername> \
--from-literal=password='<YOUR_ONTAP_PASSWORD>'
Para más información, consulta "Crea un secreto de Kubernetes en el espacio de nombres".
Crea el TridentBackendConfig
Puedes
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: <name>
namespace: <trident>
spec:
version: 1
backendName: <name>
storageDriverName: <driverName>
managementLIF: <MANAGEMENT_LIF_IP>
dataLIF: <DATA_LIF_IP>
svm: <SVM_NAME>
autoExportPolicy: true
autoExportCIDRs:
- 0.0.0.0/0
credentials:
name: trident-ontap-secret
Puedes verificar la configuración con el comando kubectl get TridentBackendConfig -n trident. Si la configuración fue exitosa, la salida de phase debería mostrarse como Bound y la de status debería mostrarse como Success. Si el estado es Failed, revisa los pasos para "Más información" y luego resuelve cualquier problema, como credenciales incorrectas o falta de conectividad de red.
Configura la clase de almacenamiento
"Crear el objeto de clase de almacenamiento". Usa el provisioner csi.trident.netapp.io. Por ejemplo:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: <name>
provisioner: csi.trident.netapp.io
parameters:
backendType: "<type>"
storagePools: "<pool>:.*"
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Opcionalmente, puedes marcar una clase de almacenamiento como la predeterminada del clúster. Solo puedes designar una predeterminada por clúster.
kubectl patch storageclass ontap-backend \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Los PVC de aplicación que replica Trident Protect deben utilizar almacenamiento aprovisionado a través de Trident (este StorageClass u otro que definas con storagePools / selectores correctos).
Para que Trident Protect replique los datos de tus aplicaciones, estas deben usar almacenamiento que provenga de volúmenes ONTAP gestionados por Trident. Puedes usar esta clase de almacenamiento u otra, pero debe estar configurada para usar el backend de ONTAP a través de Trident.
Configura las definiciones de recursos personalizados (CRD) de instantáneas de grupo de volúmenes
"Instala el CRD de instantáneas y el controlador de instantáneas.". Estas instalaciones son necesarias para las instantáneas de volumen en Trident Protect.
Verifica las definiciones de recursos personalizados con el comando:
kubectl get crd volumesnapshots.snapshot.storage.k8s.io
kubectl get crd volumesnapshotcontents.snapshot.storage.k8s.io
kubectl get crd volumesnapshotclasses.snapshot.storage.k8s.io
Configurar instantáneas de grupo de volúmenes
kubectl patch volumesnapshotclasses.snapshot.storage.k8s.io trident-snapshotclass \
-p '{"metadata": {"annotations":{"snapshot.storage.kubernetes.io/is-default-class":"true"}}}' \
--type=merge
Puedes designar opcionalmente la clase de instantánea de volumen como clase predeterminada. Usa deletionPolicy: Retain si necesitas que los objetos de instantánea de Kubernetes huérfanos dejen instantáneas en ONTAP.
Resumen de verificación
| Verifica | Comando | Salida esperada |
|---|---|---|
Trident está en marcha |
|
Trident funciona correctamente |
El backend está sano |
|
Vinculado/éxito |
El almacenamiento está expuesto |
|
La salida incluye tu clase Trident |
API de instantáneas |
|
Existen CRD; enumera el controlador Trident |
Después de verificar el estado de todos los recursos, despliega o "migrar" tus cargas de trabajo usando tu Trident StorageClass. Cuando "añade clústeres de Kubernetes a un sitio", Disaster Recovery te da instrucciones para instalar Trident Protect en un clúster y registrarlo en tu entorno de Disaster Recovery.
Revisa las instrucciones para instalar Trident Protect.
-
Crea un espacio de nombres Trident protect:
kubectl create namespace trident-protect -
Crea un secreto de Kubernetes usando el client ID y el client secret para crear las credenciales de autenticación de occm.
kubectl create secret generic occmauthcreds --namespace=trident-protect --from-literal=client_id=<clientID> --from-literal=<clientSecret> -
Agrega o actualiza el repositorio de helm:
helm repo add --force-update netapp-trident-protect https://netapp.github.io/trident-protect-helm-chart -
Instala o actualiza Trident Protect y Trident Protect Connector:
helm upgrade --install trident-protect netapp-trident-protect/trident-protect-console \
--version 100.2605.0-console --namespace trident-protect --set clusterName=<clusterName> --set trident-protect.cbs.accountID=<accountID> --set trident-protect.cbs.agentID=<agentID> --set trident-protect.cbs.proxySecretName=occmauthcreds --set trident-protect.cbs.proxyHostIP=<IPaddress>