Manual de Atualização de um Ambiente Existente
1. Pré-requisitos
Antes de realizar a atualização de um ambiente, certifique-se de que os seguintes pré-requisitos estão atendidos:
- Acesso VPN: Necessário para conectar ao cluster do Aura-Blocks.
- Cluster Kubernetes: O cluster Kubernetes existente deve estar funcionando corretamente.
- kubectl: Ferramenta de linha de comando para interagir com o cluster.
- Imagens Atualizadas: Verifique as novas versões das imagens Docker que deseja aplicar na atualização.
2. Listando e Trocando o Namespace
Antes de realizar qualquer operação, é importante verificar os namespaces disponíveis no cluster e garantir que você está utilizando o namespace correto para o projeto.
2.1 Listar os Namespaces no Cluster
Utilize o comando abaixo para listar todos os namespaces no cluster Kubernetes:
kubectl get namespacesEste comando exibirá todos os namespaces disponíveis. Certifique-se de identificar o namespace correto do projeto (ex: aura-blocks).
2.2 Definindo o Namespace para o Projeto
Para garantir que todos os comandos subsequentes serão executados no namespace correto, você pode configurar o namespace padrão a ser utilizado:
kubectl config set-context --current --namespace=aura-blocksEste comando irá definir o namespace aura-blocks como o namespace padrão para todos os comandos kubectl executados na sessão atual.
3. Procedimento de Atualização
A atualização de um ambiente existente é feita principalmente pela troca das tags das imagens Docker nos manifests de Kubernetes. Abaixo estão os passos simples para realizar essa tarefa.
3.1 Atualizando as Imagens nos Manifests
3.1.1 Identificando os Manifests para Atualizar
Os arquivos de Deployment são os principais pontos onde as tags das imagens precisam ser atualizadas. Certifique-se de que os seguintes arquivos estão sendo modificados:
- template/engine/deployment.yaml
- template/lowproxy/deployment.yaml
- template/lowtalk/deployment.yaml
- template/lunaris/deployment.yaml
- template/wanderson/deployment.yaml
3.1.2 Atualizando a Tag da Imagem
Abra o arquivo do Deployment correspondente e modifique a seção image, substituindo a tag antiga pela nova tag da imagem.
Exemplo de atualização no arquivo deployment.yaml do serviço engine:
containers:
- name: engine
image: aura-blocks/engine:<nova_tag>
ports:
- containerPort: 6060Repita esse processo para os outros serviços (lowproxy, lowtalk, lunaris, wanderson), atualizando suas tags conforme necessário.
3.1.3 Aplicando as Mudanças
Depois de modificar as tags, aplique os manifests atualizados no cluster com o seguinte comando para cada serviço:
kubectl apply -f template/<serviço>/deployment.yamlExemplo:
kubectl apply -f template/engine/deployment.yaml3.2 Reiniciando os Serviços
Após aplicar as mudanças, reinicie os serviços para garantir que os novos pods sejam iniciados com as imagens atualizadas. Use o comando kubectl rollout restart para cada serviço:
kubectl rollout restart deploy <deploy>Exemplo:
kubectl rollout restart deploy env-engine
kubectl rollout restart deploy env-lowproxy
kubectl rollout restart deploy env-lowtalk
kubectl rollout restart deploy env-lunaris
kubectl rollout restart deploy env-wanderson3.3 Verificando o Status
Após reiniciar os deployments, verifique o status dos recursos para garantir que os pods foram reiniciados corretamente com as novas versões das imagens:
kubectl get pods -n aura-blocksCertifique-se de que os novos pods estão no estado Running.
3.4 Rollback (Se Necessário)
Caso algo não funcione como esperado após a atualização, você pode realizar um rollback para a versão anterior dos deployments. O rollback retorna o deployment à versão anteriormente aplicada.
Para realizar o rollback, utilize o comando:
kubectl rollout undo deploy <deploy>Exemplo de rollback para o serviço engine:
kubectl rollout undo deploy env-engineRepita o comando para os outros serviços conforme necessário, retornando as versões anteriores das imagens.
4. Conclusão
Com esses passos, o ambiente será atualizado com as novas versões das imagens. Acompanhe o comportamento dos serviços e, caso necessário, utilize o rollback para reverter mudanças problemáticas.