O Kubernetes tem sido muito utilizado pelas empresas que estão modernizando suas aplicações de VM para Containers, afim de aproveitar dos benefícios que são proporcionados neste processo. Logo, com o objetivo de não ficar para trás no mercado de tecnologia, você que atua como um Profissional de TI, precisa ficar cada vez mais de olho e acompanhar as tendências do mercado.
A atividade que daremos continuidade neste post, é de extrema importância para o negócio das empresas. Então, não pense que, por exemplo, devido sua empresa não estar utilizando as técnicas de modernização, que não faz sentido para você, pois esse conhecimento todo o Profissional de TI precisa ficar por dentro.
Agora, vamos colocar a mão na massa, realizando o upload da imagem da aplicação para o Docker Hub. Em seguida, vamos fazer o push para o Container Registry na Google Cloud e implementar com o Google Kubernetes Engine.
Vamos lá? #pracima
Upload da Docker Image para o Docker Hub
Pré-requisitos: fazer o download do Docker aqui e realizar a criação da sua conta no Docker Hub aqui.
1- Com o Build da imagem concluído, vamos adicionar uma tag nela.
Formato
docker tag SOURCE_IMAGE[:TAG] SEU-DOCKER-ID/TARGET_IMAGE[:TAG]
Comando Pronto
docker tag appflask tcbjosuelima/appflask
2- Em seguida, vamos fazer o push da imagem para o Docker Hub.
Formato
docker push <SEU-DOCKER-ID>/NAME[:TAG]
Comando pronto
docker push tcbjosuelima/appflask:latest
Agora, acesse a sua conta no Docker hub. Em seguida, navegue até Repositories. Feito isso, você vai ver a imagem da aplicação, comprovando o upload concluído com sucesso.
Preparação da imagem da aplicação no Container Registry
Pré-requisitos:
- De início, você vai precisar criar uma conta gratuita na Google Cloud. Nessa conta, você tem a possibilidade de usar $300 dólares no período de 90 dias.
- Em seguida, com a conta já criada, certifique-se de estar com a API do Kubernetes e Container Registry habilitada.
P.S.: Caso tiver uma conta ativa na Google Cloud e a API já estiver habilitada, fique à vontade para pular os pré-requisitos acima.
1- Na Console da GCP, na barra de pesquisas, procure por Container Registry. Em seguida, em Products & Pages, clique em Container Registry.
2- Clique em Ativar o Cloud Shell.
3- Agora, vamos fazer o download da imagem do Docker Hub, executando em seguida o seguinte comando no Cloud Shell:
Formato
docker pull docker.io/<repositório-no-docker-hub>/<container>
Comando pronto
docker pull docker.io/tcbjosuelima/appflask
4- Com o objetivo de preparar a imagem, execute os seguintes comandos no Cloud Shell:
Formato
docker tag <TAG> us.gcr.io/<ID_PROJETO>/tcb-python-flask-gcp
Comando pronto
docker tag edd0a6f99488 us.gcr.io/capable-epigram-318416/appflask
5- Para subir a imagem para o Container Registry, execute o seguinte comando no Cloud Shell:
Formato
docker push us.gcr.io/<ID_PROJETO>/appflask
Exemplo
docker push us.gcr.io/capable-epigram-318416/appflask
Em seguida, clique em Autorizar.
Por fim, concluímos o Push para o Container Registry.
Ao retornar em Container Registry, a nossa imagem vai estar à disposição.
Vamos para os próximos passos.
Criação do Autopilot Cluster na Google Cloud
1- Na barra de pesquisas, digite Kubernetes. Em seguida, em Produtos e Páginas, clique em Kubernetes Engine.
2- Para realizarmos o deploy da nossa aplicação, precisaremos antes fazer a criação de um Cluster. No Google Kubernetes Engine, conseguimos fazer a criação de um Cluster Standard (Padrão) e Autopilot (Piloto Automático). Para o nosso cenário, vamos realizar a criação de um Autopilot Cluster.
Após acessar o Google Kubernets Engine, na aba Clusters, clique em Criar.
3- Em Criar cluster, Piloto automático, clique em Configurar.
4- Para o nosso cenário, vamos manter o Nome do cluster e Região no padrão. Mantenha as outras opções, em seguida, clique em Criar.
Obs.: Esse procedimento vai levar em torno de 5-10 minutos.
Deploy da Imagem no Google Kubernetes Engine
1- Com o cluster pronto, clique nele para mais informações.
2- Clique em Conectar.
3- Em seguida, clique em Executar no Cloud Shell.
4- Após abrir o Cloud Shell com a linha de comando, aperta a tecla Enter.
Clique em Autorizar.
Em seguida, você vai ver as seguintes informações na sua console.
5- Com o cluster criado, vamos realizar o deploy da imagem da nossa aplicação que está no Container Registry.
Na console da Google Cloud, insira a seguinte linha:
Formato
kubectl create deployment <nome-do-workload> --image=<path-da-sua-imagem-no-Container-Registry>
Comando Pronto
kubectl create deployment appflask --image=us.gcr.io/capable-epigram-318416/appflask
Para acompanhar o processo e verificar se o deploy foi concluído, clique em Cargas de Trabalho (Workloads). Em seguida, acompanhe o status.
Obs.: Para ficar ok, vai levar de 5 a 10 minutos.
Agora nós precisamos expor a nossa aplicação para o mundo. Como nós fazemos isso?
6- No Cloud Shell, execute a seguinte linha de comando:
Formato
kubectl expose deployment <nome-do-workload> --type LoadBalancer --port 80 --target-port 5000
Comando pronto
kubectl expose deployment appflask --type LoadBalancer --port 80 --target-port 5000
Aplicação exposta. Em seguida, vamos ver como acessá-la.
7- Para avançarmos, execute no Cloud Shell o comando abaixo:
kubectl get service appflask
Como resultado, você vai ver o seguinte:
Copie o External IP, abra uma nova aba no seu navegador e valide se está funcionando.
Por fim, conforme indicado na figura acima, concluímos a modernização da nossa aplicação que estava em uma VM no ambiente on-premises e agora está em execução no Google Kubernetes Engine na Google Cloud Platform.
Para aprender Google Cloud Platform de forma prática com Projetos Hands-on baseados nos cenários do Mundo Real, clique aqui.