Skip to content

Criando Cluster K3D

Objetivo

A ideia aqui é ter um ambiente dev kubernetes com k3s, cert-manager, ingress-nginx e rancher, assim podemos simular ambientes produtivos e desenvolver manifestos, helm charts e testar ferramentas que rodam em kubernetes localmente.

Instalando o cluster

instalando o básico no mac para suportar k3s/k3d.

brew install docker docker-compose ctop k9s lens

instalando um cluster k3s com 3 servers e 2 nodes, k8s 1.34, sem traefik, uma vez que vamos instalar o rancher e ingress-nginx neste cluster para ter controle total das configuracoes.

k3d cluster create meu-cluster-k3d \
  --servers 3 \
  --agents 2 \
  --image rancher/k3s:v1.34.5-k3s1 \
  --port "80:80@loadbalancer" \
  --port "443:443@loadbalancer" \
  --api-port 6443 \
  --k3s-arg "--disable=traefik@server:*" \
  --volume "/Users/gutocarvalho/storage/projects/k3d/data:/var/lib/rancher/k3s/storage@all"

Como volume podemos criar e destruir o cluster quantas vezes quisermos.

instalando o ingress-nginx

helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace

instalando cert-manager

helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set crds.enabled=true

instalando rancher

helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --create-namespace \
  --set replicas=1 \
  --set hostname=rancher.local \
  --set bootstrapPassword=aquela-senha-marota-que-você-nao-vai-esquece \
  --set ingress.ingressClassName=nginx

coloque rancher.local no seu /etc/hosts