Ansichten:
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 Arbeitsknoten. Sie sollten die Dateibesitzrechte festlegen, um die Integrität der Datei zu gewährleisten. Die Datei sollte im Besitz von root:root sein.
Hinweis
Hinweis
Siehe die AWS EKS-Dokumentation für den Standardwert.

Prüfung

Methode 1
  1. SSH zu den Worker-Knoten.
  2. Geben Sie den folgenden Befehl ein, um zu überprüfen, ob der Kubelet-Dienst läuft:
    sudo systemctl status kubelet
    Die Ausgabe sollte Active: active (running) since.. zurückgeben.
  3. 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.
  4. Führen Sie diesen Befehl aus, um die Eigentümerschaft der kubeconfig-Datei zu erhalten:
    stat -c %U:%G /var/lib/kubelet/kubeconfig
  5. Überprüfen Sie, ob die Eigentümerschaft auf root:root festgelegt ist.
Methode 2
Erstellen und Ausführen eines privilegierten Pods
  1. 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
  2. Speichern Sie dies in einer Datei (z. B. file-check-pod.yaml) und erstellen Sie das Pod:
    kubectl apply -f file-check-pod.yaml
  3. 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
  4. 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
  5. Überprüfen Sie, ob die Eigentümerschaft 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>