Desenvolvimento

19 dez, 2017

Como usar Azure Kubernetes Services

Publicidade

Olá, pessoal. Hoje vamos falar um pouco sobre o Azure Kubernetes Services, vulgo AKS. Aqui na Braspag estamos utilizando ele em produção há algum tempo. Utilizamos para “deployar” nossas principais aplicações, desde as mais básicas, até as mais complexas. Tudo com alta disponibilidade!

Introdução

Rodar containers Docker em um computador local é muito simples, basta um comando “docker run nginx”e pronto, você tem seu container 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 e configurar o load balance. 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 um ú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 cima, 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:

Montando um Cluster em Kubernetes

Estou levando em consideração que você já tenha o Azure CLI configurado em 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 resgatar 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á exibida 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 IP 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?

Conclusão

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.

Referências

  • Introducing AKS (managed Kubernetes) and Azure Container Registry improvements

https://azure.microsoft.com/en-us/blog/introducing-azure-container-service-aks-managed-kubernetes-and-azure-container-registry-geo-replication/

  • Kubernetes.io

https://kubernetes.io/docs/tutorials/kubernetes-basics/

  • Explore Multicloud Deployments with Microsoft’s ACI Connector for Kubernetes

https://thenewstack.io/explore-multicloud-deployments-aci-connector-kubernetes/