Profilanwendbarkeit: Stufe 1 - Worker-Knoten
Aktivieren Sie die Kubelet-Authentifizierung mit Zertifikaten.
Die Verbindungen vom Apiserver zum Kubelet werden verwendet, um Protokolle für Pods
abzurufen, sich (über kubectl) mit laufenden Pods zu verbinden und die Port-Forwarding-Funktionalität
des Kubelets zu nutzen. Diese Verbindungen enden am HTTPS-Endpunkt des Kubelets. Standardmäßig
überprüft der Apiserver das Zertifikat des Kubelets nicht, was die Verbindung anfällig
für Man-in-the-Middle-Angriffe macht und unsicher über unzuverlässige und/oder öffentliche
Netzwerke auszuführen ist. Die Aktivierung der Kubelet-Zertifikatsauthentifizierung
stellt sicher, dass der Apiserver das Kubelet authentifizieren kann, bevor Anfragen
eingereicht werden.
HinweisStandardmäßig ist das Argument
--client-ca-file nicht festgelegt. |
Auswirkung
Sie müssen TLS sowohl auf dem Apiserver als auch auf den Kubelets konfigurieren.
Prüfung
Führen Sie den folgenden Befehl auf jedem Knoten aus:
ps -ef | grep kubelet
Überprüfen Sie, dass das
--client-ca-file-Argument existiert und auf den Speicherort der Client-Zertifikat-Autoritätsdatei
gesetzt ist.Wenn das Argument
--client-ca-file nicht vorhanden ist, überprüfen Sie, ob eine Kubelet-Konfigurationsdatei durch --config angegeben ist und dass die Datei authentication: x509: clientCAFile auf den Speicherort der Client-Zertifikat-Autoritätsdatei setzt.Wiederherstellung
Wenn Sie eine Kubelet-Konfigurationsdatei verwenden, bearbeiten Sie die Datei, um
authentication: x509: clientCAFile auf den Speicherort der Client-CA-Datei festzulegen.Wenn Sie Befehlszeilenargumente verwenden, bearbeiten Sie die Kubelet-Dienstdatei
/etc/kubernetes/kubelet.conf auf jedem Worker-Knoten und setzen Sie den untenstehenden Parameter in der Variablen
KUBELET_AUTHZ_ARGS.--client-ca-file=<path/to/client-ca-file>
Basierend auf Ihrem System starten Sie den
kubelet-Dienst neu. Zum Beispiel:systemctl daemon-reload systemctl restart kubelet.service
