anúncios

quinta-feira, 14 de julho de 2022

Executando o Kubernetes na máquina local com o Kind

O presente post, é explicar o que é Kubernetes e os procedimentos de instalação e configuração da ferramenta Kind que utiliza containers Docker e assim simular um cluster Kubernetes local.

O que é Kubernetes e para que serve?

Kubernetes ou "K8s" é uma ferramenta de orquestração de conteiners open source que automatiza a implantação, o dimensionamento e a gestão de aplicações em conteiners. Foi originalmente projetado pelo Google e agora é mantido pela Cloud Native Computing Foundation.

Instalando e configurando o Kind

Como o Kind utiliza o Docker, logo precisa ter o Docker instalado, caso ainda não tenha, segue o procedimento para instalar o Docker em qualquer distro GNU/Linux ou WSL2 no Windows 10/11.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Adicionar o usuário logado no grupo docker

Para que possa ser executados comandos Docker com usuário regular, é necessário adicionar no grupo docker.

$ sudo usermod -aG docker $(whoami)

Até a data de publicação deste post, a versão corrente do Kind é 0.14.0 e do Go é 1.17. Em stableVersion, substitua pela versão corrente, conforme a data que estiver seguindo este tutorial.

Antes é necessário instalar a linguagem Go para poder seguir os procedimentos seguintes na instalação do Kind.

PS: Escolhe uma das duas formas para instalar o Kind.

Instalando Kind via binário


$ curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64
$ chmod +x ./kind
$ mv ./kind /opt/kind

Instalando Kind via Go


$ curl https://dl.google.com/go/go1.17.7.linux-amd64.tar.gz
$ tar -xvf go1.17.7.linux-amd64.tar.gz
$ sudo mv go /usr/local

Criar a variável de ambiente GOROOT e adicionar no PATH

$ export GOROOT=/usr/local/go
$ export GOPATH=$HOME/Projetos
$ export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Feche e abre novamente o terminal e digite go version

$ go install sigs.k8s.io/kind@{{< stableVersion >}}
$ go install sigs.k8s.io/kind@v0.14.0
$ sudo chmod +x ./kind && sudo mv ./kind /usr/local/bin/

Criar o cluster


$ kind create cluster --name
$ kubectl cluster-info --context kind-<nome-cluster>

Listar os clusters criados

$ kind get nodes

Deleter o cluster criado

$ kind delete <nome-cluster>

Instalação do Kubectl


Para utilizar o kubectl, execute os procedimentos abaixo:

$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
$ chmod +x kubectl && sudo mv kubectl /usr/local/bin/
$ kubectl get nodes

Criar o arquivo kind.yml para criar os clusters Kubernetes

$ vim kind.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1.14.0

nodes:
 - role: controle-plane
 - role: worker
 - role: worker
 - role: worker
 - role: worker
$ kind create cluster --name <nome-cluster> --config=kind.yml

Listar os clusters

$ kubectl get nodes

Exemplo prático de execução do Rabbitmq no Kubernetes na máquina local

Criar o arquivo manifest.yml do Rabbitmq de exemplo

$ vim manifest.yml
applications:
- name: rabbitmq
  memory: 256M
  instances: 2
  path: .

Executar o arquivo manifest.yml

$ kubectl apply -f rabbitmq.yml

Verificar a execução

$ kubectl get all

Fazer o redirecionamento de porta para acessar no browser

$ kubectl port-forward service/rabbitmq-service 15672

Acesse no browser http://localhost:15672 acessar a tela do Rabbitmq

Para quem ainda não sabe, o Rabbitmq é uma ferramenta de mensageria de código aberto, bastante utilizada em microserviços.

Referências

https://kind.sigs.k8s.io/

https://kubernetes.io/docs/tutorials/stateless-application/guestbook/

Feito!

Nenhum comentário:

Postar um comentário