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:
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:
- Cria um cluster Kubernetes utilizando contêineres Docker para simular os nós do cluster.
- Configura o cluster com um único nó de controle (master) e, opcionalmente, alguns nós de trabalho (workers).
- Configura o contexto do kubectl para interagir com esse cluster local.
- 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:
kind: Cluster
: Especifica que este é um recurso do tipo "Cluster" para a ferramenta Kind.apiVersion: kind.x-k8s.io/v1alpha4
: Indica a versão da API do Kind que será utilizada para interpretar este manifesto.nodes:
: Começa a definição dos nós que irão compor o cluster Kubernetes.- role: control-plane
: Define um nó com o papel de "control-plane", que será o nó de controle (master) do cluster.- 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://www.linkedin.com/company/deltaopscloud/
✨ Referência:
Escrito por 🖋️ Diogo Lima
Sócio Fundador da Empresa DeltaOps