Implantação contínua no Kubernetes com Argo CD
Argo CD é uma ferramenta de implantação contínua de código aberto que ajuda a automatizar o processo de implantação de aplicativos em clusters Kubernetes. Ele utiliza uma abordagem declarativa para gerenciar o ciclo de vida do aplicativo e fornece uma interface gráfica de usuário para monitorar e gerenciar as implantações. Com o Argo CD, os desenvolvedores podem automatizar todo o processo de implantação, desde a construção até a implantação em produção.
Uma das principais vantagens do Argo CD é sua integração perfeita com o Kubernetes. Ele é projetado para aproveitar as capacidades do Kubernetes e pode facilmente gerenciar a implantação de aplicativos em clusters Kubernetes, incluindo a implementação de atualizações de forma automatizada. O Argo CD também oferece recursos avançados, como auditoria de implantação, controle de versão de manifestos de implantação e suporte a múltiplos ambientes, tornando-o uma opção poderosa para empresas que buscam uma solução de implantação automatizada e escalável.
Instalação
Este é apenas um exemplo de instalação manual do Argo CD. Lembre-se de verificar a documentação oficial do Argo CD para obter informações atualizadas e detalhadas sobre a instalação manual em diferentes ambientes.
Passo 1 - Criar o namespace argocd
Certifique-se de que você tem o kubectl instalado e configurado para acessa o seu cluster, depois digite o seguinte comando no seu terminal.
kubectl create namespace argocd
Passo 2 - Implantação
O comando a seguir é responsável por implantar o Argo CD no seu cluster.
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Esta instalação padrão fornece um certificado autoassinado.
Passo 3 - Instalação do Argo CD CLI
Mac OS
brew install argocd
ArchLinux
pacman -S argocd
Curl
curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
rm argocd-linux-amd64
Passo 4 - Obtenha a senha do usuário admin do Argo CD:
A senha inicial para a conta admin é gerada automaticamente e armazenada como texto não criptografado no campo senha em uma secret chamada argocd-initial-admin-secret em seu namespace de instalação do Argo CD. Entre com o comando a seguir no seu terminal para obter a senha.
argocd admin initial-password
Passo 5 - Acesse o painel do Argo CD
Execute o seguinte comando para fazer um port-forward entre o serviço do Argo CD e sua máquina.
kubectl port-forward svc/argocd-server -n argocd 8080:443
Em seguida, acesse a interface web do Argo CD em https://localhost:8080. Use o nome de usuário "admin" e a senha que você obteve na etapa anterior para fazer login.
Configurar uma aplicação
Para configurar uma aplicação no Argo CD você deve seguir o conceito de GitOps.
O GitOps é uma prática de gerenciamento de infraestrutura que utiliza o Git como fonte de verdade para a configuração e implantação de aplicativos em ambientes de nuvem. Com o GitOps, a infraestrutura é gerenciada como código e todos os recursos de infraestrutura são descritos em arquivos YAML que são versionados em um repositório Git. Isso permite que as mudanças na infraestrutura sejam controladas, revisadas e auditadas facilmente, além de permitir a reversão de mudanças indesejadas.
Ao adotar o GitOps, as equipes de operações de infraestrutura podem implementar atualizações de maneira mais segura e eficiente. As mudanças no código de infraestrutura são automaticamente implantadas no ambiente de produção, sem a necessidade de intervenção manual. Além disso, o GitOps permite que as equipes de desenvolvimento e operações trabalhem de maneira colaborativa e ágil, acelerando o processo de entrega de software. Em resumo, o GitOps é uma prática que utiliza os recursos do Git para tornar o gerenciamento da infraestrutura mais seguro, eficiente e colaborativo.
Você pode configurar uma aplicação no Argo CD pelo painel administrativo ou pela CLI. No exemplo a seguir iremos configurar uma aplicação responsável por implantar o nginx no Kubernetes utilizando a CLI.
1. Crie um repositório Git que contenha o código fonte e a configuração da aplicação.
2. Crie um arquivo chamado
na raiz do seu repositório git. Este arquivo é um manifesto de implantação de um servidor nginx.nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: blog
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
3. Adicione o repositório Git ao Argo CD. Para fazer isso, você pode usar a interface web do Argo CD ou executar o seguinte comando:
argocd repo add <repo-url>
4. Crie um aplicativo no Argo CD que aponte para o repositório Git e o arquivo de manifesto Kubernetes. Para fazer isso, você pode usar a interface web do Argo CD ou executar o seguinte comando:
argocd app create nginx --repo <repo-url> --path nginx.yaml --dest-server <kubernetes-cluster> --dest-namespace blog
Onde:
-
<repo-url> é o URL do repositório Git que contém o arquivo de manifesto Kubernetes.
-
<kubernetes-cluster> é o nome do cluster Kubernetes em que você deseja implantar a aplicação.
5. Sincronize o aplicativo no Argo CD com o cluster Kubernetes. Para fazer isso, você pode usar a interface web do Argo CD ou executar o seguinte comando:
argocd app sync nginx
Isso fará com que o Argo CD implante a aplicação no cluster Kubernetes de acordo com as configurações especificadas no arquivo de manifesto Kubernetes.
Conclusão
O Argo CD é uma ferramenta poderosa e flexível para automação de implantação contínua de aplicativos em clusters Kubernetes. Com sua abordagem declarativa, ele gerencia todo o ciclo de vida do aplicativo, desde a construção até a implantação em produção. A integração com o GitOps permite que as equipes trabalhem de maneira colaborativa e ágil, acelerando o processo de entrega de software e tornando o gerenciamento de infraestrutura mais seguro e eficiente. Com a instalação simples e a configuração fácil de uma aplicação, o Argo CD é uma excelente opção para empresas que buscam uma solução de implantação automatizada e escalável.