Introdução
Neste desafio, você demonstrará suas habilidades em Kubernetes atuando como um engenheiro DevOps júnior em uma startup de tecnologia. Sua missão é atualizar uma aplicação web que utiliza o NGINX como microsserviço, garantindo a menor interrupção possível no serviço. As tarefas envolvem a atualização de um Deployment do Kubernetes para utilizar uma versão de imagem mais recente e a verificação do sucesso da atualização progressiva (rolling update).
Atualizar o Deployment do NGINX
Como engenheiro DevOps júnior, sua tarefa é atualizar o deployment existente para garantir que o serviço permaneça disponível durante todo o processo.
Pré-requisitos
Antes de começar, certifique-se de que o ambiente está configurado:
minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml
Verifique o status do deployment:
kubectl get deployments
Tarefas
- Atualize o deployment
web-apppara utilizar a imagemnginx:1.24.0-alpine. - Verifique se a atualização foi realizada com sucesso utilizando a estratégia de rolling update, garantindo que não houve tempo de inatividade (zero downtime).
Requisitos
- Utilize comandos
kubectlpara realizar a atualização. - Confirme que o deployment continua funcionando sem interrupções durante a atualização.
- Utilize
kubectl rollout statuspara monitorar o progresso da atualização. - Verifique as imagens dos pods para validar a versão atualizada.
Dicas
- Utilize
kubectl edit deployment web-appoukubectl set imagepara atualizar a imagem. - Monitore o status da implantação com
kubectl rollout status. - Valide os pods em execução e suas respectivas imagens de container usando
kubectl get pods -o jsonpath.
Resumo
Neste desafio, você demonstrou suas habilidades em Kubernetes ao atualizar o deployment de uma aplicação web NGINX para uma versão de imagem mais recente. Você garantiu a disponibilidade contínua do serviço durante o processo e validou o sucesso da atualização progressiva. Este exercício destaca a importância de manter a alta disponibilidade ao realizar atualizações em ambientes Kubernetes.


