Introdução
Kubernetes tornou-se um padrão para implantar grandes aplicações. Ele ajuda os desenvolvedores a obter vantagens significativas e oferece recursos que não estão disponíveis na hospedagem de servidores tradicional. O Kubernetes permite o dimensionamento horizontal sem o incômodo da infraestrutura. Além disso, reduz o custo de aquisição e manutenção da infraestrutura à medida que a aplicação cresce.
No entanto, gerenciar aplicações no Kubernetes também pode ser complexo e exige habilidades avançadas. Implantar aplicações usando o Kubernetes e o Integração Contínua e Implantação Contínua processo (CI/CD) ajuda a superar esse processo complexo fornecendo abstração. GitOps é uma das ferramentas que pode ajudar a alcançar a abstração.
Neste tutorial, demonstraremos como usar o Argo CD para integrar e implantar continuamente aplicações no Kubernetes. Sempre que qualquer alteração é enviada para o repositório, ela é implantada no cluster de destino. Argo CD também fornece controles de versão, configurações e ambientes de aplicação ao se integrar com todo o ciclo de vida de desenvolvimento de software. Se você tiver gerenciadores de pacotes para o Kubernetes, como o Helm, ou se você tiver seu repositório hospedado no BitBucket ou GitLab, o Argo CD também pode se integrar perfeitamente com todas essas plataformas.
Pré-requisitos
Para concluir este tutorial, você deve ter:
-
Chaves SSH em sua máquina. Se você não tiver um par de chaves SSH rodando no Linux/MacOS/BSD, poderá criar um seguindo nosso tutorial Visão geral do SSH – Servidores, Clientes e Chaves SSH.
-
Você também precisará de um cluster Kubernetes em execução. Além disso, você deve ter o kubectl rodando em sua máquina. Se você não tiver um cluster Kubernetes, poderá seguir Como criar um cluster Kubernetes usando o Kubeadm no Ubuntu 18.04.
-
Você deve ter uma compreensão básica dos conceitos do Kubernetes. Se quiser se familiarizar ainda mais com o Kubernetes, poderá seguir Conhecendo os conceitos básicos da ferramenta Kubernetes.
Passo 1 – Instalar o Argo CD
Antes de podermos instalar o Argo CD, precisamos ter um ambiente Kubernetes rodando com kubectl. Você pode testar isso executando o comando abaixo:
|
1 |
kubectl get nodes |

Você deve ver pelo menos um nó do Kubernetes rodando no status Ready. Se não houver nenhum nó disponível, você deve verificar novamente sua instalação do Kubernetes. Em seguida, criaremos um namespace separado para nossa instalação do Kubernetes. Vamos chamá-lo de argocd. Manteremos o serviço relacionado ao Argo CD neste namespace:
|
1 |
kubectl create namespace argocd |
Depois disso, instale os scripts do Argo CD no namespace recém-criado acima executando o comando abaixo:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Para verificar o status dos pods do Kubernetes, execute o comando abaixo:
|
1 |
watch kubectl get pods -n argocd |
Você obterá um resultado como o abaixo:

Aqui você concluiu com sucesso a instalação do Argo CD. Para sair da interface watch, você pode pressionar Ctrl + C. Para acessar os serviços neste cluster Kubernetes, precisaremos encaminhar as portas. Mostraremos como fazer isso no próximo passo.
Passo 2 – Encaminhar Portas para Acessar o Argo CD
O Kubernetes pode implantar sua aplicação em qualquer porta de sua escolha. Portanto, é necessário encaminhar as portas da aplicação Kubernetes para acessá-las a partir da máquina local. O Argo CD expõe um serviço chamado argocd-server que usa a porta 443. A porta 443 é a porta padrão para os serviços HTTPS e HTTP. Você pode encaminhar as portas do Kubernetes para uma porta de sua escolha. No nosso exemplo abaixo, encaminhamos a porta para 8080. Para encaminhar portas, execute o comando abaixo no terminal:
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
Assim que você encaminhar a porta, ela será bloqueada para que outros serviços não possam acessá-la. Para ter acesso ininterrupto, é sempre recomendável executar o comando acima mencionado em um novo terminal. Assim que terminar, você pode pressionar Ctrl+C para sair do processo de encaminhamento de porta.
Depois de ter encaminhado a porta, você pode navegar para o Argo CD navegando para localhost:8080. Serão solicitadas as credenciais que você pode obter na linha de comando na próxima etapa.
Step 3 – Manage Argo CD from the Command Line
Temos que instalar a linha de comando do Argo CD para gerenciar a instalação do Argo CD. A maneira recomendada de instalar o Argo CD é usar um gerenciador de pacotes como o Homebrew. O Homebrew é uma ferramenta popular de gerenciamento de pacotes para instalação no macOS e Linux. Você pode instalar o Homebrew usando o comando abaixo:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
Você deve ter o brew instalado em sua máquina. Uma solicitação de senha pode aparecer para o login. Você pode executá-lo executando o comando abaixo:
|
1 |
brew install argocd |
Você obterá o comando argocd após a instalação acima. Precisaremos recuperar a senha do administrador usando o comando kubectl . Ele foi gerado automaticamente durante a instalação. Abaixo está o comando para adquiri-lo:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Agora que você instalou o Argo CD, pode fazer login usando o comando argocd login abaixo:
|
1 |
argocd login localhost:8080 |
Você precisará fazer login para implantar o aplicativo ao usar a linha de comando:

