Profilanwendbarkeit: Stufe 1 - Masterknoten
Überprüfen Sie das Zertifikat des Kubelets, bevor Sie die Verbindung herstellen.
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 vom Kubelet bereitgestellte Zertifikat 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.
![]() |
HinweisStandardmäßig ist das Argument
--kubelet-certificate-authority 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 dem Steuerungsebenenknoten aus:
ps -ef | grep kube-apiserver
Überprüfen Sie, ob das Argument
--kubelet-certificate-authority
existiert und entsprechend festgelegt ist.Alternative Prüfverfahren
kubectl get pod -nkube-system -lcomponent=kube-apiserver -o=jsonpath='{range .items[]}{.spec.containers[].command} {"\n"}{end}' | grep '--kubelet-certificate-Authority' | grep -i false
Wenn der Exit-Code '1' ist, dann ist die Steuerung nicht vorhanden / fehlgeschlagen.
Wiederherstellung
Befolgen Sie die Kubernetes-Dokumentation und richten Sie die TLS-Verbindung zwischen
dem Apiserver und den Kubelets ein. Bearbeiten Sie dann die API-Server-Podspezifikationsdatei
/etc/kubernetes/manifests/kube-apiserver.yaml
auf dem Steuerungsknoten und setzen Sie den Parameter --kubelet-certificate-authority
auf den Pfad zur Zertifikatsdatei der Zertifizierungsstelle.--kubelet-certificate-authority=<ca-string>