Profilanwendbarkeit: Stufe 1
Wenn
kubelet läuft, stellen Sie sicher, dass die Dateibesitzrechte der kubeconfig-Datei auf root:root gesetzt sind.Die kubeconfig-Datei für
kubelet steuert verschiedene Parameter für den kubelet-Dienst im Worker-Knoten. Sie sollten die Dateibesitzrechte festlegen, um die Integrität
der Datei zu wahren. Die Datei sollte im Besitz von root:root sein.
HinweisSiehe die Azure AKS-Dokumentation für den Standardwert.
|
Prüfung
Method 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 sollteAktiv: aktiv (läuft)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 sollte etwas Ähnliches wie--kubeconfig /var/lib/kubelet/kubeconfigzurückgeben, was den Speicherort der kubeconfig-Datei angibt. -
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 die Eigentümerschaft aufroot:rootgesetzt ist.
Erstellen und Ausführen eines privilegierten Pods
-
Run a pod that is privileged enough to access the host's file system. To do this, deploy a pod that uses the hostPath volume to mount the node's file system into the pod.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 Dateibesitzrechte 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 Eigentümerschaft der Datei überprüfen:
ls -l /host/var/lib/kubelet/kubeconfig
Überprüfen Sie, ob die Eigentümerschaft aufroot:rootgesetzt 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>
