Drenagem de um nó
Cenário
Depois de ativar a função de drenagem de nó no console, o sistema define o nó como não programável e despeja com segurança todos os pods que estejam em conformidade com Regras de drenagem de nó no nó. Novos pods subsequentes não serão programados para o nó.
Quando um nó está defeituoso, essa função ajuda a isolar rapidamente o nó defeituoso. Os pods despejados serão transferidos do controlador de carga de trabalho para outro nó que pode ser programado corretamente.
Restrições
- Somente os clusters das seguintes versões suportam a função de drenagem de nó:
- v1.21: v1.21.10-r0 ou mais recente
- v1.23: v1.23.8-r0 ou mais recente
- v1.25: v1.25.3-r0 ou mais recente
- v1.25 ou mais recente
- Para usar a função de drenagem de nó, um usuário do IAM deve ter pelo menos uma das seguintes permissões. Para mais detalhes, consulte Permissões de namespace (com base no RBAC do Kubernetes).
- cluster-admin (administrador): permissões de leitura e gravação em todos os recursos em todos os namespaces.
- drainage-editor: drenar um nó.
- drainage-viewer: visualizar o status de drenagem de nodal, mas não pode drenar um nó.
- Se um orçamento de interrupção não for especificado para a carga de trabalho, a função de carga de trabalho poderá ficar indisponível durante o reagendamento do pod.
Regras de drenagem de nó
A função de drenagem de nó expulsa com segurança os pods em um nó. No entanto, para pods que atendem aos seguintes critérios de filtragem, o sistema executa as operações correspondentes:
Critério do filtro |
Drenagem forçada ativada |
Drenagem forçada desativada |
---|---|---|
O campo status.phase do pod é Succeeded ou Failed. |
Exclusão |
Exclusão |
O pod não é gerenciado pelo controlador de carga de trabalho. |
Exclusão |
Cancelamento da drenagem |
O pod é gerenciado pelo DaemonSet. |
Nenhuma |
Cancelamento da drenagem |
Um volume do tipo emptyDir é montado no pod. |
Despejo |
Cancelamento da drenagem |
O pod é um pod estático gerenciado diretamente pelo kubelet |
Nenhum |
Nenhum |
As seguintes operações podem ser realizadas em pods durante a drenagem de nó:
- Exclusão: o pod é excluído do nó atual e não será agendado para outros nós.
- Despejo: o pod é excluído do nó atual e reagendado para outro nó.
- Nenhuma: o pod não será despejado ou excluído.
- Cancelamento da drenagem: se um pod em um nó cancela a drenagem, o processo de drenagem do nó é encerrado e nenhum pod é despejado ou excluída.
Procedimento
- Efetue logon no console do CCE e acesse o console do cluster.
- No painel de navegação à esquerda, escolha Nodes. Na coluna Operation do nó de destino, escolha More > Node Drainage.
- Na janela Nodal Drainage exibida, defina os parâmetros.
- Timeout (s): a tarefa de drenagem falha automaticamente após o período de tempo limite predefinido. O valor 0 indica que o período de tempo limite não está definido.
- Forced Drainage: se esta função estiver ativada, pods gerenciados pelo DaemonSet serão ignorados e pods com volumes de emptyDir e pods não gerenciados pelos controladores serão excluídos. Para mais detalhes, consulte Regras de drenagem de nó.
- Clique em OK e aguarde até que a drenagem de nó esteja completa.