首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新多容器实例中的容器镜像

如何更新多容器实例中的容器镜像
EN

Stack Overflow用户
提问于 2019-06-03 23:20:49
回答 3查看 1K关注 0票数 1

我正在运行一个具有三个容器的pod。需要在不进行滚动升级的情况下更新其中一个容器的镜像。

如何在不接触/重启其他两个容器的情况下更新容器镜像?

EN

回答 3

Stack Overflow用户

发布于 2019-06-04 05:12:55

如果你在问自己这个问题,也许你应该重新考虑一些事情。

正如在其他评论/答案中所述,一旦创建了pod,它就是一个单元,无论它内部是什么。

如果您曾经需要扩展pod的某些部分而不是其余部分,或者只更新一部分而不想重新启动其余部分(例如缓存系统),那么您应该从部署中取出容器并创建另一个独立的容器。

票数 2
EN

Stack Overflow用户

发布于 2019-06-03 23:30:04

我不认为你可以,因为一个pod是一个原子单元,包含了所有的容器。

票数 0
EN

Stack Overflow用户

发布于 2019-06-04 02:39:35

您必须删除并重新创建整个Pod。如果您查看Kubernetes PodSpec的接口定义,containersinitContainers字段都包含无法更新的短语。Pod一旦创建就是不可变的,各种更高级别的对象通过创建和销毁Pod来工作。

在我习惯的标准实践中:

  • 总是使用更高级别的对象来管理容器,最常见的是部署;不要直接在Pod中处理。您可以更改嵌入在部署规范中的Pod规范,部署控制器将创建与新规范匹配的新Pod,然后拆除旧Pod(即,零停机滚动升级)。如果可能,
  • 仅在Pod中放置一个容器。你提到了一个Pod,所以这对你来说可能不是100%的可能,但是你可以实现“更新A而不重启B”的唯一方法是让它们位于不同的Pod中(因此重启事情的Deployments).
  • Don't压力也不同。如果Node出现故障,或者您需要像您显示的那样更新容器镜像,或者在其他一些情况下,Pod可能会被停止并删除,并在其位置上启动一个新的Pod。这是完全正常的,如果您的部署具有多个副本,则相当透明。您的应用程序可能需要做一些工作才能在此环境中正常工作(而不仅仅是将状态保存在内存或本地磁盘中)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56430287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档