
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:
- Um das Feld „CPU-Manager-Richtlinie“ auf statisch zu ändern, habe ich versucht, die Konfiguration von Kubelet wie folgt zu ändern:Verknüpfung
- Das CPU-Manager-Richtlinienfeld wurde jedoch nicht geändert und lautet weiterhin „keine“.
- Also habe ich das Feld „cpuManagerPolicy“ in /var/lib/kubelet/config.yaml geändert.
- Dann habe ich „sudo systemctl restart kubelet“ ausgeführt.
- 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.