Você pode receber um aviso de segurança. Se sim, pressione y para prosseguir. Muitos usuários podem desejar alterar a senha após o login. Se sim, execute o comando argocd account update-password para alterar a senha. Agora temos uma configuração do Argo CD totalmente funcional.
Finalmente, implantaremos um aplicativo no cluster Kubernetes usando o Argo CD instalado.
Step 4 – Utilize Multiple Clusters
Antes de continuar com a configuração do seu aplicativo, é necessário conhecer a máquina de destino onde você deseja implantá-lo. Para muitos dos cenários, o Argo CD e o aplicativo implantado podem ser executados no mesmo cluster. Este é o comportamento padrão do Argo CD, mas esta não é a limitação. Se você deseja implantar o aplicativo em outras máquinas de destino, primeiro execute o comando kubectl config em sua máquina:
|
1 |
kubectl config get-contexts -o name |
Suponha que você obtenha dois clusters: test-deploy-cluster e test-target-cluster. Agora, se o test-deploy-cluster é onde o seu Argo CD está e você deseja implantar no test-target-cluster, então execute o comando abaixo:
|
1 |
argocd cluster add target-k8s |
O comando acima adicionará detalhes de clusters adicionais no Argo CD. Ele também permitirá implantar serviços no cluster de destino do Argo CD.
Step 5 – Deploy an Example Application
Finalmente é hora de implantar aplicativos no cluster Kubernetes. Usaremos os aplicativos de exemplo fornecidos pelo Argo CD. Também utilizaremos o helm-guestbook que é construído usando Helm charts.
Para instalar o aplicativo, usaremos o comando argo app create . Especificaremos o repositório Git, helm-guestbook , e passando o seu destino e namespace padrão:
|
1 |
argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default |
Você pode verificar o status do aplicativo recém-criado executando o comando argocd app get:
|
1 |
argocd app get helm-guestbook |
Não se surpreenda se vir OutOfSync status. Até agora, baixamos o Helm chart e criamos um ponto de entrada para ele no Argo CD. No entanto, na parte do Kubernetes, não há nenhum recurso alocado para ele. Para sincronizar este aplicativo, execute o comando abaixo:
|
1 |
argocd app sync helm-guestbook |

Ao trabalhar com GitOps, é sempre necessário sincronizar o aplicativo com o upstream. Portanto, sempre que ocorre uma alteração no repositório, o Argo CD implanta o aplicativo.
Implantamos o aplicativo usando a linha de comando do Argo CD. Você pode obter o mesmo resultado usando a interface web do Argo CD. A interface web é muito útil se você deseja verificar o status e a execução do aplicativo. Para abrir a interface web, abra localhost:8080:

Para verificar a instalação, abriremos o aplicativo no navegador. Nosso helm-guestbook roda na porta 80. Se você tiver qualquer outro aplicativo usando a porta 80, você pode encaminhar a porta para que outros aplicativos não sejam interrompidos:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Finalmente, abra a url localhost:9090 no seu navegador web para ver o seu aplicativo em execução:

Agora, se um desenvolvedor enviar qualquer código para o repositório remoto do GitHub, o ArgoCD irá capturá-lo e refleti-lo. Suas implantações do ArgoCD seriam atualizadas de acordo, fornecendo disponibilidade contínua.
Conclusão
Neste tutorial, mostramos como instalar e implantar aplicativos no Kubernetes usando o Argo CD. É importante garantir que suas implantações no Kubernetes sejam fáceis de manter. O GitOps pode ajudar muito nesse sentido.
O Kubernetes é agora o padrão de implantações na nuvem. A Cloudsigma tem ótimos tutoriais sobre Kubernetes que você pode conferir a seguir:
- Serviço DNS do Kubernetes: Um Guia para Iniciantes
- Configurando o WordPress com MySQL no Kubernetes com Helm
- Instalando o Jenkins no Kubernetes
- Explorando o CloudSigma PaaS: Como Acessar Aplicativos Kubernetes via IP Público
Feliz Computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.