Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Trabalhando com Taints e Tolerations

"Tainting" de um nó Kubernetes faz com que os pods evitem ser executados nesse nó.

A menos que os pods possuam um toleration para o taint desse nó, eles serão executados em outros nós do cluster.

Taints e tolerâncias podem funcionar em conjunto com o nodeSelector campo dentro do PodSpec, o que possibilita o efeito oposto de um taint.

Usar nodeSelector dá aos pods uma afinidade por certos nós.

Ambos oferecem a possibilidade de escolher em quais nós o pod será executado.

Implementação Padrão na Pilha de Logging do Rancher

Por padrão, o Rancher aplica um taint a todos os nós Linux com cattle.io/os=linux, e não aplica taints aos nós Windows. Os pods da pilha de logging têm tolerations para esse taint, o que permite que sejam executados em nós Linux. Além disso, a maioria dos pods da pilha de logging é executada apenas em Linux e tem um nodeSelector adicionado para garantir que sejam executados em nós Linux.

Este exemplo de arquivo YAML de Pod mostra um nodeSelector sendo usado com uma tolerância:

apiVersion: v1
kind: Pod
# metadata...
spec:
  # containers...
  tolerations:
    - key: cattle.io/os
      operator: "Equal"
      value: "linux"
      effect: NoSchedule
  nodeSelector:
    kubernetes.io/os: linux

No exemplo acima, garantimos que nosso pod seja executado apenas em nós Linux, e adicionamos um toleration para o taint que temos em todos os nossos nós Linux.

Você pode fazer o mesmo com os taints existentes do Rancher, ou com os seus próprios personalizados.

Adicionando Configurações de NodeSelector e Tolerâncias para Taints Personalizados

Se você gostaria de adicionar suas próprias configurações de nodeSelector, ou se gostaria de adicionar tolerations para taints adicionais, você pode passar o seguinte para os valores do gráfico.

tolerations:
  # insert tolerations...
nodeSelector:
  # insert nodeSelector...

Esses valores adicionarão ambas as configurações aos contêineres fluentd, fluentbit e logging-operator. Essencialmente, essas são configurações globais para todos os pods na pilha de logging.

No entanto, se você gostaria de adicionar tolerâncias para apenas o contêiner fluentbit, você pode adicionar o seguinte aos valores do gráfico.

fluentbit_tolerations:
  # insert tolerations list for fluentbit containers only...