Examinar Nós com Kubectl

KubernetesBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o kubectl para examinar os nós no seu cluster Kubernetes. Você começará com informações básicas sobre os nós e avançará para tópicos mais avançados, como taints (contaminações) e tolerations (tolerâncias). Este laboratório assume que você já tem um cluster Kubernetes configurado e o kubectl instalado.

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 86%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Iniciar o Cluster Minikube

Antes de criar recursos, você precisa de um cluster Kubernetes em execução. Minikube é um ambiente Kubernetes leve que roda em sua máquina local.

  1. Navegue para o seu diretório de trabalho:

    Abra o terminal e navegue até a pasta do projeto padrão:

    cd /home/labex/project
  2. Iniciar Minikube:

    Inicie o Minikube para inicializar um cluster Kubernetes:

    minikube start
    • Este comando configura um cluster Kubernetes de nó único em sua máquina local.
    • O Minikube pode levar alguns minutos para iniciar, dependendo do desempenho do seu sistema.
  3. Verifique se o Minikube está em execução:

    Verifique o status do cluster Minikube:

    minikube status
    • Procure por componentes como kubelet e apiserver listados como Running (Em execução).
    • Se o cluster não estiver em execução, execute novamente minikube start.

Se você encontrar problemas ao iniciar o Minikube. Use minikube delete para redefinir o ambiente, se necessário.

Informações Básicas do Nó

A primeira coisa que você fará é obter informações básicas sobre os nós no seu cluster.

  1. Para visualizar uma lista de nós no seu cluster, execute o seguinte comando:

    kubectl get nodes

    Isso exibirá uma lista de todos os nós no seu cluster, juntamente com seus status.

  2. Para obter informações mais detalhadas sobre um nó específico, execute o seguinte comando:

    kubectl describe node minikube

    Substitua minikube pelo nome do nó que você deseja examinar. Isso fornecerá informações detalhadas sobre o status, capacidade e uso do nó.

Labels e Anotações

Labels (rótulos) e annotations (anotações) podem ser usados para adicionar metadados aos nós no seu cluster. Esses metadados podem ser usados para selecionar nós para tarefas específicas ou para filtrar nós com base em certos critérios.

  1. Para visualizar os labels e annotations de um nó específico, execute o seguinte comando:

    kubectl get node minikube --show-labels=true

    Isso exibirá os labels e annotations para o nó especificado.

  2. Para adicionar um label a um nó, execute o seguinte comando:

    kubectl label node minikube org=labex
  3. Para adicionar uma annotation a um nó, execute o seguinte comando:

    kubectl annotate node minikube environment=production
  4. Use o seguinte comando para verificar os labels no nó:

    kubectl get nodes --show-labels

    Isso exibirá uma lista de todos os nós no cluster, juntamente com seus labels. Os nós podem ser rotulados para ajudar a identificar seu propósito ou características.

Taints e Tolerâncias

Taints (contaminações) e tolerations (tolerâncias) podem ser usados para controlar quais pods podem ser agendados em quais nós no seu cluster. Um taint é um label especial que marca um nó como inadequado para certos tipos de pods, e uma toleration é uma configuração que permite que um pod seja agendado em um nó com um taint correspondente.

  1. Para visualizar os taints de um nó específico, execute o seguinte comando:

    kubectl describe node minikube | grep Taints

    Isso exibirá os taints para o nó especificado.

  2. Para adicionar um taint a um nó, execute o seguinte comando:

    kubectl taint node minikube app=backend:NoSchedule
  3. Crie uma toleration para um pod, execute o seguinte comando:

    cat << EOF | kubectl apply -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
        - name: my-container
          image: nginx
      tolerations:
        - key: app
          operator: Exists
          effect: NoSchedule
    EOF

    Este pod usa app como o nome do taint e NoSchedule como o efeito que o taint deve ter.

Visualizar Capacidade do Nó e Uso de Recursos

Para visualizar os recursos disponíveis em um nó, use o seguinte comando:

kubectl describe node minikube | grep -A 8 "Allocated resources"

Substitua minikube pelo nome do nó que você deseja examinar.

Isso fornecerá informações detalhadas sobre o nó, incluindo sua capacidade e o uso atual de recursos.

Visualizar Eventos do Nó

No Kubernetes, você pode usar o seguinte comando para filtrar todos os eventos relacionados a um nó específico:

kubectl get events --field-selector involvedObject.kind=Node,involvedObject.name=minikube

Substitua minikube pelo nome do nó que você deseja consultar. Este comando listará todos os eventos relacionados a esse nó, como reinícios, atualizações e assim por diante.

Cordon e Uncordon de um Nó

Em alguns casos, pode ser necessário retirar um nó da rotação para manutenção ou outros motivos. O Kubernetes fornece uma maneira de marcar um nó como não agendável (unschedulable) para que nenhum novo pod seja agendado nele. Isso é chamado de "cordon" (cordonar).

Para cordonar um nó, use o seguinte comando:

kubectl cordon minikube

Substitua minikube pelo nome do nó que você deseja cordonar.

Em seguida, use o seguinte comando para verificar o status do nó:

kubectl get node

Para uncordonar um nó e permitir que novos pods sejam agendados nele, use o seguinte comando:

kubectl uncordon minikube

Substitua minikube pelo nome do nó que você deseja uncordonar.

Observe que cordonar um nó não move automaticamente nenhum pod existente do nó. Você deve excluir ou mover manualmente os pods antes de cordonar o nó para evitar qualquer interrupção.

Parabéns, você aprendeu como cordonar e uncordonar um nó no Kubernetes.

Resumo

Neste laboratório, você aprendeu como examinar nós em um cluster Kubernetes usando kubectl. Você aprendeu como listar nós, verificar seu status, visualizar seus rótulos e inspecionar sua capacidade e uso de recursos. Você também aprendeu como drenar (drain) e uncordonar nós para manutenção e atualizações.