OpenShift Recuperação de desastres regional do Data Foundation em clusters Red Hat OpenShift on IBM Cloud
Nuvem Privada Virtual 4.17 e mais tarde
O Regional Disaster Recovery garante a continuidade dos negócios durante a indisponibilidade de uma região geográfica. Você pode usar o Gerenciamento Avançado de Clusters (ACM) d Red Hat para configurar as soluções de recuperação de desastres regionais para clusters do Data Foundation (ODF) d OpenShift.
Cada etapa está identificada para indicar em qual cluster deve ser executada. Use a legenda a seguir como referência.
| Marcar | Agrupamento |
|---|---|
| Conjunto de hubs | Etapas a serem realizadas no cluster do hub (o cluster onde o ACM está instalado). |
| Cluster gerenciado | Etapas a serem realizadas em cada cluster gerenciado (os clusters ODF primário e secundário). |
Aqui estão as etapas de alto nível dessa solução:
- Crie o cluster de hubs.
- Crie um perfil confiável para o cluster de hubs.
- Crie os clusters gerenciados.
- Prepare segredos para o ACM no cluster do hub.
- Instale o complemento ACM no cluster do hub.
- Instale o Submariner nos clusters gerenciados para estabelecer conectividade entre eles.
- Instale o ODF nos clusters gerenciados.
- Configure a política de recuperação de desastres regional.
Com essa configuração, o cluster de hub no qual você instalou o ACM gerencia os clusters ODF. Se o seu cluster ODF primário ficar indisponível, o cluster hub transfere os aplicativos e os dados do cluster ODF primário para o cluster ODF secundário.
O ODF Regional Disaster Recovery oferece suporte a aplicativos baseados em assinatura, descobertos por meio do ApplicationSet-based, e baseados no VM. Para obter todos os detalhes, consulte “Aplicativos e cargas de trabalho compatíveis” na parte inferior desta página.
Antes de Iniciar
Antes de criar os clusters, reúna os detalhes da VPC e do Cloud Object Storage necessários para preencher os comandos de criação do cluster.
-
Recupere seus IDs de VPC. Anote o ID da VPC que você deseja usar para cada cluster.
ibmcloud is vpcs -
Recuperar os detalhes da sub-rede de uma VPC específica. Anote os IDs das sub-redes que você deseja usar para cada cluster.
ibmcloud is subnets --vpc VPC_ID -
Liste suas instâncias do Cloud Object Storage.
ibmcloud resource service-instances --service-name cloud-object-storage -
Recupere o CRN da instância que você deseja usar. Anote o valor no campo “
ID”.ibmcloud resource service-instance SERVICE_INSTANCE
Etapa 1. Criar o cluster de hubs
Conjunto de hubs
Este é o cluster no qual você instala o ACM para gerenciar os clusters ODF primário e secundário. Certifique-se de que seu cluster de hubs tenha, no mínimo, uma capacidade de computaçã 16 vCPU x 64 GB e disponível.
Para cada cluster, certifique-se de permitir o tráfego de saída incluindo o parâmetro --disable-outbound-traffic-protection na CLI ou selecionando a opção para desativar a proteção do tráfego de saída na interface do usuário.
-
Crie um cluster VPC em
us-eastpara instalar o ACM. Esse é o cluster de hub que você pode usar para gerenciar seus clusters ODF. Certifique-se de que seu cluster de hub tenha pelo menos 3 nós de trabalho que executem o RHCOS, capacidade computacional disponível de pelo menos 16 vCPU e 64 GB, tráfego de saída desativado e que atenda a todos os pré-requisitos para o ACM. O comando de exemplo a seguir cria um cluster para o ACM emus-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 -
Anote o ID do cluster na saída. Você vai precisar disso em uma etapa posterior.
Etapa 2. Crie um perfil confiável para o cluster de hubs
Conjunto de hubs
- Crie o perfil confiável.
ibmcloud iam trusted-profile-create acm-operator-profile - Crie a regra de confiança do recurso de computação, com escopo restrito ao namespace
kube-systemnos recursos de computação 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 - Atribua a política de acesso do IAM ao perfil. Substitua
CLUSTER_IDpelo ID do seu cluster de hubs.ibmcloud iam trusted-profile-policy-create acm-operator-profile \ --roles Reader,Viewer,Operator,Editor \ --service-name containers-kubernetes \ --service-instance CLUSTER_ID - Atribua o perfil confiável ao cluster de hubs. Depois de atribuir um perfil confiável a um cluster, ele não poderá ser removido.
ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID - Se você estiver usando a versão 4.21 do ODF ou posterior, instale o operador OpenShift GitOps no cluster do hub. Para conhecer as etapas de instalação, consulte “Instalando o Red Hat OpenShift GitOps Operator no console da web ”.
Etapa 3. Criar os clusters gerenciados
Cluster gerenciado
-
Crie um cluster VPC no
us-eastcom pelo menos 3 nós de trabalho que executem o RHCOS, capacidade computacional disponível de pelo menos 16 vCPU e 64 GB, e a proteção contra tráfego de saída desativada. Esse será o cluster ODF gerenciado primário. O comando de exemplo a seguir cria um cluster emus-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 -
Crie um cluster VPC no
jp-tokcom pelo menos 3 nós de trabalho que executem o RHCOS, capacidade computacional disponível de pelo menos 16 vCPU e 64 GB, e a proteção contra tráfego de saída desativada. Esse será o cluster ODF gerenciado secundário. Para obter alta disponibilidade, certifique-se de que a rede do cluster secundário não se sobreponha à rede do cluster primário. O comando de exemplo a seguir cria um cluster emjp-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
Etapa 4. Preparar os segredos para a ACM
Conjunto de hubs
Para cada cluster que você deseja gerenciar com o ACM, é necessário criar um segredo no cluster hub que inclua o token de acesso e o endereço do servidor do cluster gerenciado URL.
Se você deseja importar clusters gerenciados durante o processo de instalação do complemento ACM, siga estas etapas antes de iniciar a instalação. Se você optar por criar os segredos e importar os clusters gerenciados após a instalação do complemento no cluster hub, poderá fazer isso executando etapas adicionais por meio da CLI.
Siga as etapas a seguir para cada cluster que você deseja gerenciar.
-
No cluster que você deseja gerenciar com o ACM, execute o comando para localizar o servidor:
URL. Na saída, localize e anote o valor “Master URL ”. Este é o servidor URL que deve ser indicado no segredo. Você também utilizará este link URL nas etapas a seguir.ibmcloud oc cluster get -c CLUSTER_NAME_OR_IDExemplo de saída.
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 o endereço base URL do servidor OAuth Red Hat OpenShift. Substitua
MASTER_URLpelo endereço URL encontrado na etapa anterior. O comando extrai a base URL sem o sufixo/oauth/token.curl -sS MASTER_URL/.well-known/oauth-authorization-server | jq -r .token_endpoint | sed 's#/oauth/token##'Exemplo de saída.
https://c111-e.us-east.containers.cloud.ibm.com:31282 -
Recupere um token de acesso usando o endpoint obtido na etapa anterior. Execute o seguinte comando
cURL, substituindoURLpelo resultado da etapa anterior eAPI_KEYpela sua chave de API doIBM Cloud. Na saída, localize o parâmetro “ACCESS_TOKEN” contido na resposta “Location ”. Este é o token de acesso que deve ser incluído no segredo.Exemplo de solicitação curl:
curl -u 'apikey:API_KEY' -H "X-CSRF-Token: a" 'URL/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvvExemplo de saída. O ACCESS_TOKEN está incluído na string de resposta do 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 ... -
No cluster do hub, crie um segredo que contenha o token de acesso ao cluster e o endereço do servidor URL. Para obter informações sobre como criar segredos, consulte a seção “Trabalhando com segredos” na documentação do Kubernetes.
Exemplo de segredo.
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
Etapa 5. Instale o complemento ACM no cluster do hub
Conjunto de hubs
Use a CLI para instalar o complemento ACM no cluster do hub.
-
Descubra qual é a versão padrão do complemento ACM.
ibmcloud oc cluster addon versions -
Analise as opções de complementos do ACM. No comando, especifique a versão padrão identificada na etapa anterior. Anote todas as opções que você deseja incluir ao instalar o complemento.
ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION -
Se você deseja importar clusters para que sejam gerenciados pelo complemento, siga as etapas descritas em “Preparando segredos para o ACM”, caso ainda não tenha feito isso. Certifique-se de salvar o ID do cluster, bem como o nome e o namespace do segredo que você criar no cluster do hub. Você também pode concluir esse processo após a instalação do complemento no cluster do hub; no entanto, são necessárias etapas adicionais para importar os clusters gerenciados após a instalação.
-
Execute o comando para ativar o complemento. Certifique-se de especificar os parâmetros
billingPlaneisLicenseAccepted, bem como o parâmetro opcional--managedClusters, caso deseje importar clusters durante o processo de instalação.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 de comando. Veja o comando de exemplo abaixo para conhecer um exemplo de cada tipo de parâmetro.
--cluster- Obrigatório. O ID do cluster de hubs no qual o complemento ACM será instalado.
--param 'managedClusters=["]-
- Opcional. Inclua este parâmetro uma ou mais vezes para importar clusters gerenciados durante o processo de instalação do complemento. Você também pode concluir essa etapa mais tarde. Para obter mais informações, consulte “Preparação de segredos para o ACM ”.
- Especifique os seguintes valores:
-
- clusterid: O ID do cluster gerenciado a ser importado.
-
- secretname: O nome do segredo que você criou no cluster do hub. Este segredo contém as credenciais do cluster gerenciado.
-
- secretnamespace: O namespace do segredo que você criou no cluster do hub. Este segredo contém as credenciais do cluster gerenciado.
-
- action:IMPORT: O parâmetro que especifica a ação IMPORT para o cluster gerenciado.
--param 'billingPlan='- Obrigatório. O plano de cobrança que você deseja selecionar para o ACM. Especifique “
KUBERNETES” para o plano ACM para “ Kubernetes ”. --param 'isLicenseAccepted='- Obrigatório. Especifique “
TRUE” para aceitar o contrato de licença do plano de cobrança selecionado. Ao aceitar esta licença, você concorda com os termos e condições aplicáveis e confirma que compreende os serviços incluídos no plano selecionado.
Exemplo de comando para instalar o complemento ACM com o plano de cobrança “ACM para Kubernetes ” e importar um cluster gerenciado.
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' -
Verifique se o complemento foi instalado. Pode levar alguns minutos para que o complemento apareça nos resultados a seguir.
- No cluster de hubs, verifique se o recurso
acmhubfoi criado.
oc get acmhub ``` Exemplo de saída. ```sh {: screen} NAME AGE acm-auto 1h ``` 1. No cluster de hubs, verifique o status do serviço “ `acmhub` ”. ```sh {: pre} oc describe acmhubstatus ``` Exemplo de saída. ```sh {: screen} status phase: Ready ``` - No cluster de hubs, verifique se o recurso
Etapa 6. Configurar o complemento Submariner
Cluster gerenciado
Siga as etapas para instalar e configurar o complemento Submariner, que estabelece a conectividade entre seus dois clusters gerenciados. Essas etapas usam o console ACM. Para obter informações mais detalhadas, consulte a seção “Implantação do Submariner usando o console” na documentação do Red Hat.
- Navegue até o console do ACM. Em seguida, clique em Fleet Management > Infrastructure > Clusters > Clusterset.
- Clique em Criar um conjunto de clusters. Siga os prompts para adicionar seus dois clusters gerenciados ao conjunto de clusters.
- Clique na opção para instalar o complemento Submariner no conjunto de clusters.
- Selecione os clusters gerenciados como clusters de destino para a instalação do complemento.
- Ao revisar a configuração dos dois clusters, altere as seguintes configurações conforme mostrado e deixe o restante como padrão. Em seguida, clique em Instalar.
globalnetEnabled: true (checked) gateways: 2 NATTEnable: false (unchecked) cableDriver: vxlan. - Aguarde até que o status do complemento do Submariner apareça saudável (verde). Isso pode levar até 20 minutos.
Etapa 7. Instalar e configurar o OpenShift Data Foundation
Cluster gerenciado
Instale e configure o ODF em seus dois clusters gerenciados. Certifique-se de concluir essas etapas no cluster gerenciado primário e secundário.
-
Siga as etapas para instalar o complemento do OpenShift Data Foundation em seus dois clusters gerenciados. Especifique a versão padrão do ODF ou posterior. Certifique-se de incluir a opção para ativar o NooBaa como uma opção complementar durante a instalação.
-
Verifique se a fundação ODF foi instalada com êxito. Na saída, verifique se o status é
Ready.oc get storagecluster -n openshift-storage ocs-storagecluster -o jsonpath='{.status.phase}{"\n"}' -
Execute o comando para atualizar o
ACM Managed Cluster Namena seçãomultiClusterServicedo recursostorageCluster. Isso permite que o ODF use o site GlobalNet. Para obter mais informações, consulte Criação de um cluster do OpenShift Data Foundation em clusters gerenciados.Certifique-se de substituir
MANAGED_CLUSTER_NAMEno comando pelo nome do seu cluster gerenciado.kubectl patch storagecluster -n openshift-storage ocs-storagecluster --type merge -p'{"spec":{"network":{"multiClusterService":{"clusterID":"MANAGED_CLUSTER_NAME","enabled":true}}}}' -
Verifique as exportações de serviços. Isso pode levar alguns minutos para ser exibido na saída.
oc get serviceexport -n openshift-storageSaída de exemplo:
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 -
Crie uma exportação de serviço para
ocs-provider-serverusando o seguinte YAML.apiVersion: multicluster.x-k8s.io/v1alpha1 kind: ServiceExport metadata: name: ocs-provider-server namespace: openshift-storage -
Execute o comando para atualizar o recurso
storageClusterpara usar a exportação do serviçoocs-provider-serverque você criou.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. -
Verifique se o recurso
storageClusterestá pronto.oc get storagecluster -n openshift-storageExemplo de saída.
NAME PHASE ocs-storagecluster Ready
Etapa 8. Configurar a política de recuperação de desastres regional
Conjunto de hubs
Instale o ODF Multicluster Orchestrator no seu cluster central e crie a política de recuperação de desastres (DR) que permite o espelhamento entre os seus dois clusters gerenciados.
-
Siga as etapas para instalar o ODF Multicluster Orchestrator no cluster do hub ACM. Para garantir a compatibilidade, certifique-se de instalar o mesmo número de versão que a versão do ODF instalada nos clusters gerenciados na seção anterior.
-
Verifique a instalação, verificando se os pods do operador estão funcionando.
oc get pods -n openshift-operatorsExemplo de saída.
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 -
No cluster do hub ACM, crie uma política de DR com um intervalo de sincronização de 5 minutos e especifique cada cluster gerenciado nos parâmetros. Isso cria buckets de objetos NooBaa em ambos os clusters gerenciados e habilita o espelhamento de pool de blocos ODF Ceph para replicação de volumes.
- Navegue até o console ACM e clique em Gerenciamento de frota > Serviços de dados > Recuperação de desastres > Políticas > Criar política de DR.
- Crie uma política de DR que inclua os seguintes parâmetros.
- Clusters conectados: PRIMARY_MANAGED_CLUSTER_NAME, SECONDARY_MANAGED_CLUSTER_NAME
- Política de replicação: Assíncrona
- Intervalo de replicação: 5m
-
No cluster do hub, execute os comandos para verificar se a política de DR foi criada e aplicada aos clusters gerenciados.
oc get drpolicy DRPOLICY_NAME -o jsonpath='{.status.conditions[].reason}{"\n"}'oc get drclustersExemplo de saída.
NAME AGE managed-cluster1 4m42s managed-cluster2 4m42s -
Em cada cluster gerenciado, verifique se a política de DR foi aplicada e se está em um estado íntegro.
oc get csv,pod -n openshift-dr-systemExemplo de saída.
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"}'Exemplo de saída.
{"daemon_health":"OK","health":"OK","image_health":"OK","states":{}} -
Opcional: Analise os operadores que você pode instalar para aprimorar os recursos do ODF Regional Disaster Recovery.
-
Opcional: Teste sua configuração de recuperação de desastres.
Operadores opcionais para a recuperação de desastres regionais da ODF
Analise os operadores opcionais que você pode instalar no hub ACM ou nos clusters gerenciados para aprimorar os recursos do ODF Regional Disaster Recovery. Observe que o site IBM não é responsável pelo gerenciamento dessas operadoras.
Você é responsável pelo gerenciamento desses operadores, incluindo, entre outros, a atualização, o monitoramento, a recuperação e a reinstalação.
| Operador | Descrição | Informações Adicionais |
|---|---|---|
| OpenShift API para proteção de dados ( OADP ) Operador |
|
Introdução à API OpenShift para proteção de dados |
Teste de sua configuração de recuperação de desastres
Crie um aplicativo de amostra para testar sua solução de recuperação de desastres. Para obter mais informações, consulte Criar aplicativo de amostra para testar o aplicativo de recuperação de desastres.
-
Implemente um aplicativo baseado em assinatura a partir do console ACM. A guia de topologia do aplicativo é exibida em verde quando todos os recursos do aplicativo são implantados com êxito.
-
Na página do aplicativo, vá para Ações > Gerenciar política de dados.
-
Atribua a política de DR criada anteriormente a esse aplicativo.
-
Verifique se os pods de aplicativos estão sendo executados no cluster primário.
-
Na página do aplicativo, vá para Ações > Aplicativo de failover. Selecione seu cluster ODF secundário como o cluster de destino. Clique em Initiate (Iniciar ).
-
Verifique se os pods de aplicativos foram movidos para o cluster secundário.
-
Na página do aplicativo, vá para Ações > Realocar aplicativo. Selecione seu cluster ODF primário como o cluster de destino. Clique em Initiate (Iniciar ).
-
Verifique se os pods de aplicativos foram movidos de volta para o cluster primário.
Atualização do seu ambiente regional de recuperação de desastres do ODF
Para obter informações sobre quando e como atualizar os componentes do seu ambiente ODF-RDR, consulte “Atualização do seu ambiente ODF de recuperação de desastres regional ”.
Resolução de problemas
Caso encontre problemas com a configuração de recuperação de desastres regional do ODF, consulte “Verificando a configuração de recuperação de desastres regional da Data Foundation do OpenShift ” para verificar o estado de cada componente da sua configuração.
Aplicativos e cargas de trabalho compatíveis
Analise os tipos de aplicativos e cargas de trabalho aos quais você pode aplicar a Recuperação de Desastres Regional após concluir a configuração.
- Baseado em assinatura
- Um aplicativo é implantado a partir de uma fonte externa, como GitHub,, um repositório Helm ou Object Storage.
- Para obter mais informações, consulte Criação de um aplicativo de amostra baseado em assinatura na documentação do site Red Hat.
- ApplicationSet-based
- Um aplicativo é implantado a partir de um repositório do GitHub usando o operador GitOps, que gerencia a entrega contínua. Isso inclui dois subtipos:
-
- GitOps Modelo Pull ( ArgoCD pull): Um cluster gerenciado extrai o aplicativo de GitHub usando o operador GitOps.
-
- GitOps Modelo Push ( ArgoCD push): O operador do GitOps envia o aplicativo para o cluster gerenciado durante as implantações e atualizações.
- Para obter mais informações, consulte Criação de aplicativos baseados em conjuntos de aplicativos na documentação do site Red Hat.
- Para obter mais informações sobre os subtipos do GitOps, consulte Implantação do Argo CD com o modelo Push e Pull na documentação do Red Hat.
- Aplicativos descobertos
- Um aplicativo foi pré-implantado em um cluster gerenciado sem usar o ACM. Nesse caso, você pode usar a descoberta ACM para o aplicativo pré-instalado e ainda configurar a política de DR.
- Para obter mais informações, consulte Proteção de recuperação de desastres para aplicativos descobertos na documentação Red Hat.
- Aplicativos que incluem implementações em VM
- Um aplicativo baseado em VM é implementado no cluster gerenciado a partir do console do ACM. Esses aplicativos VM podem ser baseados em assinatura, ApplicationSet-based, ou descobertos, conforme descrito anteriormente. Opções para iniciar, parar, pausar e excluir operações d VM estão disponíveis no console do ACM para esses tipos de aplicativos.
- Para obter mais informações, consulte Red Hat Advanced Cluster Management for Virtualization na documentação Red Hat.