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 |
|
|
PreferNoSchedule |
|
Os pods podem ser executados nesse nó o tempo todo. |
NoSchedule |
|
Os pods podem ser executados nesse nó o tempo todo. |
Configurar políticas de tolerância no console
- Efetue logon no console do CCE.
- Ao criar uma carga de trabalho, clique em Toleration na área Advanced Settings.
- 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