Ansichten:
Profilanwendbarkeit: Stufe 1
Deaktivieren Sie den schreibgeschützten Port.
Der Kubelet-Prozess stellt zusätzlich zur Haupt-Kubelet-API eine schreibgeschützte API bereit. Unauthentifizierter Zugriff wird auf diese schreibgeschützte API gewährt, die möglicherweise potenziell sensible Informationen über das Cluster abrufen könnte.
Hinweis
Hinweis
Siehe die GKE-Dokumentation für den Standardwert.

Auswirkung

Das Entfernen des schreibgeschützten Ports erfordert, dass jeder Dienst, der ihn genutzt hat, neu konfiguriert werden muss, um die Haupt-Kubelet-API zu verwenden.

Prüfung

Wenn eine Kubelet-Konfigurationsdatei verwendet wird, überprüfen Sie, ob ein Eintrag für authentication: anonymous: enabled auf 0 gesetzt ist.
  1. Zuerst per SSH zum entsprechenden Knoten verbinden.
  2. Führen Sie den folgenden Befehl auf jedem Knoten aus, um die entsprechende Kubelet-Konfigurationsdatei zu finden:
    ps -ef | grep kubelet
  3. Die Ausgabe des obigen Befehls sollte etwas Ähnliches wie --config /etc/kubernetes/kubelet/kubelet-config.json zurückgeben, was den Speicherort der Kubelet-Konfigurationsdatei darstellt.
  4. Öffnen Sie die Kubelet-Konfigurationsdatei:
    cat /etc/kubernetes/kubelet/kubelet-config.json
  5. Überprüfen Sie, ob das Argument --read-only-port existiert und auf 0 gesetzt ist. Wenn das Argument --read-only-port nicht vorhanden ist, stellen Sie sicher, dass eine Kubelet-Konfigurationsdatei durch --config angegeben ist.
  6. Überprüfen Sie, ob es einen readOnlyPort-Eintrag in der Datei gibt und ob dieser auf 0 gesetzt ist.

Wiederherstellung

Wenn Sie die Kubelet-Konfigurationsdatei ändern, bearbeiten Sie die Datei kubelet-config.json /etc/kubernetes/kubelet/kubelet-config.json und setzen Sie den folgenden Parameter auf 0:
"readOnlyPort": 0
Wenn ausführbare Argumente verwendet werden, bearbeiten Sie die Kubelet-Dienstdatei /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf auf jedem Worker-Knoten und fügen Sie am Ende der KUBELET_ARGS-Variablenzeichenfolge den folgenden Parameter hinzu:
--read-only-port=0
Für jede Behebung:
Basierend auf Ihrem System starten Sie den kubelet-Dienst neu und überprüfen Sie den Status:
systemctl daemon-reload
systemctl restart kubelet.service
systemctl status kubelet -l