我想要解決 Amazon Elastic Kubernetes Service (Amazon EKS) 工作節點上的 "No space left on device: unknown"錯誤。
若要解決您的 Amazon EKS 工作節點上出現的 No space left on device: unknown 錯誤,請完成以下步驟:
封鎖工作節點,以將該工作節點從叢集中移除並防止 Pod 受到排程: **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。
kubectl cordon example-worker-node
清空工作節點: **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。
kubectl drain --ignore-daemonsets example-worker-node
開啟 AWS Management Console (AWS 管理主控台)。
若要連線受影響的工作節點,請使用 SSH 或 AWS Systems Manager 的功能 Sessions Manager。
切換為根使用者:
sudo su -
請手動清理或刪除無用及未使用的映像檔。預設命名空間為 k8s.io。 **注意:**執行此命令時,您可能會收到 Buildkit is not running or installed errors 錯誤訊息。您可以忽略此錯誤,以及執行命令時可能出現的其他錯誤訊息。
nerdctl system prune --all --namespace=k8s.io
取消封鎖該工作節點,將其重新投入服務: **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。
kubectl uncordon example-worker-node
檢查工作節點狀態是否為就緒。 **注意:**請將 example-worker-node 替換為工作節點名稱。請確認您使用的工作節點名稱中包含正確的 IP 位址 (例如 ip-123-456-78-90.aws-region.compute.internal)。
kubectl get nodes | grep example-worker-node
確認您能排程 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
rePost-User-1702160
已提問 3 年前
DamonDeng
已提問 4 年前
roose
已提問 2 年前
li
david
已提問 1 年前
Donnie LI
已發佈 2 年前