O Ku­ber­ne­tes (também chamado de K8s) permite gerenciar de forma eficiente grandes quan­ti­da­des de con­têi­ne­res e au­to­ma­tiza muitos processos no de­sen­vol­vi­mento de software. Com apenas alguns passos, é possível instalar um cluster Ku­ber­ne­tes robusto e começar a utilizá-lo de maneira produtiva.

Managed Ku­ber­ne­tes da IONOS
O jeito mais simples de gerenciar cargas de trabalho em con­têi­ne­res.

Ins­ta­la­ção de clusters Ku­ber­ne­tes to­tal­mente au­to­ma­ti­zada, vi­si­bi­li­dade máxima e controle de clusters K8s.

Passo 1: Preparar o sistema

Neste tutorial Ku­ber­ne­tes, mostramos como realizar a ins­ta­la­ção no Ubuntu.

No primeiro passo, é ne­ces­sá­rio preparar o sistema, atu­a­li­zando-o e ins­ta­lando todas as de­pen­dên­cias ne­ces­sá­rias. Para isso, abra o terminal e execute a atu­a­li­za­ção do sistema, ga­ran­tindo que todos os pacotes estejam atu­a­li­za­dos:

sudo apt update && sudo apt upgrade -y
bash

Em seguida, instale as prin­ci­pais fer­ra­men­tas au­xi­li­a­res ne­ces­sá­rias para a ins­ta­la­ção do Ku­ber­ne­tes e do Minikube. Use o seguinte comando:

sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release
bash

Esses uti­li­tá­rios garantem que você possa utilizar fontes externas com segurança e baixar ou instalar outros pacotes de software sem problemas.

Passo 2: Instalar o kubectl

O Ku­ber­ne­tes funciona com di­fe­ren­tes ser­vi­do­res: o Master e os Nodes. Eles não precisam estar ne­ces­sa­ri­a­mente em máquinas físicas separadas. Com o uso de máquinas virtuais, é possível ativar múltiplos nós Ku­ber­ne­tes em um único com­pu­ta­dor. Prin­ci­pal­mente para testes, o programa gratuito Minikube tem se mostrado muito útil. Ele permite trabalhar com Ku­ber­ne­tes de forma local. Como o Minikube precisa de uma máquina virtual ou do Docker, o programa depende de um hi­per­vi­sor ou de um software de con­têi­ne­res. Além disso, é in­dis­pen­sá­vel a uti­li­za­ção da fer­ra­menta kubectl, que será o principal uti­li­tá­rio de linha de comando para gerenciar o cluster no decorrer deste tutorial Ku­ber­ne­tes.

Nota

Neste tutorial Ku­ber­ne­tes, mostramos o processo de início uti­li­zando o Docker. No entanto, você também pode realizar os mesmos passos com um software de vir­tu­a­li­za­ção, como o Vir­tu­al­Box.

Primeiro, instale o kubectl (Kube Control) no seu sistema. Esse programa é essencial para gerenciar o cluster.

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
bash
Nota

Os comandos de ins­ta­la­ção podem variar de­pen­dendo da ar­qui­te­tura do seu sistema.

Passo 3: Instalar o Docker

Antes de usar o Minikube, é ne­ces­sá­rio garantir que o Docker esteja instalado no seu sistema. O Docker funciona como container runtime e permite que o Minikube execute um cluster Ku­ber­ne­tes sem precisar de um software de vir­tu­a­li­za­ção. Instale o Docker com o seguinte comando:

sudo apt install -y docker.io
bash

Para poder utilizar o Docker sem per­mis­sões de su­pe­ru­suá­rio (root), adicione seu usuário ao grupo do Docker:

sudo usermod -aG docker $USER
newgrp docker
bash

Talvez seja ne­ces­sá­rio encerrar a sessão e fazer login novamente para que a as­so­ci­a­ção ao grupo seja ativada. Por fim, teste a ins­ta­la­ção com:

docker run hello-world
bash

Se aparecer uma breve mensagem de sucesso, o Docker foi instalado cor­re­ta­mente e já está pronto para ser usado com o Minikube no decorrer deste tutorial ku­ber­ne­tes.

Passo 4: Instalar e iniciar o Minikube

