Observação:

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

Diagrama de Arquitetura

Objetivos

As tarefas a seguir serão abordadas neste tutorial.

Observação: Neste tutorial, a região principal é Frankfurt e a região stand-by é Amsterdã.

Pré-requisitos

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.

  1. 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>
      
  2. 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 ou brie-creator para ler e gravar no bucket do OCI Object Storage.

  3. 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>
      
  4. 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 do dynamic-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

  1. No DRPG principal (DRPG_MUSHOP_FRA), selecione Membros e clique em Adicionar Membro.

    Adicionar Cluster Principal do OKE

  2. Selecione Cluster OKE como Tipo de recurso.

    Adicionar Cluster Principal do OKE

  3. 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.
  4. Selecione Entendo que devo atualizar e verificar todos os planos existentes e clique em Adicionar.

    Adicionar Cluster Principal do OKE

Tarefa 3: Adicionar Grupos de Volumes aos Grupos de Proteção de DR Principais

  1. No DRPG principal (DRPG_MUSHOP_FRA), selecione Membros e clique em Adicionar Membro.

    Adicionar Grupos de Volumes

  2. Selecione Grupo de Volumes como Tipo de recurso.

    Adicionar Grupos de Volumes

  3. Digite as seguintes informações necessárias.

    • Grupo de Volumes: Selecione o grupo de volumes.
  4. Selecione Entendo que devo atualizar e verificar todos os planos existentes e clique em Adicionar.

    Adicionar Grupos de Volumes

Tarefa 4: Adicionar Cluster do OKE Stand-by aos Grupos de Proteção de DR Stand-by

  1. No DRPG stand-by (DRPG_MUSHOP_AMS), selecione Membros e clique em Adicionar Membro.

    Adicionar Cluster do OKE Stand-by

  2. Selecione Cluster OKE como Tipo de recurso.

    Adicionar Cluster do OKE Stand-by

  3. 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.
  4. Selecione Entendo que devo atualizar e verificar todos os planos existentes e clique em Adicionar.

    Adicionar Cluster do OKE Stand-by

Tarefa 5: Criar um Plano de Drill Inicial

  1. No DRPG stand-by (DRPG_MUSHOP_AMS), selecione Planos e clique em Criar Plano.

    Criar um Plano Detalhado Inicial

  2. Informe um Nome para o plano, selecione Iniciar Drill como Tipo de Plano e clique em Criar.

    Criar um Plano Detalhado Inicial

    Após alguns minutos, o plano mostrará o estado Ativo.

    Criar um Plano Detalhado Inicial

  3. Selecione o plano criado para ver seu conteúdo.

    Criar um Plano Detalhado Inicial

Tarefa 6: Executar o Plano de Drill Inicial

  1. Selecione o plano criado na Tarefa 5.

    Executar o Plano Detalhado Inicial

  2. Selecione Ativar pré-verificações e clique em Executar plano.

    Executar o Plano Detalhado Inicial

    Após alguns minutos, todos os grupos mostrarão o estado Sucesso.

    Executar o Plano Detalhado Inicial

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

Verifique o aplicativo em execução no Cluster do OKE stand-by

Tarefa 8: Criar um Plano Detalhado de Interrupção

  1. No DRPG stand-by (DRPG_MUSHOP_AMS), selecione Planos e clique em Criar Plano.

    Criar um Plano Detalhado de Interrupção

  2. Informe um Nome para o plano, selecione Iniciar Drill como Tipo de Plano e clique em Criar.

    Criar um Plano Detalhado de Interrupção

    Após alguns minutos, o plano mostrará o estado Ativo.

    Criar um Plano Detalhado de Interrupção

Tarefa 9: Executar o Plano de Drill Stop

  1. Selecione o plano criado na Tarefa 8.

    Executar o Plano Detalhado de Interrupção

  2. Selecione Ativar pré-verificações e clique em Executar plano.

    Executar o Plano Detalhado de Interrupção

    Após alguns minutos, todos os grupos mostrarão o estado Succuss.

    Executar o Plano Detalhado de Interrupção

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

Verificar limpeza no Cluster do OKE stand-by

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.

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:

Confirmações

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.