错误杀死 Pod:设备或资源繁忙时无法“KillPodSandbox”

Dol*_*hin 2 kubernetes kubernetes-pod

当我想重新启动 kubernetes( v1.21.2) statefulset pod 时,pod 处于终止状态,日志显示如下:

error killing pod: failed to "KillPodSandbox" for "8aafe99f-53c1-4bec-8cb8-abd09af1448f" with KillPodSandboxError: "rpc error: code = Unknown desc = failed to check network namespace closed: remove netns: unlinkat /var/run/netns/cni-f9ccb1de-ed43-dff6-1b86-1260e07178e6: device or resource busy"
Run Code Online (Sandbox Code Playgroud)

Pod 终止了几个小时但仍然卡住。为什么会发生这种情况?我应该怎么做才能解决这个问题?

Far*_*mat 5

我认为强制删除可以解决此问题。

要删除处于终止状态的受影响 Pod,请参阅文档。如果 pod 仍然没有被删除,那么您可以按照文档进行强制删除。

请注意,当您强制删除 StatefulSet Pod 时,您就断言相关 Pod 永远不会再与 StatefulSet 中的其他 Pod 联系,并且可以安全地释放其名称以创建替换项。

您还可以尝试这些解决方法来快速缓解此问题

  1. 运行以下命令删除所有处于终止状态的 Pod。

for p in $(kubectl get pods | grep Termination | awk '{print $1}'); kubectl 删除 pod $p --grace-period=0 --force;done

2.将部署 YAML 中的终结器值设置为 null。