Informações do Cluster Kubernetes

KubernetesBeginner
Pratique Agora

Introdução

Kubernetes é uma plataforma de orquestração de contêineres que automatiza a implantação, escalabilidade e gerenciamento de aplicações em contêineres. Neste laboratório, você explorará como usar o comando cluster-info para obter informações sobre seu cluster Kubernetes. Ao final do laboratório, você entenderá como iniciar um cluster Kubernetes, recuperar informações essenciais do cluster, inspecionar componentes internos e testar a conectividade do servidor API.

Este laboratório é projetado para iniciantes e nenhuma experiência prévia com Kubernetes é necessária.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 95%. Recebeu uma taxa de avaliações positivas de 96% dos estudantes.

Iniciar o Cluster Kubernetes

Um cluster Kubernetes requer um ambiente em execução. Neste laboratório, usaremos o Minikube, uma ferramenta que permite executar um cluster Kubernetes localmente. Siga estes passos:

  1. Abra seu terminal e certifique-se de estar no diretório /home/labex/project:

    cd ~/project
  2. Inicie o cluster Minikube:

    minikube start
    • Minikube cria um cluster Kubernetes de nó único.
    • Este processo pode levar alguns minutos, dependendo do seu sistema. Durante a inicialização, vários componentes Kubernetes serão configurados.
    Inicialização do cluster Minikube

Recuperar Informações Básicas do Cluster

Depois que o Minikube estiver em execução, use o comando kubectl cluster-info para visualizar informações sobre o cluster. Execute o seguinte comando:

kubectl cluster-info
  • A URL do servidor API (API server) é o ponto de extremidade principal para interagir com seu cluster.
  • O CoreDNS lida com a descoberta de serviços e a resolução de DNS dentro do cluster.

Exemplo de Saída:

Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  • https://192.168.49.2:8443 é a URL do servidor API Kubernetes. É para lá que todos os comandos kubectl são enviados.
  • O serviço CoreDNS ajuda o Kubernetes a resolver nomes de domínio para serviços e pods.

Inspecionar Componentes do Cluster em Detalhe

Para obter uma compreensão mais profunda do cluster e seus componentes internos, use:

kubectl cluster-info dump

Este comando fornece informações detalhadas sobre os componentes-chave:

  • etcd: Um armazenamento de chave-valor (key-value store) para todos os dados do cluster.
  • kube-apiserver: O ponto de entrada para as requisições da API Kubernetes.
  • kube-scheduler: Atribui cargas de trabalho (pods) aos nós disponíveis.
  • kube-controller-manager: Mantém o estado do cluster (por exemplo, garante que o número desejado de réplicas de pod esteja em execução).

Exemplo de Saída:

Este comando gera uma saída detalhada que detalha a configuração e o status dos componentes do sistema Kubernetes. Você pode redirecionar a saída para um arquivo para facilitar a análise:

kubectl cluster-info dump > cluster-details.txt

Isso salvará a saída em cluster-details.txt no seu diretório atual.

Visualizar Nós no Cluster

Nós são as máquinas que executam suas cargas de trabalho no Kubernetes. Para listar os nós em seu cluster, execute:

kubectl get nodes
  • O nome do nó (por exemplo, minikube) identifica a máquina.
  • O status (Ready) indica que o nó está íntegro e pode executar cargas de trabalho.
  • Em um cluster Minikube, o nó atua como o plano de controle (control plane) e o nó de trabalho (worker node).

Exemplo de Saída:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   5m    v1.20.0

Testar Acesso ao Servidor da API

O servidor da API é um componente crítico do plano de controle (control plane) do Kubernetes. Você pode testar sua acessibilidade executando:

curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
  • Este comando recupera a URL do servidor da API e realiza uma requisição simples para ele.
  • A flag --insecure ignora a verificação do certificado SSL, o que é aceitável nesta configuração local.

Exemplo de Saída:

Se o servidor da API estiver acessível, a resposta deve ser semelhante a esta:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {},
  "code": 403
}

Esta resposta confirma que o servidor da API está em execução, mas nega o acesso devido à falta de autenticação, o que é esperado.

Resumo

Neste laboratório, você aprendeu a:

  • Iniciar um cluster Kubernetes com Minikube.
  • Usar kubectl cluster-info para recuperar detalhes do cluster.
  • Inspecionar componentes do cluster em profundidade com kubectl cluster-info dump.
  • Listar nós no cluster usando kubectl get nodes.
  • Testar a conectividade do servidor da API com um comando curl.

Esta experiência prática forneceu uma base para entender e explorar clusters Kubernetes. Estes comandos são essenciais para depurar e gerenciar ambientes Kubernetes.

Próximos passos:

  • Explorar pods e cargas de trabalho no Kubernetes.
  • Aprender como criar serviços para expor aplicações.
  • Experimentar o dimensionamento de cargas de trabalho em um cluster.

Continue praticando e bons estudos!