Implantar aplicativos no Kubernetes pode ser complexo, especialmente para iniciantes. Conheça o Argo CD, uma ferramenta declarativa com 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ê Vai Aprender
- Instalar e configurar o Argo CD.
- Implantar aplicativos usando princípios GitOps.
- Monitorar implantações e solucionar problemas.
- Reverter e gerenciar versões de aplicativos.
- Proteger o Argo CD para uso em produção.
Por Que 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 possui:
- 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 GitHub ou GitLab para hospedar seus manifestos do Kubernetes.
- Conhecimento básico da sintaxe YAML (abordado neste workshop se você for iniciante).
Guia Passo a Passo
1. Configurando um Cluster Kubernetes
Passo 1: Instalar o Minikube
Se você não possui um cluster, use o 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 em 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 é executado em seu próprio namespace para isolamento:
kubectl create namespace argocd
Passo 2: Instalar o Argo CD
Aplique 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
Verifique os pods do Argo CD:
kubectl get pods -n argocd
3. Acessando a Interface Gráfica do Argo CD
Passo 1: Expor o Argo CD
Exponha o argocd-server
para a sua máquina local:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Passo 2: Recuperar Credenciais de Administrador
Buscar a senha de administrador padrão:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
Passo 3: Entrar na Interface de Usuário
- Abra https://localhost:8080 no seu navegador.
- Entre 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
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 interface:
- 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:
**Aplicativo**:
- Nome do aplicativo: nginx-app
- Projeto: padrão
- URL do repositório: URL do seu repositório Git
- Caminho: Caminho para
deployment.yaml
- URL do cluster:
https://kubernetes.default.svc
- Namespace: padrão
Passo 2: Sincronize a Aplicação
Após criar o aplicativo:
- Clique em Sincronizar na UI do Argo CD.
- Observe enquanto o aplicativo é implantado em seu cluster Kubernetes.
6. Automatização de 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 com o cluster.
7. Monitoramento e Solução de Problemas
Passo 1: Monitorar a Saúde da Aplicação
Na UI, verifique:
- Saúde: Indica se a aplicação está a funcionar como esperado.
- Estado de Sincronização: Garante que o estado do cluster corresponde ao Git.
Passo 2: Visualizar Registos
Se algo correr mal:
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 no Argo CD
Passo 1: Alterar a Palavra-passe Padrão do Administrador
Alterar a palavra-passe padrão do administrador usando o comando argocd account update-password
:
argocd account update-password
Passo 2: Integrar SSO
Para ambientes de produção, integre-se com soluções de Single Sign-On (SSO) como GitHub ou LDAP.
Melhores Práticas do GitOps
- Estratégias de Ramificação: Utilize ramos separados para desenvolvimento, staging e produção.
- Revisões de Código: Garanta revisões por pares para alterações de manifesto.
- Registos de Auditoria: Revise regularmente os registos do Argo CD para conformidade e depuração.
Conclusão
O Argo CD oferece uma forma amigável para iniciantes e poderosa de gerir implementações do Kubernetes usando os princípios do GitOps. Este workshop equipa-o com as competências para implementar, monitorizar e gerir aplicações de forma eficiente. Ao seguir estas práticas, estará bem encaminhado para dominar a entrega contínua no Kubernetes.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd