====== 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.