Como usar a mancha em Kubernetes

Como usar a mancha em Kubernetes
Kubernetes é o melhor ambiente de contêiner que usa clusters, nós e vagens para executar aplicativos. Vagens, nós e aglomerados estão interconectados e trabalham de mãos dadas. Um cluster tem um ou mais nós em que uma ou mais vagens são agendadas e esses pods são usados ​​para executar aplicativos. Na administração de Kubernetes, o agendamento de pod é um aspecto muito importante, pois desempenha um papel essencial na redução de custos, melhoria de desempenho e ajuda a se agrupar no gerenciamento de escala. As contas ajudam o equilíbrio programado a carga de trabalho nos nós e decidem qual pod a ser agendada no nó. Este artigo demonstrará o que é uma mancha e como ela é definida para um nó enquanto discutia como ele pode ser usado em Kubernetes.

O que é mancha?

A combinação de vagens, nós e clusters trabalha juntos. As vagens são atraídas para os nós pela propriedade de afinidade do nó, enquanto as contas restringem as vagens a serem agendadas nos nós. Toleração e contas trabalham juntas para garantir que nenhuma vagem seja agendada no nó errado. Essas propriedades garantem que os pods estejam agendados no nó correto e também gerenciem a carga de trabalho de um nó distribuindo uma carga de trabalho igual em todos os nós no cluster. As manchas são definidas para o nó usando a especificação do nó, enquanto os pods usam a tolerância da especificação de pod.

Taints são as restrições que permitem um nó repelir as vagens que estão sendo agendadas no nó. Por outro lado, a tolerância funciona contra as contas e permite que as vagens sejam agendadas no nó, mesmo que tenham manchas definidas. Pode haver mais de uma mancha definida para as vagens para garantir que os pods não sejam agendados, a menos que possam tolerar a mancha definida. Aqui, estamos demonstrando como usar as manchas nas vagens de Kubernetes com a ajuda de um exemplo simples, curto e fácil.

Pré -requisitos

Verifique se você tem as seguintes ferramentas instaladas no seu sistema antes de continuar com este guia. Com essas ferramentas básicas, você não poderá usar as contas nos nós do Kubernetes.

  • Ubuntu 20.02 ou qualquer outra versão mais recente
  • Ferramenta de linha de comando kubectl
  • Cluster de Kubernetes
  • Cluster Minikube

Verifique se essas ferramentas estão instaladas e configuradas corretamente em seu sistema para que você não tenha problemas para usar as contas nos nós do Kubernetes. Supondo que você tenha seu sistema pronto com todas essas ferramentas instaladas, estamos mudando para a próxima seção.

Como usar as contas nos nós do Kubernetes?

Aqui, apresentaremos um cenário simples para ajudá -lo a aprender a usar uma mancha em um nó Kubernetes. Deixe-nos começar!

Etapa 1: Inicie o cluster Minikube

Primeiro, inicie o cluster Minikube para que você possa usar os comandos Kubectl e executar seu aplicativo. O cluster Minikube permite implantar seus nós, pods e até agrupamentos no ambiente Kubernetes. Portanto, é essencial manter o minikube no modo ativo usando o seguinte comando:

kalsoom@kalsoom-virtualbox> Minikube Iniciar

Isso ativará o cluster Minikube e tornará o ambiente Kubernetes pronto para usar as manchas no nó.

Etapa 2: Obtenha a lista de nós

Como discutimos acima, o ambiente Kubernetes é baseado em nós, vagens e clusters. As vagens estão agendadas nos nós e devemos definir a mancha para esse nó para impedir que as vagens sejam agendadas nesse nó. Então, aqui estamos exibindo a lista de nós para verificar qual nó já tem uma mancha definida para ela pela instalação padrão de Kubernetes. Além disso, usaremos o seguinte comando:

kalsoom@kalsoom-virtualbox> kubectl get nós -o = colunas personalizadas = nodename:.Metadados.Nome, Taintkey:.espec.Taints [*].chave, TaintValue:.espec.Taints [*].Valor, Tainteffect:.espec.Taints [*].efeito

A partir da saída acima, podemos notar que nenhuma vagem é contaminada pela instalação padrão do Kubernetes para que possamos manchar esse nó.

Etapa 3: mancando o nó

O nó pode ser contaminado usando o seguinte comando:

kalsoom@kalsoom-virtualbox> kubectl taint lindes minikube app = frontend: noschedule

Como você pode ver na saída, o nó 'minikube' foi contaminado com o efeito 'Noschedule' com o aplicativo de nome 'nome' com um valor 'front -end'. Isso restringiu os pods a serem agendados no nó. Então, agora, nenhuma vagem pode ser colocada neste nó até que uma tolerância tenha sido definida contra a mancha.

Etapa 4: agende os pods no nó

Nesta etapa, tentaremos agendar o pod no nó que contaminamos na etapa anterior. Estamos implantando as vagens no cluster que não tem nenhuma tolerância definida na especificação de implantação de aplicativos. Veja o processo dado abaixo:

Etapa # 4A: Crie um espaço para nome

Primeiro, use o comando dado aqui para criar um espaço para nome:

kalsoom@kalsoom-virtualbox> kubectl Crie Frontend ns

Etapa # 4b: Execute o arquivo nginx no espaço para nome

Agora, execute o arquivo nginx no espaço de nome que acabamos de criar usando o seguinte comando:

kalsoom@kalsoom -virtualbox> kubectl run nginx -image = nginx -namespace frontend

Etapa # 4C: Verifique o status dos pods

Agora, verifique o status dos pods para ver se eles estão agendados nos nós. Como não há tolerância definida para o cluster, a vagem não deve ser agendada em nenhum nó no cluster. Vamos verificar o status das vagens com o comando abaixo:

kalsoom@kalsoom -virtualbox> kubectl get pods -n frontend

O status da vagem está 'pendente', o que significa que não foi agendado em nenhum nó. Podemos confirmar se está agendado em qualquer nó no cluster ou não, verificando os eventos com o seguinte comando:

kalsoom@kalsoom -virtualbox> kubectl get events -n frontend

A partir da saída, você pode ver que nenhum nó está disponível para os pods serem agendados porque não há tolerância definida para os nós.

Conclusão

Aprendemos a usar as contas nos nós Kubernetes. Exploramos o que é uma mancha e que função ela desempenha em um ambiente de Kubernetes. Aprendemos neste artigo que a tolerância e as contas andam de mãos dadas. As contas são definidas para os nós na especificação do nó, enquanto a tolerância é definida para os pods na especificação de pods. As contas restringem as vagens a serem agendadas no nó enquanto a tolerância funciona contra a mancha e permite que as vagens sejam agendadas nos nós.