No próximo passo, você instalará o Minikube em uma versão com­pa­tí­vel, uti­li­zando o Docker como driver. Primeiro, baixe a versão mais recente do Minikube, torne o arquivo exe­cu­tá­vel e mova-o para um diretório do sistema, de forma que o comando fique dis­po­ní­vel glo­bal­mente:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
chmod +x minikube-linux-arm64
sudo mv minikube-linux-arm64 /usr/local/bin/minikube
bash

Após a ins­ta­la­ção, verifique se o Minikube foi con­fi­gu­rado cor­re­ta­mente com:

minikube version
bash

Em seguida, inicie o Minikube com o seguinte comando:

minikube start --driver=docker
bash

Nesse cenário, o Minikube utiliza o Docker como container runtime e cria o cluster Ku­ber­ne­tes di­re­ta­mente dentro do ambiente do Docker. Durante a ini­ci­a­li­za­ção do Minikube, o kubectl deve ser con­fi­gu­rado au­to­ma­ti­ca­mente. Caso queira alternar da linha de comando para uma GUI, utilize o comando abaixo. Ele abrirá o Dashboard no seu navegador padrão:

minikube dashboard
bash
Imagem: Captura de tela do Dashboard do Kubernetes
Dashboard do Ku­ber­ne­tes
Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Passo 5: Utilizar o Ku­ber­ne­tes

Ao iniciar o Minikube, o programa cria au­to­ma­ti­ca­mente um cluster com um único nó (Node). Você pode verificar isso com um comando simples do kubectl:

kubectl get nodes
bash

Pelo Dashboard, você pode agora criar de­ploy­ments. Clique no botão Create (ícone de “+” no canto superior direito) e será aberto um editor baseado na web. Nesse editor, você pode definir um de­ploy­ment nos formatos JSON ou YAML. Após criar o de­ploy­ment, o Ku­ber­ne­tes gera au­to­ma­ti­ca­mente múltiplos pods. Se desejar ajustar a quan­ti­dade, basta escalar o de­ploy­ment. Essa opção pode ser acessada clicando no botão com três pontos ao lado do de­ploy­ment.

Imagem: Escalonamento de um deployment no Kubernetes
Ku­ber­ne­tes: es­ca­lo­na­mento de um de­ploy­ment

Como al­ter­na­tiva, você também pode criar de­ploy­ments di­re­ta­mente pelo terminal. Para isso, o conteúdo já deve estar integrado em uma imagem Docker, ar­ma­ze­nada em um re­po­si­tó­rio.

kubectl create deployment --image=[caminho-da-imagem]
bash

Por meio da linha de comando, é possível obter diversas in­for­ma­ções úteis sobre o cluster: Quais de­ploy­ments existem?

kubectl get deployments
bash

Quantos pods estão ativos?

kubectl get pods
bash

Quais services existem?

kubectl get services
bash

Quais nodes estão ativos?

kubectl get nodes
bash
Imagem: Terminal com diferentes comandos do Kubernetes e seus respectivos outputs
Comandos do Ku­ber­ne­tes no terminal

Passo 6: Publicar um de­ploy­ment

Até aqui, você iniciou seu de­ploy­ment, mas ainda não o publicou. Para dis­po­ni­bi­lizá-lo, é ne­ces­sá­rio criar um service:

kubectl expose deploy test-deployment
bash

Dessa forma, o service estará dis­po­ní­vel apenas dentro do cluster. Para permitir acesso também fora do cluster, adicione algumas flags extras:

kubectl expose deploy test-deployment --type=LoadBalancer --port=8080
bash

Com o Minikube, é possível iniciar o service di­re­ta­mente com:

minikube service test-deployment
bash

Se quiser excluir o service, use o comando:

kubectl delete service test-deployment
bash

Da mesma forma, o de­ploy­ment também pode ser removido:

kubectl delete deployment test-deployment
bash

Para encerrar o Minikube, basta parar o processo:

minikube stop
bash

E, se você não pretende mais utilizar a VM ou o container runtime, pode excluir com­ple­ta­mente o ambiente:

minikube delete
bash

Após a exclusão, todas as con­fi­gu­ra­ções, de­ploy­ments e pods criados serão removidos. Ao iniciar o Minikube novamente, você terá um cluster limpo e vazio, pronto para novos testes e ex­pe­ri­men­tos.

Ir para o menu principal