Por que os pods são removidos pelo kubelet devido a estatísticas anormais do cgroup?
Sintoma
Em um nó de braço, os pods são despejados pelo kubelet devido às estatísticas anormais do cgroup. Como resultado, o nó é executado anormalmente.
kubelet continua removendo pods. Depois que todos os contêineres são eliminados, kubelet ainda considera que a memória é insuficiente.
Na verdade, o uso de recursos é normal.
O valor de usage_in_bytes de cgroup no diretório /sys/fs/cgroup/memory é anormal.
# cd /sys/fs/cgroup/memory # cat memory.usage_in_bytes 17618837504
Possível causa
Em um nó Arm, o kernel do EulerOS 2.8 e 2.9 tem um bug, que faz com que o kubelet remova pods e resulte em indisponibilidade de serviço.

Este problema foi resolvido nas seguintes versões:
- EulerOS 2.8: kernel-4.19.36-vhulk1907.1.0.h1088.eulerosv2r8.aarch64
- EulerOS 2.9: kernel-4.19.90-vhulk2103.1.0.h539.eulerosv2r9.aarch64
Solução
- Se a versão do cluster for 1.19.16-r0, 1.21.7-r0, 1.23.5-r0, 1.25.1-r0 ou posterior, redefina o sistema operacional do nó para a versão mais recente.
- Se a versão do cluster não atender aos requisitos, atualize o cluster para a versão especificada e, em seguida, redefina o sistema operacional do nó para a versão mais recente.