Acesso ao cluster

KubernetesBeginner
Pratique Agora

Introdução

Kubernetes é um sistema de orquestração de contêineres. Ele gerencia como os aplicativos conteinerizados são agendados, executados, expostos e recuperados em um cluster.

Para interagir com um cluster Kubernetes, normalmente você usa o kubectl. Antes de implantar aplicativos, é necessário ter um cluster em execução e uma configuração funcional do cliente apontando corretamente para ele.

Neste laboratório, você seguirá as etapas fundamentais para configurar seu acesso a um cluster Kubernetes. Você usará o Minikube, uma ferramenta que executa localmente um cluster Kubernetes de nó único, ideal para aprendizado e desenvolvimento.

Você aprenderá a:

  1. Iniciar um cluster Kubernetes local.
  2. Verificar o contexto do kubectl para garantir que você está direcionando os comandos ao cluster correto.
  3. Obter informações essenciais sobre o cluster.
  4. Listar os nós do cluster para verificar o status deles.

Iniciar o cluster

Nesta etapa, você iniciará um cluster Kubernetes local usando o Minikube. O Minikube cria uma máquina virtual ou um contêiner na sua máquina local e implanta um cluster simples dentro dele. Assim, você pode praticar comandos do Kubernetes sem precisar de um provedor de nuvem.

Neste momento, é importante distinguir claramente três conceitos. Um cluster é todo o ambiente Kubernetes. Um nó é uma máquina dentro desse cluster. O control plane é a parte que aceita solicitações da API e decide o que deve acontecer. O Minikube reúne esses componentes em um ambiente local de aprendizado para que você possa se concentrar nos conceitos do Kubernetes antes de lidar com a infraestrutura de nuvem.

Primeiro, verifique se você está no diretório do projeto:

cd ~/project

Agora, inicie o cluster do Minikube. Especificaremos o driver docker para executar o cluster dentro de um contêiner Docker, que é compatível com este ambiente de laboratório.

minikube start --driver=docker

Esse processo pode levar alguns minutos, pois ele baixa as imagens necessárias do Kubernetes e inicia o control plane. A saída exibirá informações indicando que o Minikube está baixando imagens, iniciando o contêiner e configurando o cluster.

Quando o comando terminar, verifique o status do Minikube para garantir que ele está funcionando corretamente:

minikube status

A saída deverá indicar que host, kubelet e apiserver estão com o status "Running".

Verificar o contexto

Nesta etapa, você verificará se a ferramenta de linha de comando kubectl está configurada para se comunicar com o novo cluster do Minikube.

O Kubernetes usa um arquivo de configuração, geralmente localizado em ~/.kube/config, para armazenar as informações de acesso ao cluster. Esse arquivo pode conter detalhes de vários clusters. O "contexto" determina para qual cluster o kubectl envia os comandos. Quando você iniciou o Minikube na etapa anterior, ele atualizou automaticamente sua configuração e definiu o contexto como minikube.

Esse conceito é importante porque o kubectl é apenas um cliente. Ele não "contém" o cluster. O kubectl lê os detalhes de conexão, os certificados e o contexto selecionado atualmente e, em seguida, envia solicitações ao servidor da API do Kubernetes. No trabalho real, é comum alternar entre clusters de desenvolvimento, homologação e produção. Por isso, verificar o contexto atual é um hábito de segurança, não uma formalidade.

Para verificar o contexto atual, execute o comando a seguir:

kubectl config current-context

A saída deverá ser:

minikube

Se quiser ver todos os detalhes da configuração, incluindo a URL do servidor do cluster e os certificados do usuário, ocultados com segurança, consulte a configuração:

kubectl config view

Isso confirma que todos os comandos kubectl executados posteriormente serão direcionados ao seu cluster local do Minikube.

Verificar as informações do cluster

Nesta etapa, você obterá informações básicas sobre o cluster para verificar a conectividade e descobrir onde o control plane do Kubernetes está em execução.

O comando cluster-info é uma forma simples de verificar se o kubectl consegue se comunicar corretamente com o servidor da API.

O Kubernetes é um sistema orientado por API. Quase todas as ações, desde criar um Pod até redimensionar um Deployment, tornam-se uma solicitação à API do control plane. Por isso, “meu cliente consegue alcançar o servidor da API?” é uma das primeiras verificações de integridade em qualquer investigação de um cluster.

Execute o comando a seguir:

kubectl cluster-info

Você deverá ver uma saída semelhante a esta:

Kubernetes control plane is running at https://127.0.0.1:32769
CoreDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Os endereços IP e as portas podem variar, mas o ponto principal é a mensagem "Kubernetes control plane is running". Isso confirma que o cliente (kubectl) está conectado corretamente ao servidor, ou seja, ao cluster.

Listar os nós

Nesta etapa, você examinará os nós do cluster. Um nó é uma máquina de trabalho, virtual ou física, no Kubernetes. Como estamos usando o Minikube, esperamos ver um único nó que atua tanto como control plane quanto como worker.

Em clusters maiores, essas funções geralmente são separadas. Os nós do control plane se concentram na orquestração, enquanto os nós worker executam as cargas de trabalho dos aplicativos. O Minikube reúne essas funções em um único nó para manter o ambiente de aprendizado simples, mas a saída do comando ainda apresenta os mesmos conceitos que você verá em produção.

Para listar todos os nós do cluster, use o comando get nodes:

kubectl get nodes

Você verá uma saída semelhante à seguinte:

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   5m20s   v1.26.1

Veja o significado de cada coluna:

  • NAME: o nome do nó, neste caso, minikube.
  • STATUS: o status deverá ser Ready, indicando que o nó está íntegro e pronto para aceitar cargas de trabalho.
  • ROLES: mostra a função do nó, por exemplo, control-plane.
  • AGE: há quanto tempo o nó está em execução.
  • VERSION: a versão do Kubernetes instalada no nó.

Se o status for NotReady, isso geralmente significa que o nó ainda está iniciando ou que existe um problema de rede. Como o status do seu nó é Ready, o cluster está totalmente operacional.

Resumo

Neste laboratório, você configurou com sucesso o ambiente para acessar um cluster Kubernetes. Você:

  1. Iniciou um cluster Kubernetes local usando o Minikube.
  2. Verificou que o contexto do kubectl está configurado corretamente para direcionar os comandos ao cluster local.
  3. Obteve informações do cluster para confirmar a conectividade com o servidor da API.
  4. Listou os nós para garantir que a infraestrutura do cluster está pronta e saudável.

Essas são as etapas fundamentais necessárias antes de implantar aplicativos no Kubernetes. Agora você tem um ambiente local funcional para continuar sua jornada de aprendizado sobre Kubernetes.