跳至內容

如何解決我的 Amazon EKS 工作節點上的 "No space left on device: unknown" 錯誤?

1 分的閱讀內容
0

我想要解決 Amazon Elastic Kubernetes Service (Amazon EKS) 工作節點上的 "No space left on device: unknown"錯誤。

解決方法

若要解決您的 Amazon EKS 工作節點上出現的 No space left on device: unknown 錯誤,請完成以下步驟:

  1. 封鎖工作節點,以將該工作節點從叢集中移除並防止 Pod 受到排程:
    **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl cordon example-worker-node
  2. 清空工作節點:
    **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl drain --ignore-daemonsets example-worker-node
  3. 開啟 AWS Management Console (AWS 管理主控台)。

  4. 若要連線受影響的工作節點,請使用 SSH 或 AWS Systems Manager 的功能 Sessions Manager

  5. 切換為根使用者:

    sudo su -
  6. 請手動清理或刪除無用及未使用的映像檔。預設命名空間為 k8s.io
    **注意:**執行此命令時,您可能會收到 Buildkit is not running or installed errors 錯誤訊息。您可以忽略此錯誤,以及執行命令時可能出現的其他錯誤訊息。

    nerdctl system prune --all --namespace=k8s.io
  7. 取消封鎖該工作節點,將其重新投入服務:
    **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl uncordon example-worker-node
  8. 檢查工作節點狀態是否為就緒
    **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl get nodes | grep example-worker-node
  9. 確認您能排程 Pod 並且 Pod 能成功執行:
    **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl get pods -A -o wide | grep example-worker-node
AWS 官方已更新 2 年前