Kind significa kubernetes in docker, ou seja é uma forma de estudar kubernetes em localhost com o mínimo de recursos possíveis. Ideal para desenvolvedores e profissionais de infraestrutura iniciarem os seus estudos sobre Kubernetes.
Ele é multiplataforma, ou seja está disponível para windows, linux e macos.
Uma breve introdução, um cluster kubernets é composto nodes (maquinas físicas ou virtuais). Temos dois tipos de nodes control-plane (manager) e os workers (responsáveis pelo trabalho pesado). No caso do kind ele cria um container do docker para cada node em execução.
No kind o node control-plane nos permite por padrão executar os pods. Os pods são a menor unidade do kubernetes e podem conter um ou mais containers.
Instalando o Docker via script de conveniência
O script vai identificar qual é a sua distro e instalar o pacote correto.
sudo curl -fsSL https://get.docker.com/ | sh
docker --version
Antes do kind vamos instalar o binário do kubectl
Ele tem 50mb em média, e vai nos permite interagir com o cluster kubernetes e seus respectivos arquivos de configuração ~/.kube/config
chamado de kubeconfig criados automaticamente quando você cria um cluster no kind e solicitado que seja criado no output ao iniciar um cluster kubernetes real.
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version --client
Agora sim vamos instalar o kind
Obs. Estamos instalando a versão v0.12.0 atual estável em 01/05/22, consulte o aqui a ultima release e faça a substituição da versão na url.
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/
kind version
Configurando o auto complete para o kubectl e um alias k=kubectl e fazendo o auto completar funcionar com o alias.
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc
Criando um cluster de nó único (control-plane) manager
kind create cluster --name cluster-dev
Comandos básicos
# Listando os clusters
kind get clusters
# Listando os nodes
kubectl get nodes
# Informações do seu cluster
kubectl cluster-info --context kind-cluster-dev
# Gerando um dump do seu cluster
kubectl cluster-info dump
# Listando os containers
docker container ls
# Deletando o cluster
kind delete cluster --name cluster-dev