Rodar containers Docker em um computador local é muito simples, basta um comando “docker run nginx”e pronto, você tem seu container lindo rodando, porém quando você tem a necessidade de rodar esse mesmo container em um ambiente de nuvem a história muda…

Você tem que montar seu cluster, configurar o auto-scale, configurar o load balance… MEU DEUS QUANTA COISA! Um certo dia, parei para pesquisar uma solução que poupasse meu tempo, logo, pensei comigo: “não é possível que ninguém tenha feito algo para simplificar esse processo repetitivo”.

Uma das soluções encontradas foi o Azure Kubernetes Services, ele te permite montar um cluster de Kubernetes com 1 único comando, com isso sobra tempo pra focar na sua aplicação e não na configuração de máquinas.

Mas o que é Kubernetes? Falando por alto, Kubernetes é uma ferramenta de orquestração para containers, você monta seu container com o Docker e o Kubernetes faz todo o trabalho de deploy, auto scale, service discovery e muito mais, caso queira saber mais sobre o Kubernetes segue o link da documentação deles: https://kubernetes.io/docs/tutorials/kubernetes-basics/

Montando um Cluster em Kubernetes

Estou levando em consideração que você já tenha o Azure CLI configurado na sua máquina, caso não tenha segue um tutorial de configuração: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

Para montar um cluster utilizando o AKS basta um único comando: “az aks create -n NomeDoSeuCluster -g NomeDoGrupoDeRecursos –generate-ssh-keys”

  • Substitua o “NomeDoSeuCluster” pelo nome do seu cluster.
  • Substitua o “NomeDoGrupoDeRecursos” pelo nome do grupo de recursos onde o seu cluster irá ser provisionado, este grupo de recursos precisa existir na sua conta do Azure.

Após alguns minutos você terá o seu cluster montado como pode ser visto na imagem abaixo:

Após montar nosso cluster vamos resgaras as credenciais de acesso com o comando:“az aks get-credentials -n NomeDoSeuCluster -g NomeDoGrupoDeRecursos”

Caso tudo dê certo você irá receber a seguinte mensagem:

Vamos agora configurar o Kubectl CLI, este será utilizado para se comunicar diretamente com o Kubernetes, para fazer isso basta executar o seguinte comando: “az aks install-cli”

Se tudo ocorreu bem será exibido a seguinte mensagem:

Vamos verificar agora qual o estado das máquinas do nosso cluster, para isso utilizaremos o comando:“kubectl get nodes”

E finalmente vamos subir nossa primeira aplicação dentro do nosso cluster!!! Para isso vamos utilizar o comando run: “kubectl run meu-nginx –image=nginx –replicas=1 –port=80”

Vamos chamar o “get pods” para verificar se nossa aplicação foi deployada com sucesso:

Como vimos na imagem acima nossa aplicação foi deployada! porém ela ainda não está disponivel na internet, para disponibilizar nossa aplicação na internet vamos utilizar o comando “expose”:“kubectl expose deployment meu-nginx –port=80 –type=LoadBalancer”

 

Agora basta chamar o comando “get services” para descobrir qual o IP que nossa aplicação recebeu, essa etapa pode demorar alguns minutos:“kubectl get services –watch”

Como podemos ver nossa aplicação recebeu o IP: 52.179.85.102

Por fim, vamos acessar o IP da nossa aplicação para ver se deu tudo certo!

E não é que funciona mesmo? 😊

Por hoje é isso galera, espero que tenham gostado, essa foi uma pequena demonstração de como o AKS/Kubernetes pode nos ajudar na orquestração de nossos containers,pretendo fazer uma parte 2 deste artigo explicando sobre como utilizar o Azure Container Instance junto com o Kubernetes, deixo logo abaixo alguns links interessantes para quem quer se aprofundar no assunto.

Bibliografia: 

Introducing AKS (managed Kubernetes) and Azure Container Registry improvements 

Kubernetes.io

Explore Multicloud Deployments with Microsoft’s ACI Connector for Kubernetes

 

Tiago Rosendo | Desenvolvedor na Braspag, backend de coração e apaixonado pelo frontend, entusiasta de JS e Docker e nas horas vagas não dispensa uma jogatina online.

LinkedIn | E-mail