我继承了一个应用程序,我需要将其部署为集群内的持久 pod,以便能够访问其他资源,但该应用程序仅在用户进入 pod 时按需运行。在初始化时,我不需要它做任何事情,只需让 pod稍后kubectl exec
可供用户使用即可。exec
这在我们旧的 Jenkins-X 2 集群上运行良好,但新的 Jenkinx-X 3 版本却没有任何进展。
当它被部署时,状态似乎经历了一个生命周期
Running
Completed
CrashLoopBackOff
但是kubectl logs -n <<namespace>> <<podname>> -p
没有显示任何错误,并且在kubectl describe pod -n <<namespace>> <<podname>>
部分中Containers/<<appname>>
包含
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
这看起来不一致 —— 我看不出它是如何进入CrashLoopBackoff
最后状态的,Terminated
因为Completed
和Exit Code
0 —— 据我所知,应用程序没有失败,只是 Kubernetes 在完成时关闭了 pod,而不是让它继续运行,然后它以某种方式卡在了 CrashLoopBackoff 中。
我想知道这是否与就绪性或活性探测有关,因为找不到永久运行的进程来处理请求而导致它被终止,但删除它们或恢复到旧版本似乎没有任何区别。
可能新旧版本之间的图表出了问题,但我不知道该从哪里找。有人能指出是什么原因导致的吗?