Artigos

Load Docker Images into Your Kind Kubernetes Cluster

22/02/2025

10 min de leitura

Compartilhar o artigo

Carregue facilmente imagens do Docker no seu cluster Kind Kubernetes 🐳⚙️

O Kind (Kubernetes no Docker) é uma ferramenta fantástica para executar clusters Kubernetes locais usando "nós" de contêineres Docker. É incrivelmente útil para testar seus aplicativos em contêineres e configurações do Kubernetes antes de implantá-los em um ambiente de produção. Uma tarefa comum é colocar suas imagens Docker personalizadas neste cluster Kind local.

Hoje, vou guiá-lo pelo processo passo a passo, desde a instalação do Kind e do kubectl até a criação de uma imagem Docker e seu carregamento no seu cluster Kind.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte instalado em seu sistema Linux:

  1. Docker: O Kind usa o Docker para executar os nós do Kubernetes. Se você não o tiver, instale-o primeiro. Você pode encontrar instruções no site oficial do Docker.
  2. Curl (geralmente pré-instalado na maioria das distribuições Linux).

Etapa 1: Instalar o Kind

Primeiro, vamos instalar o Kind. Estes comandos baixam o binário apropriado para a arquitetura do seu sistema e o movem para o diretório local de binários.

# Para AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind [https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64](https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64)
# Para ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind [https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-arm64](https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-arm64)

chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

Observação: v0.23.0 é usado aqui como exemplo. Você pode verificar a página de lançamentos do Kind para obter a versão mais recente e atualizar a URL conforme necessário.

Verifique a instalação:

versão do Kind

Etapa 2: Instalar kubectl

kubectl é a ferramenta de linha de comando para interagir com clusters do Kubernetes, incluindo o seu cluster Kind.

  1. Baixe a versão estável mais recente do kubectl:
curl -LO "[https://dl.k8s.io/release/$(curl](https://dl.k8s.io/release/$(curl) -L -s [https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl](https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl)"
  1. Torne o binário kubectl executável:
chmod +x ./kubectl
  1. Mova o binário para o seu PATH:
sudo mv ./kubectl /usr/local/bin/kubectl
  1. Verifique o instalação:
kubectl version --client

Etapa 3: Crie sua imagem Docker

Agora, você precisa de uma imagem Docker para carregar no seu cluster Kind. Se você tiver um Dockerfile para sua aplicação, navegue até o diretório que contém seu Dockerfile e execute:

# Substitua 'my-custom-app:1.0.0' pelo nome e tag da imagem desejados
docker build -t my-custom-app:1.0.0 .

Este comando cria uma imagem Docker usando o Dockerfile no diretório atual (.) e a marca como my-custom-app:1.0.0. Certifique-se de que esta imagem esteja disponível localmente na sua máquina onde o Docker está sendo executado.

Etapa 4: Crie um cluster Kind (se você não tiver um)

Antes de carregar uma imagem, você precisa de um cluster Kind em execução. Se você ainda não criou um, use o seguinte comando:

kind create cluster --name my-dev-cluster

Você pode omitir --name my-dev-cluster para usar o nome de cluster padrão "kind". Este comando pode levar alguns minutos para ser concluído, pois configura o plano de controle e os nós do Kubernetes como contêineres do Docker.

Etapa 5: Carregue a imagem do Docker no seu cluster do Kind

Com a imagem do Docker criada e o cluster do Kind em execução, agora você pode carregar a imagem nos nós do cluster. Isso torna a imagem disponível para pods em execução dentro do seu cluster do Kind sem a necessidade de baixá-la de um registro externo.

Use o comando kind load docker-image:

# Substitua 'my-custom-app:1.0.0' pelo nome e tag da sua imagem
# Se o seu cluster tiver um nome personalizado, especifique-o com --name
kind load docker-image my-custom-app:1.0.0 --name my-dev-cluster

Se você usou o nome de cluster padrão ("kind"), pode omitir o sinalizador --name:

kind load docker-image my-custom-app:1.0.0

Este comando enviará sua imagem Docker local para cada nó do seu cluster Kind.

Etapa 6: Verificar e usar a imagem (opcional)

Após o carregamento da imagem, você pode implantar um Pod ou outra carga de trabalho no seu cluster Kind que use essa imagem. Por exemplo, você pode criar um pod.yaml simples:

apiVersion: v1
kind: Pod
metadata:
name: my-test-pod
spec:
containers:
- name: my-app-container
image: my-custom-app:1.0.0 # Use a imagem que você carregou
# Importante: Defina imagePullPolicy como IfNotPresent ou Never
# para garantir que Kind use a imagem carregada localmente.
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080 # Ajuste se o seu aplicativo usa uma porta diferente

Em seguida, aplique:

kubectl apply -f pod.yaml

Verifique se o pod está em execução e usando sua imagem:

kubectl get pods
kubectl describe p