Escolher seu cluster local: kind vs Kubeadm (Docker Desktop)

3 min

Projeto projet10-kubernetes-deploiements · Quando o Docker Desktop mostra « Create Kubernetes Cluster », propõe dois tipos de cluster: kind ou Kubeadm. Este documento explica a diferença e qual escolher para este curso.

Numa frase

  • Kubeadm = um cluster de 1 nó, simples, que partilha o motor Docker → as tuas imagens construídas em local ficam imediatamente utilizáveis. ⭐ Recomendado para este projeto.
  • kind (Kubernetes IN Docker) = cada nó é um contentor com o próprio armazenamento de imagens (containerd) → é preciso carregar as imagens locais antes de implantar, mas pode-se simular vários nós.

Tabela comparativa

CritérioKubeadmkind
SignificadoFerramenta oficial de arranque de um clusterKubernetes in Docker
Número de nós1 só (single-node)1 a 10 (multi-nós possível)
Onde correm os nósDiretamente na VM do Docker DesktopCada nó = um contentor Docker
Armazenamento das imagensPartilhado com o motor DockerIsolado (containerd próprio do kind)
Imagem local (docker build)Visível de imediato (imagePullPolicy: IfNotPresent)Não visívelkind load docker-image <img> obrigatório
Simular uma avaria de Não (um só nó)Sim (pode-se parar um contentor-nó)
Velocidade / levezaMuito rápido a arrancarRápido, mas uma etapa extra de carregamento de imagem
Ideal paraAprender Pods / Deployments / Services sem atritoTestar o multi-nós, o scheduling, a afinidade
ReinicializaçãoReset do clusterAlterar o número de nós reinicializa tudo

Impacto concreto NESTE projeto

O nosso projeto constrói uma imagem em local:

powershell
docker build -t demo-k8s:1.0 ./app

e o deployment.yaml usa:

yaml
image: demo-k8s:1.0
imagePullPolicy: IfNotPresent   # NÃO tenta descarregar de um registo

Com Kubeadm — nada mais a fazer

O cluster partilha o motor Docker: a imagem demo-k8s:1.0 já está lá.

powershell
docker build -t demo-k8s:1.0 ./app
kubectl apply -f k8s/

Com kind — uma etapa extra (carregar a imagem)

Senão os Pods ficam em ErrImagePull / ImagePullBackOff (o cluster não encontra a imagem).

powershell
docker build -t demo-k8s:1.0 ./app
kind load docker-image demo-k8s:1.0    # <-- indispensável com kind
kubectl apply -f k8s/

A refazer a CADA reconstrução de imagem com kind. É o esquecimento n.º 1 que bloqueia os principiantes.


Recomendação para o curso

O teu objetivoEscolhe
Descobrir Pods, Deployments, Services, ConfigMap, scaling, rolling updateKubeadm
Mostrar um cluster multi-nós e a repartição dos Pods entre nóskind (2 nós ou mais)

Para este projeto, marca Kubeadm e depois Create.

Definições da janela « Create Kubernetes Cluster »

  • Cluster Type: Kubeadm.
  • Version: a proposta (ex. v1.34.1) serve.
  • Advanced Settings → Show system containers: deixa desmarcado (senão os contentores internos do Kubernetes aparecem em docker ps, o que sobrecarrega a vista).

Verificar que o cluster está pronto

powershell
kubectl config use-context docker-desktop
kubectl get nodes            # deve mostrar um nó  Ready

Em caso de problema de acesso às imagens ou aos Pods, ver o anexo de resolução de problemas de 02-COMMANDES.md.


Curso criado pelo Dr. Haythem REHOUMA — Desenvolvimento e implantação de soluções de dados