在 Kubernetes 中,当 Pod 反复崩溃并处于CrashLoopBackOff
状态时,不可能进入容器并四处寻找问题,因为容器(与虚拟机不同)仅与主进程一样长。如果我进入容器并且 Pod 重新启动,我就会被踢出 shell。
如何防止 Pod 崩溃,以便我可以调查我的主进程是否无法正常启动?
command
仅在开发过程中,防止 Kubernetes Pod 崩溃的临时方法是重新定义它并指定容器command
(对应于 Docker ENTRYPOINT
)并args
使其成为不会崩溃的命令。例如:
containers:
- name: something
image: some-image
# `shell -c` evaluates a string as shell input
command: [ "sh", "-c"]
# loop forever, outputting "yo" every 5 seconds
args: ["while true; do echo 'yo' && sleep 5; done;"]
Run Code Online (Sandbox Code Playgroud)
这允许容器运行,并让您有机会进入其中,kubectl exec -it pod/some-pod -- sh
并调查可能出现的问题。
这需要在调试后撤消,以便容器能够运行它实际要运行的命令。
改编自这篇博文。
归档时间: |
|
查看次数: |
6400 次 |
最近记录: |