使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何解决我的 Amazon EKS Worker 节点上的“No space left on device: unknown”(设备上没有剩余空间:未知)错误?

1 分钟阅读
0

我想解决我的 Amazon Elastic Kubernetes Service (Amazon EKS) Worker 节点上的“No space left on device: unknown”(设备上没有剩余空间:未知)错误。

解决方法

要解决 Amazon EKS Worker 节点上的 No space left on device: unknown(设备上没有剩余空间:未知)错误,请完成以下步骤:

  1. 封锁 Worker 节点以将 Worker 节点从集群中移除,并防止容器组被调度:
    **注意:**将 example-worker-node 替换为 Worker 节点名称。确保使用正确的 IP 地址作为 Worker 节点名称的一部分(例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl cordon example-worker-node
  2. 耗尽 Worker 节点:
    **注意:**将 example-worker-node 替换为 Worker 节点名称。确保使用正确的 IP 地址作为 Worker 节点名称的一部分(例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl drain --ignore-daemonsets example-worker-node
  3. 打开 AWS 管理控制台

  4. 要连接到受影响的 Worker 节点,请使用 SSH会话管理器,这是 AWS Systems Manager 的一项功能。

  5. 切换到根用户:

    sudo su -
  6. 手动修剪或删除悬空和未使用的映像。默认情况下,命名空间为 k8s.io
    **注意:**运行此命令时,您可能会收到错误消息 Buildkit is not running or installed errors(Buildkit 未运行或安装错误)。您可以忽略此错误以及运行此命令时可能收到的任何其他错误消息。

    nerdctl system prune --all --namespace=k8s.io
  7. 取消对 Worker 节点的封锁以使 Worker 节点重新投入使用:
    **注意:**将 example-worker-node 替换为 Worker 节点名称。确保使用正确的 IP 地址作为 Worker 节点名称的一部分(例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl uncordon example-worker-node
  8. 检查 Worker 节点状态是否为 Ready(就绪)。
    **注意:**将 example-worker-node 替换为 Worker 节点名称。确保使用正确的 IP 地址作为 Worker 节点名称的一部分(例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl get nodes | grep example-worker-node
  9. 检查您是否可以调度容器组以及它们是否成功运行:
    **注意:**将 example-worker-node 替换为 Worker 节点名称。确保使用正确的 IP 地址作为 Worker 节点名称的一部分(例如 ip-123-456-78-90.aws-region.compute.internal)。

    kubectl get pods -A -o wide | grep example-worker-node
AWS 官方
AWS 官方已更新 6 个月前