====== Criando um Cluster k8s Local ======
Existem algumas maneiras de se instalar um cluster k8s localmente. A forma mais fácil é utilizando o próprio Docker-Desktop. Nele há a opção **Kubernetes**, onde você pode instalar uma “distro” de Cluster.
Há duas “distros” disponíveis, a [[https://kubernetes.io/docs/reference/setup-tools/kubeadm/|kubeadm]] e a [[https://kind.sigs.k8s.io/|kind (Kubernetes In Docker)]].
Opte pela **kind**:
* Mais leve
* Deploy mais rápido
* Integra com o Skaffold
===== Interagindo com o Cluster =====
O Cluster abre uma API pela qual é possível interagir com ele. Para interagir com a API, é recomendado utilizar o **kubectl**.
==== kubectl ====
O kubectl é a ferramenta fundamental para interagir com o cluster.
==== Instalando kubectl ====
Caso use WSL (recomendado) instale ''%%kubectl%%'' pelo gerenciador de pacotes da sua distro. Exemplo no Arch (btw):
sudo pacman -Sy kubectl
==== Conectando no cluster ====
Ao instalar o kind, ele gera um **contexto** para o ''%%kubectl%%'' saber “em qual endereço:porta está o cluster?”
Para ver os contextos disponíveis:
kubectl config get-contexts
No meu caso, eu já tinha um cluster k3d antigo, e o contexto selecionado era o dele:
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
docker-desktop docker-desktop docker-desktop
* k3d-cluster-dev k3d-cluster-dev admin@k3d-cluster-dev
Para selecionar o contexto correto:
kubectl config use-context docker-desktop
# Se o nome for diferente
kubectl config use-context
==== Hello k8s ====
Para testar se a conexão está funcionando:
kubectl version
Se aparecer a versão do servidor (cluster), ele conseguiu se conectar:
Client Version: v1.34.1
Kustomize Version: v5.7.1
Server Version: v1.31.1
Warning: version difference between client (1.34) and server (1.31) exceeds the supported minor version skew of +/-1
> Percebe-se que a minha versão está diferente, desinstalei o cluster e instalei a versão mais próxima disponível: v1.34.3
$ kubectl version
Client Version: v1.34.1
Kustomize Version: v5.7.1
Server Version: v1.34.3
Agora sim, tudo certo para realizar meu desenvolvimento.