檢視次數:
設定檔適用性:級別 1
如果 kubelet 正在運行,請確保其 kubeconfig 文件的文件所有權設置為 root:root
kubelet kubeconfig 檔案控制工作節點中 kubelet 服務的各種參數。您應該設定其檔案擁有權以維護檔案的完整性。該檔案應由 root:root 擁有。
注意
注意
請參閱 Azure AKS 文件以獲取預設值。

稽核

Method 1
  1. SSH 到工作節點。
  2. 輸入以下命令以檢查 Kubelet 服務是否正在運行:
    sudo systemctl status kubelet
    輸出應返回 Active: active (running) since..
  3. 在每個節點上運行以下命令以找到適當的 kubeconfig 檔案:
    ps -ef | grep kubelet
    輸出應返回類似 --kubeconfig /var/lib/kubelet/kubeconfig 的內容,這是 kubeconfig 文件的 位置資訊。
  4. 執行此命令以獲取 kubeconfig 文件的所有權:
    stat -c %U:%G /var/lib/kubelet/kubeconfig
  5. 確認如果指定了檔案且該檔案存在,則其所有權為root:root
Method 2
建立並執行特權 Pod
  1. 執行一個具有足夠權限以存取主機檔案系統的 Pod。為此,部署一個使用 hostPath 卷將節點的檔案系統掛載到 Pod 的 Pod。
    一個簡單的 Pod 定義範例,將主機的根目錄掛載到 Pod 內的 /host:
           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. 將此保存到檔案中(例如,file-check-pod.yaml)並創建 Pod:
    kubectl apply -f file-check-pod.yaml
  3. 一旦 Pod 運行,執行進入以檢查節點上的文件所有權:
    kubectl exec -it file-check -- sh
  4. 現在您在 Pod 的 shell 中,但您可以透過 /host 目錄存取節點的檔案系統並檢查檔案的擁有權:
    ls -l /host/var/lib/kubelet/kubeconfig
  5. 驗證如果指定了檔案且該檔案存在,則其擁有權為root root

矯正性處理

在每個工作節點上執行以下命令(根據您系統上的檔案位置):
chown root:root <kubeconfig file>