Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Automatize Planos de Switchover e Failover para o OCI Kubernetes Engine (com monitoramento de estado) com o OCI Full Stack Disaster Recovery
Introdução
O Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) orquestra a transição de computação, banco de dados e aplicativos entre regiões da Oracle Cloud Infrastructure (OCI) de todo o mundo com um único clique. Os clientes podem automatizar as etapas necessárias para recuperar um ou mais sistemas de negócios sem reprojetar ou rearquitetar a infraestrutura, os bancos de dados ou as aplicações existentes e sem precisar de servidores especializados de gerenciamento ou conversão.
O Oracle Cloud Infrastructure Kubernetes Engine (OKE) é um serviço Kubernetes gerenciado que simplifica o desenvolvimento, a implementação e a operação de cargas de trabalho em contêineres em escala. O OKE permite criar, gerenciar e consumir rapidamente clusters do Kubernetes que aproveitam os serviços subjacentes de computação, rede e armazenamento da OCI.
Arquitetura da Implantação
Objetivos
As tarefas a seguir serão abordadas neste tutorial.
- Tarefa 1: Criar um grupo dinâmico e políticas para o OKE e o OCI Full Stack Disaster Recovery
- Tarefa 2: Adicionar cluster do OKE principal aos Grupos de Proteção de DR principais
- Tarefa 3: Adicionar grupos de volumes aos Grupos de Proteção de DR principais
- Tarefa 4: Adicionar cluster do OKE stand-by aos Grupos de Proteção de DR stand-by
- Tarefa 5: Criar um plano de drill inicial
- Tarefa 6: Executar o plano de drill inicial
- Tarefa 7: Verificar o aplicativo em execução no cluster do OKE stand-by
- Tarefa 8: Criar um plano de drill de interrupção
- Tarefa 9: Executar o plano de drill de interrupção
- Tarefa 10: Verificar limpeza no cluster do OKE stand-by
Observação: Neste tutorial, a região principal é Frankfurt e a região stand-by é Amsterdã.
Pré-requisitos
-
Este tutorial pressupõe que os Grupos de Proteção de DR (DRPG) já existem e que você tem planos de DR existentes em ambas as regiões.
-
Este tutorial pressupõe que o leitor tenha privilégios de administrador e que as políticas necessárias do OCI IAM (Oracle Cloud Infrastructure Identity and Access Management) para o OCI Full Stack DR já estejam em vigor. Para obter mais informações, consulte Configurando políticas do IAM (Identity and Access Management) para usar o Full Stack DR e Políticas do Full Stack Disaster Recovery.
-
Este tutorial pressupõe que o leitor tenha um cluster do OKE implantado na região principal e um cluster de pareamento na região stand-by. Para obter mais informações, consulte Criando um Cluster.
-
Este tutorial pressupõe que o leitor tenha desconectado (modificado) o aplicativo MuShop implantado no cluster do OKE principal. Para obter mais informações, consulte Implantar MuShop.
-
Os volumes em blocos gerados pelo cluster do OKE já foram adicionados ao grupo de volumes (
vg_oke_mushop
). Você deve criar um grupo de volumes com réplica de região cruzada. Para obter mais informações, consulte Criar Grupos de Volumes. -
Crie o bucket do OCI Object Storage na região principal e na região stand-by para armazenar backups do OKE. Para obter mais informações, consulte Object Storage.
Tarefa 1: Criar um Grupo Dinâmico e Políticas para OKE e OCI Full Stack DR
Essas políticas permitem que o serviço OCI Full Stack DR acesse o bucket do OCI Object Storage para fazer upload do backup de configuração. A política de acesso ao bucket do OCI Object Storage do cluster do OKE depende do tipo de cluster.
-
Crie um grupo dinâmico e políticas para o pool de nós gerenciados.
-
Crie um grupo dinâmico chamado
<cluster1_dg>
.All {instance.compartment.id = '<compartment_ocid>'}
-
Crie as políticas a seguir.
Allow dynamic-group cluster1_dg to manage object-family in compartment <compartment> Allow dynamic-group cluster1_dg to manage cluster-family in compartment <compartment>
-
-
Crie as políticas a seguir para o pool de nós virtuais.
Allow any-user to manage objects in tenancy where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<Cluster_OCID>'} Allow any-user to manage objects in tenancy where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<Cluster_OCID>'}
Essas políticas fornecem pods em execução no namespace brie com a conta de serviço
brie-reader
oubrie-creator
para ler e gravar no bucket do OCI Object Storage. -
Crie um grupo dinâmico e políticas para a instância do contêiner. Essas políticas permitem que as instâncias de contêiner de runtime criadas pelo serviço OCI Full Stack DR acessem o cluster do OKE e o bucket do OCI Object Storage.
-
Crie um grupo dinâmico chamado
<bastion1_dg>
.All {resource.type='computecontainerinstance'}
-
Crie as políticas a seguir.
Allow dynamic-group bastion1_dg to manage object-family in compartment <compartment> Allow dynamic-group bastion1_dg to manage cluster-family in compartment <compartment>
-
-
Crie um grupo dinâmico e uma política para jump host.
Se você estiver usando o jump host, essa política permitirá que o OCI Full Stack DR acesse o cluster do OKE e os buckets do OCI Object Storage. Se o jump host e o cluster estiverem no mesmo compartimento, você poderá evitar etapas para criar um novo grupo dinâmico e uma nova política para fornecer acesso ao bucket do OCI Object Storage.
-
Crie um grupo dinâmico chamado
<bastion1_dg>
.All {instance.compartment.id = '<compartment_ocid>'}
-
Crie a política a seguir.
Allow dynamic-group bastion1_dg to manage cluster-family in compartment <compartment>Allow dynamic-group bastion1_dg to manage cluster in compartment <compartment>
-
Observação: Se você não incluir o
identity_domain_name
antes dodynamic-group
, a instrução de política será avaliada como se o grupo pertencesse ao domínio de identidades padrão. Para obter mais informações, consulte Como as Políticas Funcionam.
Tarefa 2: Adicionar Cluster do OKE Principal aos Grupos de Proteção de DR Principal
-
No DRPG principal (
DRPG_MUSHOP_FRA
), selecione Membros e clique em Adicionar Membro. -
Selecione Cluster OKE como Tipo de recurso.
-
Digite as seguintes informações necessárias.
- Cluster OKE: Informe um cluster OKE.
- Backup: Especifique as informações de backup.
- Bucket de backup: Selecione o bucket.
- Selecione Especificar a programação de backup.
- Tipo de programação: Informe o tipo de programação.
- Hora inicial: Informe a hora inicial em UTC.
- Intervalo: Informe o intervalo em dias.
- O número máximo de backups que você deseja manter (opcional): Informe o número máximo de backups.
- Selecione Replicação de imagem:
- Segredo de replicação de imagem (opcional): Selecione a imagem.
- Namespace (opcional): Informe o namespace.
- Cluster OKE de mesmo nível: Selecione o cluster OKE de mesmo nível.
-
Selecione Entendo que devo atualizar e verificar todos os planos existentes e clique em Adicionar.
Tarefa 3: Adicionar Grupos de Volumes aos Grupos de Proteção de DR Principais
-
No DRPG principal (
DRPG_MUSHOP_FRA
), selecione Membros e clique em Adicionar Membro. -
Selecione Grupo de Volumes como Tipo de recurso.
-
Digite as seguintes informações necessárias.
- Grupo de Volumes: Selecione o grupo de volumes.
-
Selecione Entendo que devo atualizar e verificar todos os planos existentes e clique em Adicionar.
Tarefa 4: Adicionar Cluster do OKE Stand-by aos Grupos de Proteção de DR Stand-by
-
No DRPG stand-by (
DRPG_MUSHOP_AMS
), selecione Membros e clique em Adicionar Membro. -
Selecione Cluster OKE como Tipo de recurso.
-
Digite as seguintes informações necessárias.
- Cluster OKE: Informe um cluster OKE.
- Backup: Especifique as informações de backup.
- Bucket de backup: Selecione o bucket.
- Cluster OKE de mesmo nível: Selecione o cluster OKE de mesmo nível.
-
Selecione Entendo que devo atualizar e verificar todos os planos existentes e clique em Adicionar.
Tarefa 5: Criar um Plano de Drill Inicial
-
No DRPG stand-by (
DRPG_MUSHOP_AMS
), selecione Planos e clique em Criar Plano. -
Informe um Nome para o plano, selecione Iniciar Drill como Tipo de Plano e clique em Criar.
Após alguns minutos, o plano mostrará o estado Ativo.
-
Selecione o plano criado para ver seu conteúdo.
Tarefa 6: Executar o Plano de Drill Inicial
-
Selecione o plano criado na Tarefa 5.
-
Selecione Ativar pré-verificações e clique em Executar plano.
Após alguns minutos, todos os grupos mostrarão o estado Sucesso.
Tarefa 7: Verificar o Aplicativo em Execução no Cluster do OKE Stand-by
Conecte-se ao cluster do OKE stand-by e verifique se o aplicativo está em execução. Para o aplicativo MuShop, execute o comando a seguir.
kubectel get all -n mushop
Tarefa 8: Criar um Plano Detalhado de Interrupção
-
No DRPG stand-by (
DRPG_MUSHOP_AMS
), selecione Planos e clique em Criar Plano. -
Informe um Nome para o plano, selecione Iniciar Drill como Tipo de Plano e clique em Criar.
Após alguns minutos, o plano mostrará o estado Ativo.
Tarefa 9: Executar o Plano de Drill Stop
-
Selecione o plano criado na Tarefa 8.
-
Selecione Ativar pré-verificações e clique em Executar plano.
Após alguns minutos, todos os grupos mostrarão o estado Succuss.
Tarefa 10: Verificar Limpeza no Cluster do OKE Stand-by
Conecte-se ao cluster do OKE stand-by e verifique a lista de namespaces usando o comando a seguir.
kubectl get namespaces
Próximas Etapas
Depois de criar e executar os planos de drill, agora é hora de criar um plano de switchover e um plano de failover.
Há duas melhores práticas que devem ser incorporadas às operações diárias normais para ajudar a garantir a prontidão de seus planos de DR.
- Execução periódica regular de pré-verificações.
- Execução periódica regular de drills de DR.
Pense na programação de pré-verificações semanais de todos os planos de DR no Grupo de Proteção de DR stand-by. As pré-verificações podem ser executadas a qualquer momento e têm impacto zero nas cargas de trabalho de produção. Isso ajudará a garantir a integridade de seus planos de DR, capturando recursos de membros ausentes, redes ausentes, a incapacidade de encontrar scripts esperados chamados por etapas definidas pelo usuário e assim por diante.
Outra maneira muito importante de validar a prontidão de sua recuperação de desastres é programar exercícios periódicos de DR uma vez por mês ou trimestre. Os drills de DR também têm impacto zero nas cargas de trabalho de produção, mas permitem validar a recuperação de computação, armazenamento, bancos de dados Oracle e conjuntos de backend para balanceadores de carga na região stand-by com o clique de um único botão. Para obter mais informações, consulte:
Links Relacionados
-
Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery
-
Preparando o Kubernetes Engine (OKE) para Recuperação de Desastres
-
Adicionar um Cluster do OKE a um Grupo de Proteção de Recuperação de Desastre
Confirmações
- Autor - Raphael Teixeira (Membro principal da equipe técnica da engenharia Full Stack DR)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Automate Switchover and Failover Plans for OCI Kubernetes Engine (Stateful) with OCI Full Stack Disaster Recovery
G26600-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.