Ansichten:
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.
Hinweis
Hinweis
Standardmäß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>