【问题标题】:Does Kubernetes restart a failed container or create a new container when the running container fails for any reason?当正在运行的容器因任何原因失败时,Kubernetes 是否会重新启动失败的容器或创建新容器?
【发布时间】:2021-09-09 16:27:21
【问题描述】:

我在本地运行了一个 docker 容器,它将数据存储在一个文件中(目前没有安装卷)。我使用 API 存储了一些数据。之后我使用process.exit(1) 使容器失败并再次启动容器。容器中先前存储的数据仍然存在(如预期的那样)。但是当我在 Kubernetes (minikube) 中做同样的事情时,数据会丢失。

【问题讨论】:

  • "服务器是牛,不是宠物" - 终止生病的,换一个新的。因此,如果一个容器“生病”(出于任何原因),它会被终止并且一个新的(相同*)容器将替换它。 *请记住,容器应该是无状态的——这就是原因之一。 --- 这个问题和 node.js 有什么关系?
  • 谢谢,帮了大忙。

标签: node.js docker kubernetes minikube


【解决方案1】:

将此作为社区 wiki 发布以提高可见性,请随时对其进行编辑和扩展。

如 cmets 中所述,kubernetes 将失败的容器替换为新的(相同的)容器,这解释了为什么容器的文件系统是干净的。

同样,容器应该是无状态的。如何运行不同的应用程序并处理其数据有不同的选择:

有用的链接:

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 2019-02-05
    • 2022-12-03
    • 2018-09-12
    • 2021-01-13
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多