
Minha máquina tem 48 CPUs. Antes de criar pods, coloquei off-line de 1 a 47 CPUs por echo "0" > /sys/devices/system/cpuN/online
.
Quando eu crio o primeiro pod para um nó, on-line a CPU #1
por echo "1" > /sys/devices/system/cpu1/online
. A tarefa de estresse da CPU executada pelo pod e vejo CPU0
que é totalmente usada por este pod. O uso do pod 99-100% CPU
.
Quando crio o segundo pod para o mesmo nó, coloco o arquivo CPU #2 echo "1" > /sys/devices/system/cpu2/online
. Mas apenas a CPU0 é totalmente utilizada CPU1
e CPU2
não tem carga. E ambos os pods são executados com 50% de uso da CPU.
Se eu criar mais pods para o mesmo nó, eles apenas compartilharão CPU0
o que eu colocar online em mais CPUs. Todas as outras CPUs online estão ociosas.
Meu Kubernetes version is 1.23.12
. Isso não acontece na versão 1.28
. Na versão 1.28
, todos os pods são executados em CPUs diferentes com 100% de uso. O yaml do pod tem limitação de CPU e solicitação para 1.
Não tenho certeza se isso é um bug na versão 1.23.12
ou se alguma configuração está errada nela. Qualquer comentário será apreciado.
Responder1
O CPU Manager é responsável pela alocação de CPU
recursos aos pods no Kubernetes. Em um nó, o CPU Manager é responsável por ativar políticas de carga de trabalho aprimoradas. Por exemplo, dependendo se o pod está limitado e quais núcleos de CPU estão disponíveis no momento do agendamento, ele direciona vários CPU
pods intensivos para compartilhar tarefas com diferentes núcleos de CPU.
O CPU Manager está em versão beta desde o Kubernetes v1.12
e está habilitado por padrão. A --cpu-manager-policy
opção kubelet é empregada para definir a política do CPU Manager.
EmKubernetes versão 1.23.14eles TEM umcorreção para um bugna mudança.
Kubelet: fix GetAllocatableCPUs method in cpumanage.
Deversão 1.26, o gerenciador de CPU foi GA no Kubernetes. Isso significa que o recurso CPU Manager foi considerado estável e está pronto para uso em ambientes de produção. Então esse pode ser o motivo pelo qual você está tendo um problema em version 1.23.12
não estar no version 1.31
.