WSL2 + Kind + Kubectl

Como instalar o Kind e o Kubectl no WSL2

Antes de tudo, é necessário possuir o Docker instalado, no meu outro post você pode verificar como instalar: Windows + WSL2 + Docker

Instalando o Kind

Você pode verificar a release aqui: Github kubernetes-sigs/kind

# Para x86_64
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.19.0/kind-linux-amd64
# Para ARM64
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.19.0/kind-linux-arm64

# Permissão de execução
chmod +x ./kind

# Mover para o diretório bin
sudo mv ./kind /usr/local/bin

# Verifique a versão
kind version

Instando o kubectl

Você pode verificar a release aqui: Kubernetes - Release History

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.27.0/bin/linux/amd64/kubectl

# Permissão de execução
chmod +x ./kubectl

# Mover para o diretório bin/kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

# Nome do usuário do Windows
windowsUser=$1

# Crie o diretório .kube
mkdir -p ~/.kube

# Crie um link simbólico para o arquivo config do Windows
ln -sf "/mnt/c/users/$windowsUser/.kube/config" ~/.kube/config

# Verifique a versão
kubectl version --short

Criando um cluster

# Crie um arquivo config.yml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  extraPortMappings:
  - containerPort: 30000
    hostPort: 30000
    protocol: TCP

# Crie o cluster
kind create cluster --config=config.yml --name nomedoseucluster

# Verificando se o cluster foi criado
kubectl cluster-info --context kind-nomedoseucluster

Alguns erros e como corrigir:

  • ERROR: failed to create cluster: failed to write KUBECONFIG:
# Remova o config danificado do diretório .kube
ls $HOME/.kube # Verifica se existe o arquivo config
rm $HOME/.kube/config # Remove o arquivo config

# Adicione no ~/.bashrc o path do Kube Config
export KUBECONFIG=${HOME}/.kube/config
#exemplo
echo "export KUBECONFIG=${HOME}/.kube/config" >> ~/.bashrc
  • ERROR: failed to create cluster: failed to init node with kubeadm: command “docker exec
    Provavelmente você não possui espaço para criar o cluster, se possível remova do Docker os containers, etc que não estão sendo utilizados.



Fontes:

Comentários