Como definir a afinidade da CPU para o Pod no Kubernetes?

Como definir a afinidade da CPU para o Pod no Kubernetes?

Quero definir a afinidade da CPU para um pod no Kubernetes. Mas não consegui definir e tive dificuldade em encontrar os documentos correspondentes.

O que eu entendo:

  • Basicamente, o gerenciador de CPU do k8s considera todos os núcleos de CPU em um nó como um pool compartilhado e os utiliza para executar pods implantados no nó.
  • Se alguém definir o campo CPU-manager-policy do kubelet como 'estático', poderá definir a afinidade da CPU para o Pod definindo a solicitação/limite da CPU como um número inteiro no arquivo .yaml.

O que eu fiz:

  1. Para alterar o campo CPU-manager-policy para estático, tentei alterar a configuração do kubelet seguindo isto:Link
  2. Porém, o campo CPU-manager-policy não foi alterado e ainda é 'none'.
  3. Então, mudei o campo 'cpuManagerPolicy' em /var/lib/kubelet/config.yaml.
  4. Então, executei 'sudo systemctl restart kubelet'.
  5. O status do nó mudou para 'NotReady' e todos os pods entraram em estado pendente.

Ambiente que estou usando:

  • Versão k8s: v1.13.2
  • CNI: Calico
  • SO: Ubuntu 16.04
  • Número de nós: 2 (1 mestre, 1 trabalhador)
  • Aplicativo: aplicativo de amostra do istio chamadoinformações do livro

Agradeço antecipadamente!

Responder1

Eu resolvi isso. Você deve adicionar o campo 'kubeReserved' no arquivo config.yaml. Além disso, você deve remover o arquivo /var/lib/kubelet/cpu_manager_state. Em seguida, reinicie o kubelet executando 'systemctl restart kubelet'.

informação relacionada