Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-11-28 GMT+08:00

Manchas e tolerâncias

As tolerâncias permitem que o agendador agende pods para nós com manchas de destino. Tolerâncias trabalham com manchas de nó. Cada nó permite uma ou mais manchas. Se nenhuma tolerância for configurada para um pod, o agendador programará o pod com base nas políticas de mancha de nó para impedir que o pod seja programado para um nó inadequado.

A tabela a seguir mostra como as políticas e tolerâncias de manchas afetam a execução do pod.

Política de mancha

Nenhuma tolerância de mancha configurada

Tolerância de mancha configurada

NoExecute

  • Pods em execução no nó serão despejados imediatamente.
  • Os pods inativos não serão agendados para o nó.
  • Se a janela de tempo de tolerância tolerationSeconds não for especificada, os pods poderão ser executados nesse nó o tempo todo.
  • Se a tolerância da janela de tempo tolerationSeconds for especificada, os pods ainda serão executados no nó com manchas dentro da janela de tempo. Depois que o tempo expirar, os pods serão despejados.

PreferNoSchedule

  • Pods em execução no nó não serão despejados.
  • Os pods inativos não serão programados para o nó para a melhor extensão.

Os pods podem ser executados nesse nó o tempo todo.

NoSchedule

  • Pods em execução no nó não serão despejados.
  • Os pods inativos não serão agendados para o nó.

Os pods podem ser executados nesse nó o tempo todo.

Configurar políticas de tolerância no console

  1. Efetue logon no console do CCE.
  2. Ao criar uma carga de trabalho, clique em Toleration na área Advanced Settings.
  3. Adicione uma política de tolerância a manchas.

    Tabela 1 Parâmetros para configurar uma política de tolerância a manchas

    Parâmetro

    Descrição

    Taint key

    Chave de uma mancha de nó

    Operator

    • Equal: Exact match para a chave de mancha especificada (obrigatória) e o valor de mancha. Se o valor de mancha for deixado em branco, todos as manchas com a chave igual à chave de mancha especificada serão correspondidos.
    • Exists: matches only aos nós com a chave de mancha especificada. Neste caso, o valor de mancha não pode ser especificado. Se a chave de mancha for deixada em branco, todas as manchas serão toleradas.

    Valor de mancha

    Valor de mancha especificado se o operador for definido como Equal.

    Taint Policy

    • All: todas as políticas de mancha são correspondidas.
    • NoSchedule: apenas a mancha de NoSchedule é correspondida.
    • PreferNoSchedule: apenas a mancha de PreferNoSchedule é correspondida.
    • NoExecute: apenas a mancha de NoExecute é correspondida.

    Toleration Time Window

    tolerationSeconds, que é configurável apenas quando Taint Policy é definida como NoExecute.

    Dentro da janela de tempo de tolerância, os pods ainda são executados no nó com manchas. Depois que o tempo expirar, os pods serão despejados.

Política de tolerância padrão

O Kubernetes adiciona automaticamente tolerâncias para as manchas node.kubernetes.io/not-ready e node.kubernetes.io/unreachable aos pods, e define a janela de tempo de tolerância (tolerationSeconds) para 300s. Essas políticas de tolerância padrão indicam que, quando um dos pods anteriores é adicionado ao nó em que os pods estão sendo executados, os pods ainda podem ser executados no nó por 5 minutos.

Quando um pod de DaemonSet é criado, nenhuma janela de tempo de tolerância será especificada para as tolerâncias adicionadas automaticamente para as manchas anteriores. Quando uma das manchas anteriores é adicionada ao nó onde o pod de DaemonSet está sendo executado, o pod de DaemonSet nunca será despejado.

tolerations:
  - key: node.kubernetes.io/not-ready
    operator: Exists
    effect: NoExecute
    tolerationSeconds: 300
  - key: node.kubernetes.io/unreachable
    operator: Exists
    effect: NoExecute
    tolerationSeconds: 300