Comando Kubernetes Taint

KubernetesBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o comando kubectl taint, que é uma ferramenta poderosa no Kubernetes para adicionar, modificar e remover taints em nós. Taints são usados para indicar que um nó tem certas restrições ou requisitos, e isso pode ajudar a controlar o agendamento de pods em um cluster Kubernetes.

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 100%. 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. Inicie o 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.

Explorar o Comando kubectl taint

O comando kubectl taint é usado para adicionar, modificar ou remover taints em nós Kubernetes. Taints são pares chave-valor com efeitos que influenciam o agendamento de pods, restringindo quais pods podem ser colocados em nós específicos.

Execute o seguinte comando para visualizar as opções disponíveis para kubectl taint:

kubectl taint -h

Você verá a seguinte saída:

Update the taints on one or more nodes.

  *  A taint consists of a key, value, and effect. As an argument here, it is expressed as key=value:effect.
  *  The key must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to
  253 characters.
  *  Optionally, the key can begin with a DNS subdomain prefix and a single '/', like example.com/my-app.
  *  The value is optional. If given, it must begin with a letter or number, and may contain letters, numbers, hyphens,
  dots, and underscores, up to 63 characters.
  *  The effect must be NoSchedule, PreferNoSchedule or NoExecute.
  *  Currently taint can only apply to node.

Examples:
  ## Update node 'foo' with a taint with key 'dedicated' and value 'special-user' and effect 'NoSchedule'
  ## If a taint with that key and effect already exists, its value is replaced as specified
  kubectl taint nodes foo dedicated=special-user:NoSchedule

  ## Remove from node 'foo' the taint with key 'dedicated' and effect 'NoSchedule' if one exists
  kubectl taint nodes foo dedicated:NoSchedule-

  ## Remove from node 'foo' all the taints with key 'dedicated'
  kubectl taint nodes foo dedicated-

  ## Add a taint with key 'dedicated' on nodes having label mylabel=X
  kubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule

  ## Add to node 'foo' a taint with key 'bar' and no value
  kubectl taint nodes foo bar:NoSchedule

Adicionar um Taint a um Nó

Nesta etapa, você aprenderá como adicionar um taint a um nó usando o comando kubectl taint. Taints são usados para marcar um nó com certas restrições ou requisitos, o que pode afetar o agendamento de pods nesse nó.

Para adicionar um taint a um nó, você pode usar o seguinte comando:

kubectl taint nodes minikube app=prod:NoSchedule

Isso adicionará um taint com a chave app e o valor prod a um nó chamado minikube, com o efeito NoSchedule. Isso impedirá que pods sejam agendados no nó, a menos que eles tolerem o taint.

Em seguida, você pode visualizar os taints que estão atualmente aplicados aos nós em seu cluster Kubernetes usando o comando kubectl describe node.

Para visualizar os taints em um nó, você pode usar o seguinte comando:

kubectl describe node minikube

Os taints aplicados ao nó serão listados na seção "Taints" na saída. Você pode usar esta informação para verificar se o taint que você adicionou na etapa anterior foi aplicado ao nó.

Remover um Taint de um Nó

Nesta etapa, você aprenderá como remover um taint de um nó usando o comando kubectl taint. Isso pode ser útil se você precisar atualizar as restrições ou requisitos de um nó, ou se quiser permitir que pods sejam agendados em um nó previamente tainted.

Para remover um taint de um nó, você pode usar o seguinte comando:

kubectl taint nodes minikube app-

Ele removerá o taint app=prod:NoSchedule do nó minikube. Isso permitirá que pods sejam agendados no nó sem precisar tolerar o taint aplicado anteriormente.

Modificar um Taint em um Nó

Nesta etapa, você aprenderá como modificar um taint em um nó usando o comando kubectl taint. Isso pode ser útil se você precisar atualizar as restrições ou requisitos de um nó, mas quiser manter a chave e o efeito do taint existentes.

  1. Adicione um novo taint com o seguinte conteúdo:
kubectl taint nodes minikube app=uat:NoSchedule
  1. Use a sobreposição (overwrite) para forçar as atualizações
kubectl taint nodes minikube app=dev:NoSchedule --overwrite=true

Isso atualizará o valor do taint app de prod para dev no nó minikube. Isso atualizará o taint no nó, mantendo a mesma chave e efeito do taint.

Resumo

Neste laboratório, você aprendeu como usar o comando kubectl taint no Kubernetes. Você começou adicionando um taint a um nó usando o comando kubectl taint com uma chave, valor e efeito específicos. Em seguida, você aprendeu como visualizar os taints aplicados a um nó usando o comando kubectl describe node.