Como executar um cluster local do Kubernetes com o Minikube?
Minikube é uma distribuição mínima do Kubernetes projetada para uso em desenvolvimento local. Ele foi desenvolvido como parte do projeto Kubernetes e inclui implementações de todas as principais funções do cluster.
Minikube é executado em hosts Linux, Mac e Windows. Ele pode usar contêineres ou um ambiente de máquina virtual para executar seu cluster e suas cargas de trabalho. Aqui estão todos os tempos de execução suportados:
- Janela de encaixe
- Podman
- KVM
- Hyper-V
- Hyperkit
- paralelos
- caixa virtual
- VMware
Antes de continuar com este guia, certifique-se de ter uma dessas tecnologias instaladas. O processo de instalação do Minikube detectará automaticamente os tempos de execução disponíveis e aplicará a configuração apropriada. Mostraremos como concluir a implantação e começar a usar o Minikube.
Instalando o minicubo
Neste guia, vamos nos concentrar em sistemas Linux x86. Se você estiver usando Windows, Mac ou outra plataforma de CPU, consulte a documentação do Minikube para obter informações de configuração mais detalhadas. Após o procedimento de instalação inicial, o uso básico do Minikube é idêntico em todos os sistemas suportados.
Os usuários do Linux podem escolher entre um download direto do binário ou um pacote Debian/RPM. Neste exemplo, usaremos um download binário.
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
O Minikube agora estará instalado e pronto para uso.
Iniciando um cluster do Kubernetes
Inicie seu cluster Minikube com o minikube start
comando:
$ minikube start
minikube v1.25.2 no Ubuntu 20.04
Selecionou automaticamente o driver docker. Outras opções: kvm2, ssh
Iniciando o minikube do nó do plano de controle no minikube do cluster
puxando a imagem base. ..
Downloading Kubernetes v1.23.3 preload. ..
O Minikube baixará e executará automaticamente a versão mais recente do Kubernetes. Este processo pode demorar vários minutos. A saída do comando indicará o progresso e exibirá as ações que o Minikube está realizando. No exemplo acima, você pode ver que o driver Docker foi escolhido para hospedar seu cluster. Consulte a documentação do driver Minikube se sua plataforma de contêiner ou pilha de virtualização não for detectada automaticamente.
Usando seu cluster com Kubectl
O Minikube modifica seu ambiente para que você possa se conectar ao cluster usando a instalação existente do Kubectl. Ele adicionará minikube
um contexto ao seu arquivo KUBECONFIG
direcionado ao seu cluster Minikube.
O Minikube também inclui uma versão empacotada do Kubectl que você pode acessar com um minikube kubectl
comando. Isso é útil se você ainda não tiver o Kubectl instalado ou se o binário existente for diferente da versão do cluster Minikube.
# Uses the Kubectl version that's bundled with Minikube
$ minikube kubectl get pods
Para o restante deste tutorial, mostraremos um kubectl
comando simples e presumiremos que ele seja direcionado ao seu cluster Minikube. Você pode configurar um alias de shell para usar o Kubectl relacionado ao Minikube sem um prefixo a minikube
cada vez:
$ alias kubectl="minikube kubectl"
Agora que o Minikube live e o Kubectl estão disponíveis, você pode adicionar aplicativos ao seu cluster Kubernetes:
$ kubectl create deployment nginx --image=nginx:latest
deployment.apps/nginx criado
$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed
O comando minikube service
fornece a URL pública do serviço:
$ minikube service nginx --url
http://192.168.49.2:31599
Cole a URL em seu navegador da Web (ou execute o comando sem um --url
sinalizador) para visualizar seu serviço.
Acessando o painel de controle do Kubernetes
O Minikube fornece o Kubernetes Dashboard como um recurso integrado opcional. Execute minikube dashboard
o comando para carregar os componentes do painel e iniciar a interface em uma nova guia do navegador.
Você pode usar o painel para gerenciar seus recursos e visualizar suas atividades. Mantenha minikube dashboard
o comando no terminal enquanto você interage com o painel de controle. Quando terminar, termine o comando com Ctrl+C.
Habilitando o Registro de Imagens
O Minikube inclui um registro de imagem como um extra opcional. Isso permite que você armazene imagens de contêiner dentro do Minikube, disponibilizando-as para implantação em seu cluster.
Primeiro habilite o complemento do registro:
$ minikube addons enable registry
Em seguida, marque sua imagem para apontar para o registro do Minikube. O registro está escutando na porta 5000 no endereço IP fornecido minikube ip
pelo comando.
$ docker tag my-image:latest $(minikube ip):5000/my-image:latest
Antes de enviar, o Docker deve ser configurado para aceitar a URL como um registro inseguro. Adicione-o a uma insecure-registries
caixa dentro do seu /etc/docker/daemon.json
arquivo para que o Docker permita o acesso HTTP.
Substitua o endereço IP pelo especificado em seu minikube ip
comando. Reinicie o Docker com o systemctl restart docker
comando.
Agora você pode enviar sua imagem para o registro do Minikube:
$ docker push $(minikube ip):5000/my-image:latest
Antes que os módulos em seu cluster possam usar essa imagem, uma etapa final deve ser concluída. O tempo de execução do contêiner Minikube também deve ser configurado para permitir acesso inseguro ao registro. Você pode habilitar isso habilitando --insecure-registry
o sinalizador de inicialização minikube start
. O endereço IP deve ser relativo ao endereço IP do cluster padrão da sua instalação do Minikube. Você pode obter isso executando kubectl get services
e olhando para o CLUSTER-IP
serviço kubernetes
. Em seguida, pare o Minikube e reinicie-o com um sinalizador adicional.
$ kubectl get service
NOME TIPO CLUSTER-IP EXTERNO-IP PORTA(S) IDADE
Kubernetes ClusterIP 10.96.0.1 <nenhum> 443/TCP 63m
$ minikube stop
$ minikube start --insecure-registry 10.96.0.1/24
Alterando a versão do Kubernetes
O Minikube usa a versão mais recente do Kubernetes disponível por padrão. Para alternar para uma versão específica, ative --kubernetes-version
o sinalizador ao iniciar o cluster:
$ minikube start --kubernetes-version=v1.23.0
Você pode executar vários clusters ao mesmo tempo, cada um com diferentes versões do Kubernetes, criando vários perfis separados. O sinalizador --profile
seleciona o perfil de destino para um comando específico.
$ minikube start --profile v1.22 --kubernetes-version=v1.22.0
$ minikube start --profile v1.23 --kubernetes-version=v1.23.0
$ minikube --profile v1.22 kubectl get pods
Como usar vários nós
O Minikube suporta vários nós virtuais. Isso permite testar como seu aplicativo é dimensionado nos nós disponíveis sem implantar novo hardware físico.
Este exemplo cria um cluster com três nós:
$ minikube start --nodes 3
Você pode verificar se vários nós estão disponíveis listando-os com Kubectl:
$ kubectl get nodes
NOME STATUS FUNÇÕES IDADE VERSÃO
minikube Ready control-plane,master 71m v1.23.3
minikube-m02 Ready <none> 71m v1.23.3
minikube-m03 Ready <none> 71m v1.23.3
Ativar acesso remoto
O Minikube não aceita tráfego de entrada por padrão. Destina-se ao uso local e não foi projetado para atender a solicitações externas. Você ainda pode habilitar o acesso remoto a cargas de trabalho em seu cluster alterando o endereço de escuta do plano de controle. Faça isso somente após uma avaliação de risco completa – sua rede estará aberta para o mundo exterior.
$ minikube start --listen-address=0.0.0.0
O encaminhamento de porta é uma solução mais segura quando você precisa abrir o acesso a um serviço específico. Use o comando Kubectl port-forward
para criar uma rota de uma porta de host para um de seus serviços:
$ kubectl port-forward service/nginx 8080:80
Agora você pode visitar localhost:8080
para acessar o serviço NGINX criado anteriormente neste tutorial. A porta 8080 em seu host é mapeada para a porta 80 do serviço.
Apagando um minicubo
Uma das vantagens do Minikube é que é fácil de desinstalar. Se você decidir que o Minikube não é para você, execute delete
o comando para remover tudo o que ele adicionou ao seu sistema:
$ minikube delete
Uma opção menos destrutiva é minikube stop
parar seu cluster, mas deixar todos os recursos intocados. Você pode reiniciar seu cluster com o minikube start
comando.
Conclusão
Minikube é uma distribuição independente do Kubernetes que usa contêineres ou virtualização para executar um cluster em sua máquina local. Ele é mantido pelo projeto Kubernetes upstream. O Minikube é uma implementação completa do Kubernetes que inclui o painel do Kubernetes, suporte de rede, armazenamento persistente e tempos de execução de contêiner intercambiáveis.
Você pode aprender mais sobre o Minikube na documentação oficial . Como alternativa, comece a usar os comandos familiares do Kubectl para gerenciar seu cluster e implantar novas cargas de trabalho. Agora você tem um ambiente Kubernetes local totalmente funcional para criar e testar seus aplicativos.
Deixe um comentário