Implantar aplicativos no Kubernetes pode ser complexo, especialmente para iniciantes. Conheça o Argo CD, uma ferramenta declarativa alimentada pelo GitOps, projetada para automatizar implantações de aplicativos no Kubernetes. Neste workshop, você aprenderá como configurar e usar o Argo CD para implantar aplicativos de forma transparente, com um guia passo a passo elaborado para iniciantes completos.
O que você aprenderá
- Instalar e configurar o Argo CD.
- Implantar aplicativos usando princípios do GitOps.
- Monitorar implantações e solucionar problemas.
- Reverter e gerenciar versões de aplicativos.
- Garantir a segurança do Argo CD para uso em produção.
Por que o Argo CD?
O Argo CD simplifica a gestão de aplicativos no Kubernetes sincronizando continuamente seu cluster com manifestos definidos em repositórios Git. Os benefícios incluem:
- Gestão Declarativa: Defina o estado desejado do cluster no Git.
- Entrega Contínua: Automatize implantações com sincronização em tempo real.
- Controle de Versão: Reverta para versões anteriores com facilidade.
Pré-requisitos
Antes de começar, certifique-se de que você tenha:
- Um cluster Kubernetes (use Minikube, Kind, ou um serviço gerenciado como GKE, EKS, AKS).
kubectl
instalado e configurado para se conectar ao seu cluster.- Uma conta no GitHub ou GitLab para hospedar seus manifestos do Kubernetes.
- Conhecimento básico da sintaxe YAML (abordado neste workshop se você for novo nisso).
Guia Passo a Passo
1. Configurando um Cluster Kubernetes
Passo 1: Instalar o Minikube
Se você não tiver um cluster, use Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
Passo 2: Iniciar o Minikube
Execute o comando minikube start
após instalar o Minikube no seu sistema:
minikube start
Passo 3: Verificar o Cluster
Confirme se o cluster está em execução:
kubectl cluster-info
kubectl get nodes
2. Instalando o Argo CD
Passo 1: Criar Namespace
O Argo CD roda em seu próprio namespace para isolamento:
kubectl create namespace argocd
Passo 2: Instalar o Argo CD
Aplicar os manifestos oficiais para instalar o Argo CD:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Passo 3: Verificar a Instalação
Verificar os pods do Argo CD:
kubectl get pods -n argocd
3. Acessando a Interface do Argo CD
Passo 1: Expor o Argo CD
Expor o argocd-server
para a sua máquina local:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Passo 2: Recuperar Credenciais de Admin
Obtenha a senha de administração padrão:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
Passo 3: Fazer Login na UI
- Abra https://localhost:8080 no seu navegador.
- Acesse com:
- Nome de usuário: admin
- Senha: Recuperada no passo anterior.
4. Conectando o Argo CD ao Seu Repositório Git
Passo 1: Preparar um Repositório Git
- Crie um repositório Git (por exemplo, no GitHub).
- Adicione seus manifestos do Kubernetes ao repositório. Use este exemplo de
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
Passo 2: Adicionar Repositório ao Argo CD
Pela UI:
- Acesse Configurações > Repositórios.
- Adicione a URL do seu repositório Git e detalhes de autenticação (SSH ou HTTPS).
Ou, use a CLI:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. Implementando Sua Primeira Aplicação
Passo 1: Criar uma Aplicação
No Argo CD UI:
- Clique em Nova Aplicação.
- Preencha o seguinte:
- Nome do Aplicativo: nginx-app
- Projeto: padrão
- URL do Repositório: Sua URL do repositório Git
- Caminho: Caminho para
deployment.yaml
- URL do Cluster:
https://kubernetes.default.svc
- Namespace: padrão
Passo 2: Sincronize o Aplicativo
Após criar o aplicativo:
- Clique em Sincronizar na interface do Argo CD.
- Observe enquanto o aplicativo é implantado no seu cluster Kubernetes.
6. Automatizando Implantações
Passo 1: Habilitar Auto-Sincronização
Habilitar sincronização contínua:
argocd app set nginx-app --sync-policy automated
Passo 2: Testar Alterações
- Modifique o
deployment.yaml
no Git. - Envie as alterações para o repositório.
- O Argo CD detectará as alterações e as sincronizará automaticamente para o cluster.
7. Monitoramento e Solução de Problemas
Passo 1: Monitorar a Saúde do Aplicativo
Na interface, verifique:
- Saúde: Indica se a aplicação está funcionando conforme o esperado.
- Status de Sincronização: Garante que o estado do cluster corresponda ao Git.
Passo 2: Visualizar Logs
Se algo der errado:
kubectl logs -n argocd <POD_NAME>
Passo 3: Reverter Alterações
Reverta para um estado anterior:
argocd app rollback nginx-app <REVISION>
8. Segurança do Argo CD
Passo 1: Alterar Senha Padrão do Admin
Altere a senha padrão do admin utilizando o comando argocd account update-password
:
argocd account update-password
Passo 2: Integrar SSO
Para ambientes de produção, integre com soluções de Single Sign-On (SSO) como GitHub ou LDAP.
Melhores Práticas do GitOps
- Estratégias de Branches: Utilize branches separados para desenvolvimento, staging e produção.
- Revisões de Código: Faça revisões entre pares para mudanças nos manifests.
- Logs de Auditoria: Revise regularmente os logs do Argo CD para conformidade e depuração.
Conclusão
O Argo CD oferece uma maneira amigável para iniciantes, porém poderosa, de gerenciar implantações do Kubernetes utilizando princípios do GitOps. Este workshop lhe equipa com as habilidades para implantar, monitorar e gerenciar aplicações de forma eficiente. Ao seguir essas práticas, você está no caminho certo para dominar a entrega contínua do Kubernetes.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd