¿Cómo configurar la afinidad de CPU para Pod en Kubernetes?

¿Cómo configurar la afinidad de CPU para Pod en Kubernetes?

Quiero configurar la afinidad de CPU para un Pod en Kubernetes. Pero no pude configurar y tuve problemas para encontrar los documentos correspondientes.

Lo que yo entiendo:

  • Básicamente, el administrador de CPU de k8s considera todos los núcleos de CPU de un nodo como un grupo compartido y los utiliza para ejecutar los pods que se implementan en el nodo.
  • Si uno establece el campo CPU-manager-policy de kubelet en "estático", se podría establecer la afinidad de la CPU con Pod configurando la solicitud/límite de CPU como un número entero en el archivo .yaml.

Lo que hice:

  1. Para cambiar el campo CPU-manager-policy a estático, intenté cambiar la configuración de kubelet siguiendo esto:Enlace
  2. Pero el campo CPU-manager-policy no se cambió y sigue siendo "ninguno".
  3. Entonces, cambié el campo 'cpuManagerPolicy' en /var/lib/kubelet/config.yaml.
  4. Luego, ejecuté 'sudo systemctl restart kubelet'.
  5. El estado del nodo cambió a "No listo" y todos los pods pasaron al estado pendiente.

Entorno que estoy usando:

  • versión k8s: v1.13.2
  • CNI: Calicó
  • Sistema operativo: Ubuntu 16.04
  • Número de nodos: 2 (1 maestro, 1 trabajador)
  • Aplicación: aplicación de muestra de istio denominadainformación del libro

¡Gracias de antemano!

Respuesta1

Lo resolví. Debe agregar el campo 'kubeReserved' en el archivo config.yaml. Además, debe eliminar el archivo /var/lib/kubelet/cpu_manager_state. Luego, reinicie kubelet ejecutando 'systemctl restart kubelet'.

información relacionada