
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:
- Para alterar o campo CPU-manager-policy para estático, tentei alterar a configuração do kubelet seguindo isto:Link
- Porém, o campo CPU-manager-policy não foi alterado e ainda é 'none'.
- Então, mudei o campo 'cpuManagerPolicy' em /var/lib/kubelet/config.yaml.
- Então, executei 'sudo systemctl restart kubelet'.
- 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'.