Kubernetes: Criando seu cluster localmente com Kind

DeltaOps
5 min readJul 19, 2024

--

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

Muitas vezes, as pessoas querem experimentar e se familiarizar com o Kubernetes, mas encontram algumas limitações nas opções disponíveis. Alguns clusters são temporários, outros têm apenas um nó, e as soluções na nuvem geralmente têm custo.

Neste artigo, é apresentada uma forma de configurar um cluster Kubernetes altamente disponível localmente, de forma permanente e gratuita, para fins de desenvolvimento e testes. Além disso, o processo de configuração desse cluster é simples e direto.

Esse ambiente pode ser usado como um “playground” para praticar as certificações CKA, CKAD e CKS do Kubernetes. Para isso, vamos utilizar o kind. Para saber mais sobre o kind, acesse o link abaixo.

No meu caso estarei usando o Ubuntu 22.04. A instalação do Kind nessa distribuição é bastante simples.

Instalação

Pré requisitos:

  • Docker
  • kubectl
  • go

Para utilizar o Kind, você precisará ter o Docker instalado e em execução. Caso você ainda não tenha o Docker instalado, você pode seguir as instruções no link abaixo:

Instalar o kubectl na sua máquina local permitirá que você acesse o cluster a partir dela.

Siga a documentação abaixo para instalar e configurar corretamente o kubectl:

https://kubernetes.io/docs/tasks/tools/install-kubectl/?source=post_page-----eafd46dd63e5--------------------------------

Com os pré-requisitos configurados, vamos prosseguir com a instalação do Kind.

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64
chmod +x kind && sudo mv kind /usr/local/bin/kind

Para outras distribuições, você pode seguir as instruções neste link abaixo.

Depois de concluir a instalação, execute o seguinte comando:

kind

Com o resultado acima, podemos ver que tudo está funcionando corretamente. Vamos realizar o primeiro teste, criando o primeiro cluster. Execute o seguinte comando:

kind create cluster

O comando kind create cluster cria um cluster Kubernetes local usando a ferramenta Kind. Esse comando realiza as seguintes etapas:

  1. Cria um cluster Kubernetes utilizando contêineres Docker para simular os nós do cluster.
  2. Configura o cluster com um único nó de controle (master) e, opcionalmente, alguns nós de trabalho (workers).
  3. Configura o contexto do kubectl para interagir com esse cluster local.
  4. Torna o cluster acessível para que você possa implantar aplicativos e executar tarefas de desenvolvimento e testes relacionadas ao Kubernetes.

Vamos fazer alguns testes. Execute o seguinte comando:

kubectl cluster-info --context kind-kind
kubectl get nodes
kubectl get pods -A

Esses comandos permitem verificar se o cluster Kubernetes local foi criado corretamente e exibir informações sobre seus componentes, como nós e pods.

Agora vamos excluir o cluster. Execute o seguinte comando:

kind delete cluster

O comando acima exclui o cluster criado anteriormente.

Para criar um cluster com um nome específico, execute o seguinte comando:

kind create cluster <nome do cluster>

ex: kind create cluster deltaops

E para excluir esse cluster, execute o comando:

kind delete cluster --name deltaops

Agora vamos criar um cluster com 3 nós. Vamos ver como podemos realizar isso.

# Crie uma pasta e entre nela. 
mkdir deltaops-kind && cd deltaops-kind

# Criando "kind-config.yaml" um arquivo de instrução do kind
cat > kind-config.yaml <<EOF
# 3 node (2 workers)
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF

Vamos analisar o que cada parte deste código YAML faz:

  1. kind: Cluster: Especifica que este é um recurso do tipo "Cluster" para a ferramenta Kind.
  2. apiVersion: kind.x-k8s.io/v1alpha4: Indica a versão da API do Kind que será utilizada para interpretar este manifesto.
  3. nodes:: Começa a definição dos nós que irão compor o cluster Kubernetes.
  4. - role: control-plane: Define um nó com o papel de "control-plane", que será o nó de controle (master) do cluster.
  5. - role: worker: Define dois nós com o papel de "worker", que serão os nós de trabalho (workers) do cluster.

Agora que você entendeu o que esse arquivo YAML faz, vamos criar um novo cluster com o nome ‘deltaops’. Execute o seguinte comando:

kind create cluster --name deltaops --config kind-config.yaml

Vamos validar se a criação do cluster está correta. Execute os seguintes comandos:

kubectl get nodes

Esse tipo de configuração permite criar um cluster Kubernetes completo e personalizado em um ambiente local, facilitando o desenvolvimento, testes e aprendizado relacionados ao Kubernetes.

Agora que você aprendeu a criar seu cluster localmente, você está pronto para instalar programas e testar os comandos que foram apresentados no tutorial anterior, disponível no link abaixo.

Espero que este post tenha sido útil e encorajo você a continuar aprendendo e explorando o mundo do Kubernetes. Se você tiver alguma dúvida ou sugestão, por favor, compartilhe nos comentários abaixo. Estamos aqui para ajudar!

Nos acompanhe nas redes sociais e até a próxima!

https://deltaops.com.br/

https://www.linkedin.com/company/deltaopscloud/

Referência:

Escrito por 🖋️ Diogo Lima
Sócio Fundador da Empresa DeltaOps

--

--

DeltaOps

Somos uma consultoria especializada em Cloud, DevOps e SRE. Apaixonados por automação, ajudamos empresas em sua jornada para a nuvem com práticas DevOps.