pod delete-and-recreate 可能有一些基本的东西,而 pod 重新启动却没有(根据 Crashloop 重新启动)。我的第一个想法是挂载文件等。我已经看到删除后某些问题在哪里得到解决,即使 Crashloop 已经生效。
kubectl delete 做了哪些 Crashloop Backoff Restart 没有做的事情?不确定这是否特定于守护程序集,但我最后一次看到这种行为是守护程序集。
pod delete-and-recreate 可能有一些基本的东西,而 pod 重新启动却没有(根据 Crashloop 重新启动)。我的第一个想法是挂载文件等。我已经看到删除后某些问题在哪里得到解决,即使 Crashloop 已经生效。
kubectl delete 做了哪些 Crashloop Backoff Restart 没有做的事情?不确定这是否特定于守护程序集,但我最后一次看到这种行为是守护程序集。
CrashLoopBackOff
kubectl delete
我的第一个想法是挂载文件等。我已经看到删除后某些问题在哪里得到解决,即使 Crashloop 已经生效。
是的,当您删除时,从技术上讲,卷会被卸载,然后重新安装到新的 Pod 上。当CrashLoopBackOff
容器重新启动时。
从文档:
在 Pod 运行时,kubelet 能够重新启动容器以处理某种故障。在 Pod 中,Kubernetes 跟踪不同的容器状态和句柄
✌️
两者的主要区别在于 crashloop 退避会重启容器,但删除 pod 会重启整个 pod。
在 pod 启动时会发生一些在容器启动时不会发生的操作。从故障排除的角度来看,需要关注的问题如下:
卷挂载通常不是问题,因为 pod 只是重试挂载它们直到它工作。很少会看到只有通过删除 pod 才能解决的卷挂载问题。
但是,configmaps 和 secrets 可能是一个大问题。pod 仅在启动时加载来自 configmaps 和 secrets 的值。一旦 pod 启动,它将永远忽略对其正在使用的 configmaps 和 secrets 的任何更改。
因此,如果您更改 pod 使用的 configmap 或 secret,您将看到删除 pod 和 crashloop 退避重启之间的区别。