Ansichten:
Profilanwendbarkeit: Stufe 1
Wenn kubelet läuft, stellen Sie sicher, dass die Dateibesitzrechte seiner kubeconfig-Datei auf root:root gesetzt sind.
Die kubelet kubeconfig-Datei steuert verschiedene Parameter des kubelet-Dienstes 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.
Hinweis
Hinweis
Siehe die Azure AKS-Dokumentation für den Standardwert.

Prüfung

Method 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 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, wenn eine Datei angegeben ist und existiert, der Besitz root:root ist.
Method 2
Erstellen und Ausführen eines privilegierten Pods
  1. Führen Sie einen Pod aus, der ausreichend privilegiert ist, um auf das Dateisystem des Hosts zuzugreifen. Um dies zu tun, deployen Sie einen Pod, der das hostPath-Volume verwendet, um das Dateisystem des Knotens in den 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
          
  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 Dateibesitzrechte 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 Eigentümerschaft der Datei überprüfen:
    ls -l /host/var/lib/kubelet/kubeconfig
  5. Überprüfen Sie, ob eine Datei angegeben ist und existiert, und ob der Besitz root root ist.

Wiederherstellung

Führen Sie den folgenden Befehl (basierend auf dem Dateispeicherort auf Ihrem System) auf jedem Worker-Knoten aus:
chown root:root <kubeconfig file>