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 diesem Servicekonto-Anmeldeinformation für jede Controller-Schleife. Wenn --use-service-account-credentials auf true gesetzt wird, läuft jede Kontrollschleife innerhalb des Controller-Managers mit einem
separaten Servicekonto-Anmeldeinformation. In Kombination mit RBAC wird dadurch sichergestellt,
dass die Kontrollschleifen mit den minimalen Berechtigungen erforderlich ausgeführt
werden, um ihre vorgesehenen Aufgaben zu erfüllen.
HinweisStandardmäßig ist
--use-service-account-credentials auf false gesetzt. |
Auswirkung
Unabhängig davon, welcher Autorisierer für den 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 erstellt und automatisch
mit den entsprechenden Dienstkonten im
kube-system-Namespace mit Standardrollen und Rollenbindungen verknüpft, die beim Start automatisch
abgeglichen werden.Wenn andere Autorisierungsmethoden (ABAC, Webhook usw.) verwendet werden, ist der
Cluster-Deployeur dafür verantwortlich, den Dienstkonten die entsprechenden Berechtigungen
zu erteilen (die erforderlichen Berechtigungen können durch Überprüfung der Dateien
controller-roles.yaml und controller-role-bindings.yaml für die RBAC-Rollen eingesehen werden).Prüfung
Führen Sie den folgenden Befehl auf dem Control Plane-Knoten 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 Steuerungsebenenknoten, um den untenstehenden Parameter festzulegen.--use-service-account-credentials=true
