Ansichten:
Profilanwendbarkeit: Stufe 1 - Masterknoten
Verwenden Sie individuelle Dienstkontenanmeldedaten für jeden Controller.
Der Controller-Manager erstellt ein Servicekonto pro Controller im kube-system-Namespace, generiert ein Anmeldeinformation dafür und baut einen dedizierten API-Client mit dieser Servicekonto-Anmeldeinformation für jede Controller-Schleife auf. Das Setzen von --use-service-account-credentials auf true führt dazu, dass jede Kontrollschleife innerhalb des Controller-Managers mit einer separaten Servicekonto-Anmeldeinformation ausgeführt wird. In Kombination mit RBAC verwendet, stellt dies sicher, dass die Kontrollschleifen mit den minimalen Berechtigungen erforderlich ausgeführt werden, um ihre vorgesehenen Aufgaben zu erfüllen.
Hinweis
Hinweis
Standardmäßig ist --use-service-account-credentials auf false eingestellt.

Auswirkung

Unabhängig davon, welcher Autorisierer für das Cluster konfiguriert ist, muss er den Dienstkonten ausreichende Berechtigungen gewähren, um ihre vorgesehenen Aufgaben auszuführen. Bei Verwendung des RBAC-Autorisierers werden diese Rollen automatisch erstellt und den entsprechenden Dienstkonten im kube-system-Namespace mit Standardrollen und Rollenbindungen zugewiesen, die beim Start automatisch abgeglichen werden.
Wenn andere Autorisierungsmethoden (ABAC, Webhook, etc.) verwendet werden, ist der Cluster-Deploy-Verantwortliche dafür verantwortlich, den Dienstkonten die entsprechenden Berechtigungen zu erteilen (die erforderlichen Berechtigungen können durch Überprüfung der controller-roles.yaml- und controller-role-bindings.yaml-Dateien für die RBAC-Rollen eingesehen werden).

Prüfung

Führen Sie den folgenden Befehl auf dem Steuerungsebenenknoten aus:
ps -ef | grep kube-controller-manager
Überprüfen Sie, ob das Argument --use-service-account-credentials auf true gesetzt ist.

Wiederherstellung

Bearbeiten Sie die Controller-Manager-Pod-Spezifikationsdatei /etc/kubernetes/manifests/kube-controller-manager.yaml auf dem Steuerknoten, um den folgenden Parameter festzulegen.
--use-service-account-credentials=true