Ter um Kubernetes para utilizar em tempo de desenvolvimento é útil, mas tem um custo considerável manter um cluster na nuvem e para evitar tal custo podemos recorrer ao K3D. O K3D é uma ferramenta que cria um “cluster” K3S usando containers Docker, o K3S por sua vez é uma implementação Kubernetes certificada que pode ser utilizada até mesmo em produção, mas por favor não usem o K3D em produção é apenas para testes pois o mesmo apenas simula um cluster e no fim das contas tudo estará rodando em uma só máquina.
Instale o K3D
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
Iniciando um cluster
É relativamente fácil iniciar um cluster com o K3D com o comando:
k3d cluster create NAME
Onde NAME deve ser substituído pelo nome do cluster a ser criado.
Por padrão o K3D utiliza o traefik como Ingress Gateway, mas você pode precisar de outro Ingress Gateway para isso podemos desabilitar o traefik com o parâmetro --k3s-arg "--disable=traefik@server:0"
nesse caso será necessário especificar as portas que serão utilizadas pelo Ingress Gateway substituto com os parâmetro --port atenção valor desse parâmetro tem um formato peculiar [HOST:][HOSTPORT:]CONTAINERPORT[/PROTOCOL][@NODEFILTER]
, você também pode usar parâmetros para especificar a quantidade de nós no cluster bem como a quantidade de memória de cada nó com os parâmetros --servers, --servers-memory,--agents e --agents-memory mas lembre-se que sua máquina precisa comportar os recursos requeridos.
Segue um exemplo utilizando tudo isso:
k3d cluster create local-cluster --servers 1 --agents 2 --api-port 6443 --k3s-arg "--disable=traefik@server:0" --port 8000:80@loadbalancer --port 8443:443@loadbalancer --servers-memory=8G --agents-memory=8G