Kubernetes - 我可以在没有任何进程的情况下使用容器启动 Pod 吗?

Dre*_*ams 7 kubernetes

我们有一个 docker 镜像。我正在尝试使用 kubernetes 来部署它。我的疑问是,我可以部署一个带有单个容器的 Pod,但在容器启动时不在容器中运行任何进程吗?但启动后运行它。也就是说,容器启动后,进入容器的bash,并运行进程(假设是一个java进程)?那可能吗?

现在,当我尝试部署一个没有运行进程的 Pod 时,我收到以下错误:

后退重新启动失败的 docker 容器同步 Pod 时出错,跳过:无法使用 CrashLoopBackOff 为“containerName”“StartContainer”:

但是当我用 java 进程启动容器时,它就可以工作了。不确定是否是因为容器中没有进程?请指导。

pag*_*gid 7

无论如何,您想要做的事情听起来像是反模式,您可以在睡眠过程中进行操作,例如:

apiVersion: v1
kind: Pod
metadata:
  name: app
spec:
  containers:
  - name: app-container
    image: app-image:version
    command: [ "/bin/bash", "-c", "--" ]
    args: [ "while true; do sleep 30; done;" ]
Run Code Online (Sandbox Code Playgroud)

然后您可以运行您的流程但是

  • 您的容器不会绑定到秒进程,并且不会在第二个进程结束时结束
  • 你必须做手工工作
  • 如果您只是在command容器中运行应用程序,则可以保存