OpenShift Recuperación de desastres regional de Data Foundation en clústeres de Red Hat OpenShift on IBM Cloud
Nube privada virtual 4.17 y más tarde
La recuperación ante desastres regional garantiza la continuidad del negocio durante la indisponibilidad de una región geográfica. Puede utilizar la Gestión Avanzada de Clústeres (ACM) de Red Hat para configurar las soluciones de recuperación ante desastres regionales para los clústeres de la Base de Datos OpenShift (ODF).
Cada paso está etiquetado para indicar en qué clúster debe ejecutarse. Utiliza la siguiente leyenda como referencia.
| Etiqueta | Clúster |
|---|---|
| Clúster de nodos centrales | Pasos que hay que seguir en el clúster central (el clúster en el que está instalado ACM). |
| Clúster gestionado | Pasos que hay que seguir en cada clúster gestionado (los clústeres ODF primario y secundario). |
Estos son los pasos generales de esta solución:
- Crea el clúster central.
- Crea un perfil de confianza para el clúster del hub.
- Crea los clústeres gestionados.
- Prepara los secretos para ACM en el clúster del hub.
- Instala el complemento ACM en el clúster del hub.
- Instala Submariner en los clústeres gestionados para establecer la conectividad entre ellos.
- Instala ODF en los clústeres gestionados.
- Configure la política regional de recuperación de desastres.
Con esta configuración, el clúster concentrador en el que ha instalado ACM gestiona los clústeres ODF. Si el clúster ODF principal deja de estar disponible, el clúster central transfiere las aplicaciones y los datos del clúster ODF principal al clúster ODF secundario.
La recuperación ante desastres regional de ODF es compatible con aplicaciones basadas en suscripción, de descubrimiento ApplicationSet-based, y de VM. Para obtener más información, consulta «Aplicaciones y cargas de trabajo compatibles» al final de esta página.
Antes de empezar
Antes de crear los clústeres, recopila los datos de la VPC y de Cloud Object Storage que necesitas introducir en los comandos de creación de clústeres.
-
Recupera tus ID de VPC. Anota el ID de la VPC que deseas utilizar para cada clúster.
ibmcloud is vpcs -
Recuperar los detalles de la subred de una VPC específica. Anota los ID de subred que quieras utilizar para cada clúster.
ibmcloud is subnets --vpc VPC_ID -
Enumera tus instancias de Cloud Object Storage.
ibmcloud resource service-instances --service-name cloud-object-storage -
Recupera el CRN de la instancia que deseas utilizar. Tenga en cuenta el valor del campo
ID.ibmcloud resource service-instance SERVICE_INSTANCE
Paso 1. Crear el clúster central
Clúster de nodos centrales
Este es el clúster en el que se instala ACM para gestionar los clústeres ODF primario y secundario. Asegúrese de que su clúster central disponga de al menos capacidad de cálculo 16 vCPU x 64 GB disponible.
Para cada clúster, asegúrese de permitir el tráfico saliente incluyendo el parámetro --disable-outbound-traffic-protection en la CLI o seleccionando la opción para desactivar la protección del tráfico saliente en la UI.
-
Cree un clúster VPC en
us-eastpara instalar ACM en él. Este es el clúster central que puede utilizar para gestionar sus clústeres ODF. Asegúrate de que tu clúster central cuente con al menos 3 nodos de trabajo que ejecuten RHCOS, una capacidad de cálculo disponible de al menos 16 vCPU y 64 GB, el tráfico saliente desactivado y que cumpla todos los requisitos previos para ACM. El siguiente comando ejemplo crea un cluster para ACM enus-east.ibmcloud ks cluster create vpc-gen2 --flavor bx2.16x64 --name acm-hub-cluster-dr-odf --subnet-id SUBNET_ID --vpc-id VPC_ID --zone us-east-2 --version 4.21.27_openshift --workers 3 --cos-instance COS_CRN --disable-outbound-traffic-protection --cni OVNKubernetes -
Anota el ID del clúster que aparece en la salida. Lo necesitarás en un paso posterior.
Paso 2. Crear un perfil de confianza para el clúster del hub
Clúster de nodos centrales
- Crea un perfil de confianza.
ibmcloud iam trusted-profile-create acm-operator-profile - Crea la regla de confianza del recurso de computación, limitada al espacio de
kube-systemnombres de los recursos de computación de Red Hat OpenShift.ibmcloud iam trusted-profile-rule-create acm-operator-profile \ --name kube-system-rule \ --type Profile-CR \ --conditions claim:namespace,operator:EQUALS,value:kube-system \ --cr-type ROKS_SA - Asigna la política de acceso de IAM al perfil. Sustituye
CLUSTER_IDpor el ID de tu clúster de hub.ibmcloud iam trusted-profile-policy-create acm-operator-profile \ --roles Reader,Viewer,Operator,Editor \ --service-name containers-kubernetes \ --service-instance CLUSTER_ID - Asigna el perfil de confianza al clúster del hub. Una vez que se haya asignado un perfil de confianza a un clúster, este no se podrá eliminar.
ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID - Si utilizas la versión 4.21 o posterior de ODF, instala el operador OpenShift ( GitOps ) en el clúster del hub. Para conocer los pasos de instalación, consulta Instalación de Red Hat OpenShift GitOps Operator en la consola web.
Paso 3. Crear los clústeres gestionados
Clúster gestionado
-
Crea un clúster VPC en
us-eastcon al menos 3 nodos de trabajo que ejecuten RHCOS, una capacidad de computación disponible de al menos 16 vCPU y 64 GB, y la protección del tráfico saliente desactivada. Este será el cluster ODF primario gestionado. El siguiente comando de ejemplo crea un clúster enus-east.ibmcloud ks cluster create vpc-gen2 --flavor bx2.16x64 --name managed-cluster-1-dr-odf --subnet-id SUBNET_ID --vpc-id VPC_ID --zone us-east-2 --version 4.21.27_openshift --workers 3 --cos-instance COS_CRN --disable-outbound-traffic-protection --cni OVNKubernetes -
Crea un clúster VPC en
jp-tokcon al menos 3 nodos de trabajo que ejecuten RHCOS, una capacidad de computación disponible de al menos 16 vCPU y 64 GB, y la protección del tráfico saliente desactivada. Este será el clúster ODF secundario gestionado. Para una alta disponibilidad, asegúrese de que la red del clúster secundario no se solapa con la red del clúster primario. El siguiente comando de ejemplo crea un clúster enjp-tok.ibmcloud ks cluster create vpc-gen2 --flavor bx2.16x64 --name managed-cluster-2-dr-odf --subnet-id SUBNET_ID --vpc-id VPC_ID --zone jp-tok --version 4.21.27_openshift --workers 3 --cos-instance COS_CRN --disable-outbound-traffic-protection --cni OVNKubernetes
Paso 4. Preparar secretos para ACM
Clúster de nodos centrales
Para cada clúster que desee gestionar con ACM, debe crear un secreto en el clúster central que incluya el token de acceso y el servidor URL del clúster gestionado.
Si desea importar clústeres gestionados durante el proceso de instalación del complemento ACM, siga estos pasos antes de comenzar la instalación. Si decide crear los secretos e importar clústeres gestionados una vez instalado el complemento en el clúster central, puede hacerlo siguiendo unos pasos adicionales mediante la CLI.
Sigue los siguientes pasos para cada clúster que desees gestionar.
-
En el clúster que desee gestionar con ACM, ejecute el comando para localizar el servidor URL. En el resultado, busca y anota el valor Master URL. Este es el servidor URL al que hay que hacer referencia en el secreto. También utilizarás este URL en los siguientes pasos.
ibmcloud oc cluster get -c CLUSTER_NAME_OR_IDEjemplo de salida.
NAME: mycluster ID: 1234567 State: normal Created: 2025-01-22T19:22:16+0000 Location: dal10 Master URL: https://c100-e.<region>.containers.cloud.ibm.com:<port> ... -
Recuperar la base URL del servidor OAuth Red Hat OpenShift. Sustituye
MASTER_URLpor el URL que has encontrado en el paso anterior. El comando extrae la base URL sin el sufijo/oauth/token.curl -sS MASTER_URL/.well-known/oauth-authorization-server | jq -r .token_endpoint | sed 's#/oauth/token##'Ejemplo de salida.
https://c111-e.us-east.containers.cloud.ibm.com:31282 -
Recupera un token de acceso utilizando el punto final obtenido en el paso anterior. Ejecuta el siguiente comando cURL, sustituyendo
URLpor el resultado del paso anterior yAPI_KEYpor tu clave de API de IBM Cloud. En el resultado, busca el que figuraACCESS_TOKENen la respuesta Location. Este es el token de acceso que hay que incluir en el secreto.Ejemplo de solicitud de curl:
curl -u 'apikey:API_KEY' -H "X-CSRF-Token: a" 'URL/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvvEjemplo de salida. El ACCESS_TOKEN se incluye en la cadena de respuesta de Location.
< HTTP/1.1 302 Found < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Expires: 0 < Expires: Fri, 01 Jan 2030 00:00:00 GMT < Location: TOKEN_ENDPOINT/oauth/token/implicit#access_token=ACCESS_TOKEN&expires_in=86400&scope=user%3Afull&token_type=Bearer ... -
En el clúster central, crea un secreto que contenga el token de acceso al clúster y el servidor URL. Para obtener información sobre cómo crear secretos, consulta la sección Trabajar con secretos en la documentación de Kubernetes.
Ejemplo de secreto.
apiVersion: v1 kind: Secret metadata: name: SECRET_NAME namespace: SECRET_NAMESPACE # The namespace that the secret is to be created in type: Opaque stringData: token: ACCESS_TOKEN server: SERVER_URL
Paso 5. Instala el complemento ACM en el clúster del hub
Clúster de nodos centrales
Utilice la CLI para instalar el complemento ACM en el clúster del hub.
-
Busca la versión predeterminada del complemento ACM.
ibmcloud oc cluster addon versions -
Consulta las opciones de complementos de ACM. En el comando, especifica la versión predeterminada que has encontrado en el paso anterior. Anota cualquier opción que quieras incluir al instalar el complemento.
ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION -
Si desea importar clústeres para que los gestione el complemento, siga los pasos descritos en Preparación de secretos para ACM si aún no lo ha hecho. Asegúrate de guardar el ID del clúster, así como el nombre y el espacio de nombres del secreto que crees en el clúster del hub. También puede completar este proceso una vez instalado el complemento en el clúster del hub; sin embargo, se requieren pasos adicionales para importar clústeres gestionados tras la instalación.
-
Ejecuta el comando para activar el complemento. Asegúrese de especificar los
isLicenseAcceptedparámetros ybillingPlan, así como el--managedClustersparámetro opcional si desea importar clústeres durante el proceso de instalación.ibmcloud oc cluster addon enable acm --cluster HUB_CLUSTER_ID --param 'managedClusters=["clusterid:CLUSTER_ID;secretname:SECRET_NAME;secretnamespace:SECRET_NAMESPACE;action:IMPORT"]' --param 'billingPlan=PLAN' --param 'isLicenseAccepted=BOOLEAN'Parámetros comando. Consulta el comando de ejemplo que aparece a continuación para ver un ejemplo de cada tipo de parámetro.
--cluster- Obligatorio. El ID del clúster central en el que se va a instalar el complemento ACM.
--param 'managedClusters=["]-
- Opcional. Incluye este parámetro una o más veces para importar clústeres gestionados durante el proceso de instalación del complemento. También puede completar este paso más tarde. Para obtener más información, consulta Preparación de secretos para ACM.
- Especifique los valores siguientes:
-
- clusterid: El ID del clúster gestionado que se va a importar.
-
- secretname: El nombre del secreto que has creado en el clúster del hub. Este secreto contiene las credenciales del clúster gestionado.
-
- secretnamespace: El espacio de nombres del secreto que has creado en el clúster del hub. Este secreto contiene las credenciales del clúster gestionado.
-
- acción:IMPORT: El parámetro que especifica la acción IMPORT para el clúster gestionado.
--param 'billingPlan='- Obligatorio. El plan de facturación que desea seleccionar para ACM. Especifica
KUBERNETESpara el plan ACM de Kubernetes. --param 'isLicenseAccepted='- Obligatorio. Seleccione esta opción para
TRUEaceptar el contrato de licencia del plan de facturación seleccionado. Al aceptar esta licencia, aceptas los términos y condiciones aplicables y confirmas que comprendes los servicios incluidos en el plan seleccionado.
Ejemplo comando comando para instalar el complemento ACM con el plan de facturación ACM for Kubernetes e importar un clúster gestionado.
ibmcloud ks cluster addon enable acm --cluster a5bcde982dfer2nwxq73 --param 'managedClusters=["clusterid:w7rthce34gfbq7ww12d3;secretname:managed-secret-1;secretnamespace:managed-ns1;action:Import"]' --param 'billingPlan=KUBERNETES' --param 'isLicenseAccepted=true' -
Comprueba que el complemento se haya instalado. El complemento puede tardar varios minutos en aparecer en los siguientes resultados.
- En el clúster del hub, comprueba que se haya creado el recurso
acmhub.
oc get acmhub ``` Ejemplo de salida. ```sh {: screen} NAME AGE acm-auto 1h ``` 1. En el clúster central, comprueba el estado `acmhub`. ```sh {: pre} oc describe acmhubstatus ``` Ejemplo de salida. ```sh {: screen} status phase: Ready ``` - En el clúster del hub, comprueba que se haya creado el recurso
Paso 6. Configurar el complemento Submariner
Clúster gestionado
Siga los pasos para instalar y configurar el complemento Submariner, que establece la conectividad entre sus dos clústeres gestionados. Estos pasos utilizan la consola ACM. Para obtener información más detallada, consulta Implementación de Submariner mediante la consola en la documentación de Red Hat.
- Vaya a la consola ACM. A continuación, haga clic en Gestión de flotas > Infraestructura > Clusters > Clusterset.
- Haga clic en Crear un conjunto de clústeres. Siga las instrucciones para añadir sus dos clústeres gestionados al conjunto de clústeres.
- Haga clic en la opción para instalar el complemento Submariner en el conjunto de clústeres.
- Seleccione los clústeres gestionados como clústeres de destino para la instalación del complemento.
- Al revisar la configuración de ambos clústeres, cambie los siguientes ajustes como se muestra y deje el resto como predeterminado. A continuación, haz clic en Instalar.
globalnetEnabled: true (checked) gateways: 2 NATTEnable: false (unchecked) cableDriver: vxlan. - Espere a que el estado del complemento Submariner se muestre en buen estado (verde). Esto puede tardar hasta 20 minutos.
Paso 7. Instale y configure OpenShift Data Foundation
Clúster gestionado
Instale y configure ODF en sus 2 clusters gestionados. Asegúrese de completar estos pasos tanto en el clúster gestionado primario como en el secundario.
-
Siga los pasos para instalar el complemento OpenShift Data Foundation en sus 2 clusters gestionados. Especifique la versión ODF por defecto o posterior. Asegúrese de incluir la opción de habilitar NooBaa como opción adicional durante la instalación.
-
Compruebe que la base ODF se ha instalado correctamente. En la salida, compruebe que el estado dice
Ready.oc get storagecluster -n openshift-storage ocs-storagecluster -o jsonpath='{.status.phase}{"\n"}' -
Ejecute el comando para actualizar
ACM Managed Cluster Nameen la secciónmultiClusterServicedel recursostorageCluster. Esto permite a ODF utilizar GlobalNet. Para obtener más información, consulte Creación de un clúster de OpenShift Data Foundation en clústeres gestionados.Asegúrese de sustituir
MANAGED_CLUSTER_NAMEen el comando por el nombre de su clúster gestionado.kubectl patch storagecluster -n openshift-storage ocs-storagecluster --type merge -p'{"spec":{"network":{"multiClusterService":{"clusterID":"MANAGED_CLUSTER_NAME","enabled":true}}}}' -
Verificar las exportaciones de servicios. Esto puede tardar unos minutos en aparecer en la salida.
oc get serviceexport -n openshift-storageSalida de ejemplo:
NAME AGE rook-ceph-mon-d 4d14h rook-ceph-mon-e 4d14h rook-ceph-mon-f 4d14h rook-ceph-osd-0 4d14h rook-ceph-osd-1 4d14h rook-ceph-osd-2 4d14h -
Cree una exportación de servicio para
ocs-provider-serverutilizando el siguiente YAML.apiVersion: multicluster.x-k8s.io/v1alpha1 kind: ServiceExport metadata: name: ocs-provider-server namespace: openshift-storage -
Ejecute el comando para actualizar el recurso
storageClustery utilizar la exportación del servicioocs-provider-serverque ha creado.oc annotate storagecluster ocs-storagecluster -n openshift-storage ocs.openshift.io/api-server-exported-address=MANAGED_CLUSTER_NAME.ocs-provider-server.openshift-storage.svc.clusterset.local:50051. -
Compruebe que el recurso
storageClusterestá listo.oc get storagecluster -n openshift-storageEjemplo de salida.
NAME PHASE ocs-storagecluster Ready
Paso 8. Configurar la política de recuperación ante desastres regional
Clúster de nodos centrales
Instala el ODF Multicluster Orchestrator en tu clúster central y crea la política de recuperación ante desastres que permita la duplicación entre tus dos clústeres gestionados.
-
Siga los pasos para instalar ODF Multicluster Orchestrator en el clúster ACM. Para garantizar la compatibilidad, asegúrese de instalar el mismo número de versión que la versión de ODF que instaló en los clústeres gestionados en la sección anterior.
-
Verifique la instalación comprobando que los pods de operador están en funcionamiento.
oc get pods -n openshift-operatorsEjemplo de salida.
NAME READY STATUS RESTARTS AGE odf-multicluster-console-6845b795b9-blxrn 1/1 Running 0 4d20h odfmo-controller-manager-f9d9dfb59-jbrsd 1/1 Running 0 4d20h ramen-hub-operator-6fb887f885-fss4w 2/2 Running 0 4d20h -
En el clúster central ACM, cree una política DR con un intervalo de sincronización de 5 minutos y especifique cada clúster gestionado en los parámetros. Esto crea cubos de objetos NooBaa en ambos clústeres gestionados y habilita la réplica de grupos de bloques ODF Ceph para la replicación de volúmenes.
- Acceda a la consola ACM y, a continuación, haga clic en Gestión de flotas > Servicios de datos > Recuperación tras fallos > Políticas > Crear política de DR.
- Cree una política DR que incluya los siguientes parámetros.
- Clústeres conectados: PRIMARY_MANAGED_CLUSTER_NAME, SECONDARY_MANAGED_CLUSTER_NAME
- Política de replicación: Asíncrona
- Intervalo de replicación: 5m
-
En el clúster concentrador, ejecute los comandos para verificar que la política DR se ha creado y aplicado a los clústeres gestionados.
oc get drpolicy DRPOLICY_NAME -o jsonpath='{.status.conditions[].reason}{"\n"}'oc get drclustersEjemplo de salida.
NAME AGE managed-cluster1 4m42s managed-cluster2 4m42s -
En cada clúster gestionado, compruebe que se ha aplicado la política DR y que se encuentra en buen estado.
oc get csv,pod -n openshift-dr-systemEjemplo de salida.
NAME DISPLAY VERSION REPLACES PHASE clusterserviceversion.operators.coreos.com/odr-cluster-operator.v4.15.0 Openshift DR Cluster Operator 4.15.0 Succeeded clusterserviceversion.operators.coreos.com/volsync-product.v0.8.0 VolSync 0.8.0 Succeeded NAME READY STATUS RESTARTS AGE pod/ramen-dr-cluster-operator-6467cf5d4c-cc8kz 2/2 Running 0 3d12hoc get cephblockpool ocs-storagecluster-cephblockpool -n openshift-storage -o jsonpath='{.status.mirroringStatus.summary}{"\n"}'Ejemplo de salida.
{"daemon_health":"OK","health":"OK","image_health":"OK","states":{}} -
Opcional: Revise los operadores que puede instalar para mejorar las funciones de recuperación de desastres regionales de ODF.
-
Opcional: Pruebe su configuración de recuperación ante desastres.
Operadores opcionales para la recuperación regional en caso de catástrofe del ODF
Revise los operadores opcionales que puede instalar en el concentrador ACM o en los clústeres gestionados para mejorar las funciones de recuperación de desastres regionales de ODF. Tenga en cuenta que IBM no es responsable de la gestión de estos operadores.
Usted es responsable de la gestión de estos operadores, lo que incluye, entre otras cosas, la actualización, supervisión, recuperación y reinstalación.
| Operador | Descripción | Información adicional |
|---|---|---|
| OpenShift API para la protección de datos ( OADP ) Operador |
|
Introducción a la API OpenShift para la protección de datos |
Probar la configuración de recuperación ante desastres
Cree una aplicación de muestra para probar su solución de recuperación ante desastres. Para obtener más información, consulte Crear una aplicación de muestra para probar la aplicación de recuperación ante desastres.
-
Implementar una aplicación basada en suscripción desde la consola ACM. La pestaña de topología de la aplicación se muestra en verde cuando todos los recursos de la aplicación se implementan correctamente.
-
En la página de la aplicación, vaya a Acciones > Gestionar política de datos.
-
Asigne la política de DR creada anteriormente a esta aplicación.
-
Verifique que los pods de la aplicación se estén ejecutando en el clúster principal.
-
En la página de la aplicación, vaya a Acciones > Aplicación de conmutación por error. Seleccione su clúster ODF secundario como clúster de destino. Haga clic en Iniciar.
-
Verifique que los pods de aplicaciones se hayan trasladado al clúster secundario.
-
En la página de la solicitud, vaya a Acciones > Reubicar solicitud. Seleccione su clúster ODF principal como clúster de destino. Haga clic en Iniciar.
-
Verifique que los pods de aplicación se muevan de nuevo al clúster principal.
Actualización de tu entorno regional de recuperación ante desastres de ODF
Para obtener información sobre cuándo y cómo actualizar los componentes de su entorno ODF-RDR, consulte « Actualización de su entorno regional de recuperación ante desastres(ODF )».
Resolución de problemas
Si tienes problemas con la configuración de la recuperación ante desastres regional de ODF, consulta el artículo «Comprobación de la configuración de la recuperación ante desastres regional de Data Foundation de OpenShift » para comprobar el estado de cada componente de tu configuración.
Aplicaciones y cargas de trabajo compatibles
Revisa los tipos de aplicaciones y cargas de trabajo a los que puedes aplicar la recuperación ante desastres regional una vez completada la configuración.
- Por suscripción
- Una aplicación se despliega desde una fuente externa, como GitHub, un repo Helm, o Object Storage.
- Para más información, consulte Creación de una aplicación de ejemplo basada en suscripciones en la documentación de Red Hat.
- ApplicationSet-based
- Una aplicación se implementa desde un repositorio de GitHub utilizando el operador GitOps, que gestiona la entrega continua. Incluye dos subtipos:
-
- GitOps Modelo pull ( ArgoCD pull): Un clúster gestionado extrae la aplicación de GitHub utilizando el operador GitOps.
-
- GitOps Modelo Push ( ArgoCD push): El operador de GitOps empuja la aplicación al clúster gestionado durante los despliegues y actualizaciones.
- Para más información, consulte Creación de aplicaciones basadas en conjuntos de aplicaciones en la documentación de Red Hat.
- Para obtener más información sobre los subtipos de GitOps, consulte Despliegue de CD Argo con el modelo Push y Pull en la documentación de Red Hat.
- Aplicaciones descubiertas
- Se ha preimplantado una aplicación en un clúster gestionado sin utilizar ACM. En este caso, puede utilizar la detección ACM para la aplicación preinstalada y seguir configurando la política DR.
- Para más información, consulte Protección de recuperación ante desastres para aplicaciones descubiertas en la documentación de Red Hat.
- Aplicaciones que incluyen despliegues VM
- Una aplicación basada en VM se despliega en el clúster gestionado desde la consola ACM. Estas aplicaciones de VM pueden estar disponibles mediante suscripción, ApplicationSet-based, o ser descubiertas, tal y como se ha descrito anteriormente. Desde la consola ACM se pueden realizar operaciones para iniciar, detener, pausar y eliminar las operaciones de VM en este tipo de aplicaciones.
- Para más información, consulte Red Hat Advanced Cluster Management for Virtualization en la documentación de Red Hat.