Kubernetes – Criando um cluster local com Kind
Olá pessoal!!!
Hoje no Blog da 4Linux, vou demonstrar como baixar, instalar e configurar o Kind, uma forma de construir um Cluster local do Kubernetes.
O que é?
O Kind é uma ferramenta para executar clusters locais do Kubernetes usando “nós” de contêiner Docker. Kind foi projetado principalmente para testar o próprio Kubernetes, mas pode ser usado para desenvolvimento local ou CI.
Como é o Kind?
Ele consiste em:
- Pacotes Go que implementam criação de cluster, construção de imagem, etc.
- Uma interface de linha de comando (kind) construída sobre esses pacotes.
- Imagens Docker escritas para executar systemd, Kubernetes, etc.
- A integração do kubetest também construída nesses pacotes (WIP) tipo bootstrap cada em “nó” com kubeadm.
O Kind ainda é um trabalho em em construção. Para acompanhar, consulte 1.0 Roadmap
Instalação
Para seguir o passo a passo de instalação, utilize o manual de instação. Para o nosso ambiente, vou demonstrar usando o modo via binários no Linux.
Antes de escutar a criação do cluster, você precisa ter instalado o Docker ou o Podman em sua máquina.
Bora instalar o Kind.
Execute:
# para AMD64/x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-amd64
# Para ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
Criando nosso cluster local
Antes de criar o nosso cluster, vamos criar um arquivo yaml
com as informações do nosso cluster.
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: sparta
nodes:
- role: control-plane
- role: worker
- role: worker
Execute o comando de criar o cluster usando o arquivo de configuração que criamos:
$ kind create cluster --config cluster.yaml
Creating cluster "sparta" ...
✓ Ensuring node image (kindest/node:v1.29.2) 🖼
✓ Preparing nodes 📦 📦 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
✓ Joining worker nodes 🚜
Set kubectl context to "kind-sparta"
You can now use your cluster with:
kubectl cluster-info --context kind-sparta
Have a nice day!
Feito, agora visualize que o nosso cluster está em execução localmente com o cluster-info
$ kubectl cluster-info --context kind-sparta
Kubernetes control plane is running at https://127.0.0.1:39911
CoreDNS is running at https://127.0.0.1:39911/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Listando nodes criados
Agora que passamos da etapa de criação do nosso cluster local, vamos listar os nós criados e visualizar suas informações.
Listando nós:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
sparta-control-plane Ready control-plane 3m51s v1.29.2
sparta-worker Ready <none> 3m28s v1.29.2
sparta-worker2 Ready <none> 3m27s v1.29.2
Visualizando informações de um dos nodes:
$ kubectl describe node sparta-control-plane
Name: sparta-control-plane
Roles: control-plane
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=sparta-control-plane
kubernetes.io/os=linux
node-role.kubernetes.io/control-plane=
node.kubernetes.io/exclude-from-external-load-balancers=
Annotations: kubeadm.alpha.kubernetes.io/cri-socket: unix:///run/containerd/containerd.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Thu, 22 Feb 2024 15:53:11 -0300
Taints: node-role.kubernetes.io/control-plane:NoSchedule
Unschedulable: false
(...)
Criando nosso primeiro deploy
Agora que visualizamos as informações dos nodes, vamos realizar um deploy para teste.
Criando deploy
$ kubectl create deploy webserver --image nginx
deployment.apps/webserver created
Validando aplicação:
Crie um port-forward
:
$ kubectl port-forward webserver-667ddc69b6-5qnp2 8081:80
Forwarding from 127.0.0.1:8081 -> 80
Forwarding from [::1]:8081 -> 80
Agora, execute um curl em outro terminal no endereço http://127.0.0.1:8081
$ curl http://127.0.0.1:8081
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Feito, viram como foi tranquilo a criação de um cluster local com o Kind e ainda realizar um deploy? Rápido, leve e prático.
Espero que vocês tenham gostado do post prático de hoje. Nos veremos em breve.
Se púderem, compartilhem em suas redes sociais.
Abraço.
Referências
About author
Você pode gostar também
Crie sua própria Wiki: Guia passo a passo para instalação e uso
Uma wiki é uma coleção de páginas da web interconectadas e editáveis colaborativamente. O termo “wiki” é derivado da palavra havaiana “wiki wiki”, que significa “rápido” ou “veloz”. A característica
Kubernetes – Configurando um Cluster Multi-Master
Neste post vamos configurar um cluster Kuberentes Multi-Master apenas com a sua máquina. Mas antes de falarmos sobre um cluster em Kubernetes trabalhando em modo Multi-Master… Uma palavra sobre containers…
Descubra o poder do Kubernetes e como ele pode impulsionar suas aplicações
Kubernetes ou “k8s” para os íntimos, é uma ferramenta de código aberto originalmente desenvolvido pela Google, utilizado para a orquestração de containers, ou seja, para implantação, dimensionamento e