Profilanwendbarkeit: Stufe 1
Wenn
kubelet
läuft, stellen Sie sicher, dass die Dateieigentümerschaft der kubeconfig-Datei auf
root:root
gesetzt ist.Die kubeconfig-Datei für
kubelet
steuert verschiedene Parameter für den kubelet
-Dienst im Arbeitsknoten. Sie sollten die Dateibesitzrechte festlegen, um die Integrität
der Datei zu wahren. Die Datei sollte im Besitz von root:root
sein.![]() |
HinweisSiehe die AWS EKS-Dokumentation für den Standardwert.
|
Prüfung
Methode 1
- SSH zu den Worker-Knoten.
- Geben Sie den folgenden Befehl ein, um zu überprüfen, ob der Kubelet-Dienst läuft:
sudo systemctl status kubelet
Die Ausgabe sollteActive: active (running) since..
zurückgeben. - Führen Sie den folgenden Befehl auf jedem Knoten aus, um die entsprechende kubeconfig-Datei
zu finden:
ps -ef | grep kubelet
Die Ausgabe des obigen Befehls sollte etwas Ähnliches wie--kubeconfig/var/lib/kubelet/kubeconfig
zurückgeben, was den Speicherort der kubeconfig-Datei darstellt. - Führen Sie diesen Befehl aus, um die Eigentümerschaft der kubeconfig-Datei zu erhalten:
stat -c %U:%G /var/lib/kubelet/kubeconfig
-
Überprüfen Sie, ob der Besitz auf
root:root
festgelegt ist.
Methode 2
Erstellen und Ausführen eines privilegierten Pods
- Führen Sie ein Pod aus, das ausreichend privilegiert ist, um auf das Dateisystem des
Hosts zuzugreifen. Um dies zu tun, deployen Sie ein Pod, das das hostPath-Volume verwendet,
um das Dateisystem des Knotens in das Pod einzubinden.
Ein Beispiel für eine einfache Pod-Definition, die das Root-Verzeichnis des Hosts im Pod unter /host einbindet:
apiVersion: v1 kind: Pod metadata: name: file-check spec: volumes: - name: host-root hostPath: path: / type: Directory containers: - name: nsenter image: busybox command: ["sleep", "3600"] volumeMounts: - name: host-root mountPath: /host securityContext: privileged: true
- Speichern Sie dies in einer Datei (z.B. file-check-pod.yaml) und erstellen Sie das
Pod:
kubectl apply -f file-check-pod.yaml
- Sobald das Pod läuft, führen Sie einen Exec-Befehl aus, um die Dateiberechtigungen
auf dem Knoten zu überprüfen:
kubectl exec -it file-check -- sh
- Jetzt befinden Sie sich in einer Shell innerhalb des Pods, aber Sie können über das
/host-Verzeichnis auf das Dateisystem des Knotens zugreifen und die Berechtigungsstufe
der Datei überprüfen:
ls -l /host/var/lib/kubelet/kubeconfig
- Überprüfen Sie, ob der Besitz auf
root:root
festgelegt ist.
Wiederherstellung
Führen Sie den folgenden Befehl (basierend auf dem Dateispeicherort auf Ihrem System)
auf jedem Worker-Knoten aus:
chown root:root <proxy kubeconfig file>