PRIMARY REGION
STANDBY REGION
DR STATUS
execute switchover-plan, a região standby passa a ficar ativa.Página HTML em formato de blog técnico/laboratório, com arquitetura desenhada, descrição completa do fluxo, runbook passo a passo, terminal simulado de configuração e browser de teste para validar o Ghost Blog antes e depois do Switchover.
Um cenário de Disaster Recovery para uma aplicação em Kubernetes na OCI. A aplicação Ghost Blog roda no cluster OKE primário, usa Persistent Volume baseado em Block Volume para persistência, é publicada por Ingress NGINX com Load Balancer e depois é validada no cluster standby após o Switchover.
execute switchover-plan, a região standby passa a ficar ativa.Encerrar aplicação de forma ordenada na região primária.
Garantir consistência dos dados persistidos.
Promover recursos replicados para região standby.
Inicializar Ghost Blog no cluster standby.
Validar novo EXTERNAL-IP do Load Balancer.
Testar site, admin e post pelo browser.
primary-cluster e standby-cluster.primary-bucket e standby-bucket.ghost-ns como namespace da aplicação.ghost.example.com como hostname do teste.Esta seção reúne os comandos e blocos usados no fluxo do laboratório: acesso ao OKE, instalação do Ingress NGINX, ajuste do Load Balancer flexible, deploy do Ghost Blog, validações Kubernetes, hosts local, Volume Group, DRPG e validações pós-Switchover.
oci -v mkdir -p $HOME/.kube oci ce cluster create-kubeconfig \ --cluster-id <cluster_ocid> \ --file $HOME/.kube/config \ --region <region> \ --token-version 2.0.0 \ --kube-endpoint PRIVATE_ENDPOINT export KUBECONFIG=$HOME/.kube/config kubectl get nodes
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/cloud/deploy.yaml kubectl get svc -n ingress-nginx
annotations: service.beta.kubernetes.io/oci-load-balancer-shape: "flexible" service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "10" service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "1000"
# Linux/macOS /etc/hosts # Windows C:\Windows\System32\drivers\etc\hosts <EXTERNAL-IP> ghost.example.com 163.176.210.135 ghost.example.com
kubectl apply -f https://raw.githubusercontent.com/euoraf4/blog-ghost/refs/heads/main/deploy.yaml kubectl get all,pvc -n ghost-ns open http://ghost.example.com open http://ghost.example.com/ghost/
kubectl get pvc -n ghost-ns # Console OCI: Storage > Volume Groups > Create Volume Group Nome: volume-group-pv Cross region replication: Enable
DRPG Primário: primary-oke Bucket: primary-bucket Members: volume-group-pv + primary-cluster DRPG Standby: standby-oke Bucket: standby-bucket Role: Standby Peer DRPG: primary-oke
kubectl get all,pvc -n ghost-ns --context standby-cluster kubectl get all -n ingress-nginx <NOVO-EXTERNAL-IP> ghost.example.com open http://ghost.example.com
ghost.example.com aponta para o Load Balancer da região primária.kubectl get all,pvc -n ghost-ns mostra pod, service, deployment e PVC./ e /ghost/.Verifique se o StorageClass da OCI está disponível e se o volume foi criado corretamente.
kubectl get pvc -n ghost-ns kubectl describe pvc ghost-pv-claim -n ghost-ns kubectl get storageclass
Analise logs, eventos e variáveis do deployment do Ghost.
kubectl get pods -n ghost-ns kubectl logs deployment/ghost -n ghost-ns kubectl get events -n ghost-ns
Confirme o serviço do Ingress NGINX e as subnets públicas configuradas para o Load Balancer.
kubectl get svc -n ingress-nginx kubectl describe svc ingress-nginx-controller -n ingress-nginx
Recrie o kubeconfig, valide KUBECONFIG e confirme conectividade privada do Cloud Shell.
oci ce cluster create-kubeconfig --cluster-id <cluster_ocid> --file $HOME/.kube/config --region <region> --token-version 2.0.0 --kube-endpoint PRIVATE_ENDPOINT export KUBECONFIG=$HOME/.kube/config kubectl get nodes
Valide hosts local, Ingress, Service e se o browser está usando o hostname correto.
configure hosts ghost.example.com open http://ghost.example.com curl http://ghost.example.com
Revise o plano, DRPGs, replicação do Volume Group e status das etapas do FSDR.
show fsdr plan show drpg status show replication status execute switchover-plan
É o agrupamento lógico do FSDR que representa os recursos protegidos de uma região, como OKE Cluster, Volume Group e configurações associadas ao plano de DR.
Switchover é uma troca planejada e ordenada entre primário e standby. Failover é usado em desastre real, quando a região primária pode estar indisponível.
Porque o Ghost usa PVC baseado em Block Volume. O Volume Group permite tratar o volume persistente como recurso replicável e gerenciável pelo FSDR.
Cada DR Protection Group usa um bucket dedicado para logs operacionais na sua região, mantendo separação entre primário e standby.
Ele atua como controlador de entrada e publica o Ghost Blog por meio de um OCI Load Balancer externo.
O hostname facilita o teste da aplicação antes e depois do Switchover, permitindo trocar apenas o EXTERNAL-IP do Load Balancer.
Cluster primário acessível, Ghost respondendo, PVC Bound, Ingress com EXTERNAL-IP, DRPGs configurados e Volume Group replicando.
Ghost ativo na região standby, novo Load Balancer respondendo, post de teste preservado e status do plano concluído com sucesso.
Com este hands-on, demonstramos como configurar e executar um plano de Switchover utilizando o OCI Full Stack Disaster Recovery (FSDR) integrado ao Oracle Kubernetes Engine (OKE).
Durante o processo, provisionamos os clusters primário e standby, configuramos buckets e volume groups, implantamos o aplicativo de demonstração Ghost Blog e validamos seu funcionamento antes e depois do switchover. Após a execução do plano, confirmamos que o tráfego passou a ser roteado para a região standby, incluindo o post de teste, o que comprova a replicação bem-sucedida dos dados e a continuidade da aplicação.
Essa abordagem mostra, na prática, como o FSDR possibilita uma recuperação de desastres orquestrada, confiável e alinhada às necessidades de alta disponibilidade e resiliência em ambientes críticos.
Informe nome e sobrenome para liberar as perguntas do quiz e usar o mesmo nome no certificado.
Certificado corporativo de conclusão
Issued to
Concluiu o treinamento interativo contemplando OKE, Ingress NGINX, Persistent Volume, Volume Group, DR Protection Groups, Switchover, validação do Ghost Blog, troubleshooting e entrevista técnica.