Wie stelle ich die CPU-Affinität für Pod in Kubernetes ein?

Wie stelle ich die CPU-Affinität für Pod in Kubernetes ein?

Ich möchte die CPU-Affinität für einen Pod in Kubernetes festlegen. Aber ich konnte dies nicht tun und hatte Probleme, die entsprechenden Dokumente zu finden.

Was ich verstehe:

  • Grundsätzlich betrachtet der CPU-Manager von k8s alle CPU-Kerne in einem Knoten als einen gemeinsam genutzten Pool und verwendet sie zum Ausführen von Pods, die im Knoten bereitgestellt sind.
  • Wenn man das Feld „CPU-Manager-Richtlinie“ von Kubelet auf „statisch“ setzt, kann man die CPU-Affinität zu Pod einstellen, indem man die CPU-Anforderung/das CPU-Limit als Ganzzahl in der YAML-Datei festlegt.

Was ich getan habe:

  1. Um das Feld „CPU-Manager-Richtlinie“ auf statisch zu ändern, habe ich versucht, die Konfiguration von Kubelet wie folgt zu ändern:Verknüpfung
  2. Das CPU-Manager-Richtlinienfeld wurde jedoch nicht geändert und lautet weiterhin „keine“.
  3. Also habe ich das Feld „cpuManagerPolicy“ in /var/lib/kubelet/config.yaml geändert.
  4. Dann habe ich „sudo systemctl restart kubelet“ ausgeführt.
  5. Der Status des Knotens änderte sich zu „Nicht bereit“ und alle Pods wechselten in den ausstehenden Zustand.

Von mir verwendete Umgebung:

  • k8s-Version: v1.13.2
  • CNI: Kaliko
  • Betriebssystem: Ubuntu 16.04
  • Anzahl der Knoten: 2 (1 Master, 1 Worker)
  • Anwendung: Istios Beispiel-App mit dem NamenBuchinfo

Vielen Dank im Voraus!

Antwort1

Ich habe es gelöst. Sie müssen das Feld „kubeReserved“ in der Datei config.yaml hinzufügen. Außerdem müssen Sie die Datei /var/lib/kubelet/cpu_manager_state entfernen. Starten Sie dann Kubelet neu, indem Sie „systemctl restart kubelet“ ausführen.

verwandte Informationen