一尘不染

如何在Kubernetes上保持容器运行?

docker

我现在正在尝试在Kubernetes集群上运行带有shell(/ bin / bash)的简单容器。

我以为有一种方法可以通过使用pseudo-ttyand detach选项(命令上的-td选项docker run)来保持容器在Docker容器上运行。

例如,

$ sudo docker run -td ubuntu:latest

Kubernetes中有这样的选择吗?

我试过使用kubectl run-container类似以下的命令来运行容器:

kubectl run-container test_container ubuntu:latest --replicas=1

但是容器会退出几秒钟(就像使用docker run不带我上面提到的选项的命令启动一样)。然后ReplicationController再次重复启动它。

有没有办法像命令中的-td选项那样保持容器在Kubernetes上运行docker run


阅读 313

收藏
2020-06-17

共1个答案

一尘不染

容器在其主进程退出时退出。做类似的事情:

docker run -itd debian

坦率地说,将容器保持打开状态是一种hack,只能用于快速测试和示例。如果您只想要一个容器进行几分钟的测试,我会这样做:

docker run -d debian sleep 300

这样做的好处是,如果您忘记了它,容器将自动退出。另外,您可以将类似这样的内容放入while循环中以使其永久运行,或者只运行诸如之类的应用程序top。所有这些都应该在Kubernetes中很容易做到。

真正的问题是您为什么要这样做?您的容器应提供服务,其过程将使容器在后台运行。

2020-06-17