Como executar um cluster local do Kubernetes com o Minikube?

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 startcomando:

$ 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á minikubeum contexto ao seu arquivo KUBECONFIGdirecionado ao seu cluster Minikube.

O Minikube também inclui uma versão empacotada do Kubectl que você pode acessar com um minikube kubectlcomando. 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 kubectlcomando 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 minikubecada 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 servicefornece 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 --urlsinalizador) 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 dashboardo 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 dashboardo 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 ippelo 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-registriescaixa dentro do seu /etc/docker/daemon.jsonarquivo para que o Docker permita o acesso HTTP.

Substitua o endereço IP pelo especificado em seu minikube ipcomando. Reinicie o Docker com o systemctl restart dockercomando.

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-registryo 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 servicese olhando para o CLUSTER-IPserviç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-versiono 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 --profileseleciona 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-forwardpara 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:8080para 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 deleteo comando para remover tudo o que ele adicionou ao seu sistema:

$ minikube delete

Uma opção menos destrutiva é minikube stopparar seu cluster, mas deixar todos os recursos intocados. Você pode reiniciar seu cluster com o minikube startcomando.

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

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *