Como evitar que um contêiner em um nó seja removido?
Contexto
Dois contêineres em um nó em um cluster do CCE disputam recursos entre si. Como resultado, o kubelet remove os dois contêineres. Esta seção descreve como definir uma política para manter um dos contêineres.
Solução
O kubelet usa os seguintes critérios para remover um pod:
- Classe de qualidade de serviço (QoS): BestEffort, Burstable e Guaranteed
- Recursos consumidos com base na solicitação de agendamento do pod
Os pods de diferentes classes de QoS são removidos na seguinte sequência:
BestEffort -> Burstable -> Guaranteed
- Pods de Best-Effort: esses pods serão tratados como a prioridade mais baixa. Eles serão os primeiros a serem mortos se o sistema ficar sem memória.
- Pods de Burstable: esses pods serão mortos se o sistema ficar sem memória e não existirem pods de Best-Effort.
- Pods de Guaranteed: esses pods serão mortos se o sistema ficar sem memória e não existirem pods de Burstable ou Best-Effort.
Você pode adicionar o campo qosClass ao arquivo YAML da carga de trabalho para definir a prioridade de remoção, conforme mostrado na figura a seguir.

- Se os processos em um pod são mortos por causa do uso excessivo de recursos do que limitado (enquanto os recursos do nó ainda são suficientes), o sistema tende a reiniciar o contêiner ou criar um pod.
- Se os recursos forem suficientes, você poderá atribuir a classe de QoS Guaranteed a todos os pods. Dessa forma, mais recursos de computação são usados para melhorar o desempenho e a estabilidade do serviço, reduzindo o tempo e os custos de solução de problemas.
- Para melhorar a utilização de recursos, atribua a classe de QoS Guaranteed a pods de serviço e Burstable ou BestEffort a outros pods (por exemplo, filebeat).