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.
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 IniciarIsso 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 [*].efeitoA 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: noscheduleComo 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 nsEtapa # 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 frontendEtapa # 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 frontendO 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 frontendA 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.