14 de junho de 2023 • 1 min de leitura
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: