Kubernetes-我可以用容器启动吊舱而不需要任何过程吗?

Kubernetes-我可以用容器启动吊舱而不需要任何过程吗?,kubernetes,Kubernetes,我们有一个码头工人的形象。我正试图使用kubernetes部署它。我的疑问是,我是否可以使用单个容器部署pod,但在容器出现时不在容器中运行任何进程?但在它启动后运行它。也就是说,在容器启动之后,进入容器的bash并运行该进程(比如说java进程)?可能吗 现在,当我试图在没有进程运行的情况下部署pod时,会出现以下错误: 退出重新启动失败的docker容器 同步pod时出错,跳过:无法使用CrashLoopBackOff为“containerName”启动Container: 但是当我用jav

我们有一个码头工人的形象。我正试图使用kubernetes部署它。我的疑问是,我是否可以使用单个容器部署pod,但在容器出现时不在容器中运行任何进程?但在它启动后运行它。也就是说,在容器启动之后,进入容器的bash并运行该进程(比如说java进程)?可能吗

现在,当我试图在没有进程运行的情况下部署pod时,会出现以下错误:

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


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

您尝试执行的操作听起来像是一种反模式,您可以通过睡眠过程执行,例如:

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;" ]
然后可以运行流程,但

  • 您的容器将不会绑定到秒进程,并且不会在第二个进程结束时结束
  • 你必须做体力活
  • 如果只在容器的
    命令中运行应用程序,则可以进行保存

谢谢你的建议。你能详细说明第三点吗?我没有完全理解。请你解释一下你在命令和args中做了什么好吗?@Nagireddy Hanisha。。。这将启动一个bash脚本,并将实际脚本作为一个参数字符串传递给它。脚本本身在循环中运行sleep。@Tarun-你能更新你的问题并显示你手动运行的命令吗?@pagid和nagireddy-我没有完全理解第三点,也没有尝试过这一点,但与此类似,有一点不同,我在容器中使用无限循环(而不是睡眠)运行java进程。这确保了我运行了一个容器,然后进入容器并启动了所需的java进程。我不确定我是否应该在问题中更新。?非常感谢您的回答pagid,它给了我一个解决方案的想法!