Introdução ao Minikube
O Minikube é uma ferramenta que facilita a execução do Kubernetes localmente. Ele permite criar um cluster de um único nó dentro de uma máquina virtual no seu computador, ideal para testes e desenvolvimento diário com Kubernetes.
Links úteis para o Minikube:
- Site oficial: https://minikube.sigs.k8s.io/
- Documentação: https://minikube.sigs.k8s.io/docs/
- Início rápido: https://minnikube.sigs.k8s.io/docs/start/
- Instalação no Linux: https://minikube.sigs.k8s.io/docs/start/linux/
- Repositório GitHub: https://github.com/kubernetes/minikube
Nota importante: O Minikube é desenvolvido pela comunidade open source do Kubernetes, mas é limitado a clusters locais com um único nó, o que dificulta a simulação de ambientes de produção com múltiplos nós. A partir da versão 1.5.0, o Minikube utiliza automaticamente o melhor driver disponível, como VirtualBox, Hyper-V, KVM ou Docker.
Preparação do Ambiente
Antes de começar, certifique-se de que o Docker está instalado no seu sistema Linux. Exemplo de verificação:
uname -a
cat /etc/system-release
docker version
Saída esperada pode indicar CentOS Linux release 7.8.2003 e Docker versão 19.03.11.
Cnofiguração de Permissões de Usuário
Para evitar problemas com permissões, adicione seu usuário ao grupo Docker e conceda privilégios sudo sem senha. Execute os seguintes comandos como root:
visudo # Edite o arquivo /etc/sudoers, adicionando a linha: "seu_usuario ALL=(ALL) NOPASSWD: ALL"
usermod -aG docker seu_usuario && newgrp docker
Substitua "seu_usuario" pelo nome do seu usuário real.
Instalação do kubectl
O kubectl é a ferramenta de linha de comando para interagir com clusters Kubernetes. Siga estas etapas para instalá-lo:
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version --client
Para obter ajuda com o kubectl, use comandos como kubectl --help ou kubectl get --help.
Instalação do Minikube
Para instalar o Minikube, execute:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube version
Isso deve retornar a versão do Minikube, como v1.14.0.
Alternativa via GitHub
Se houver dificuldades em acessar o Google, baixe os binários do GitHub:
Para o kubectl:
# Acesse https://github.com/kubernetes/kubernetes/releases e baixe o binário adequado
# Após download, extraia e mova para /usr/local/bin
Para o Minikube:
curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.14.0/minikube-linux-arm64
chmod +x minikube
sudo mv minikube /usr/local/bin/
Alternativamente, use o mirror da Alibaba Cloud:
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/
Iniciando o Minikube
Para iniciar o cluster Minikube:
minikube start
Na primeira execução, ele baixará imagens base e configurará o Kubernetes. Exemplo de saída:
* minikube v1.14.0 on Linux (docker/amd64)
* Automatically selected the docker driver
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Creating docker container (CPUs=2, Memory=2200MB) ...
* Preparing Kubernetes v1.19.2 on Docker 19.03.8 ...
* Verifying Kubernetes components...
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" by default
Você pode personalizar a inicialização com parâmetros como:
minikube start --cpus=2 --memory=2048 --kubernetes-version=v1.19.3
Outros parâmetros úteis incluem --driver, --image-mirror-country cn, e --registry-mirror.
Verifique o status do cluster:
kubectl get nodes
Isso mostrará o nó Minikube pronto para uso.
Para reiniciar o Minikube existente:
minikube start
Se houver instabilidade, pare e delete o cluster antes de recomeçar:
minikube stop
minikube delete
minikube start
Exemplo de Implantação
Após iniciar o Minikube, você pode implantar uma aplicação simples. Exemplo com nginx:
kubectl create deployment demo-app --image=nginx:latest
kubectl expose deployment demo-app --type=NodePort --port=8080
kubectl get all
Isso criará um deployment e exporá o serviço em uma porta NodePort.
Comandos Úteis do Minikube
Consulte a ajuda com minikube --help. Alguns comandos essenciais:
minikube status # Verifica o estado do cluster
minikube ip # Obtém o endereço IP do Minikube
minikube ssh # Acessa o terminal do nó via SSH
minikube dashboard # Abre o dashboard do Kubernetes no navegador
minikube stop # Para o cluster
minikube delete # Remove o cluster completamente
Para listar addons disponíveis:
minikube addons list
Exemplo de saída mostrando addons como dashboard e storage-provisioner.
Solução de Problemas Comuns
Falha ao iniciar com permissões de root: Não execute o Minikube como root. Use um usuário comum e adicione-o ao grupo Docker.
Falha ao abrir o dashboard: Certifique-se de estar em um ambiente com interface gráfica ou utilize minikube dashboard --url para obter o URL e acessá-lo manualmente.