kubernetes - 手动替换一个 pod 上的图像,而其他 pod 使用主图像
问题描述
假设我有 10 个 pod 运行稳定版本,我希望在完全推出之前替换其中一个的映像以运行更新版本。
有没有办法做到这一点?
解决方案
并非如此:部署管理的每个 pod 都应该是相同的,包括运行相同的映像。一旦创建了 pod 的镜像,您就无法更改它,如果您更改了 Deployment 的镜像,它将尝试重新创建其所有托管的 pod。
如果您唯一担心的是 pod 启动,则部署的默认行为是使用新映像启动 25% 的指定副本。旧 pod 将继续不间断地运行,直到新副本成功启动并通过就绪检查。如果新的 Pod 立即进入 CrashLoopBackOff 状态,旧的 Pod 仍将运行。
如果您想专门启动一个 pod 作为金丝雀部署,您可以创建第二个部署来处理它。您需要在 pod 上添加一些标签(例如,canary: 'true'
),以便将金丝雀与主 pod 区分开来。这将出现在 pod 规范和部署选择器中,但不会出现在相应的服务选择器中:服务匹配金丝雀和非金丝雀 pod。如果此操作成功运行,则您可以删除金丝雀部署并更新主部署上的映像。
推荐阅读
- sql - 在 SQL Server 查询中使用模式和 patindex 函数时如何忽略特定的字符串值?
- php - Laragon - 我如何在启动时为网站提供服务?
- javascript - 使用 javascript 对 html 进行排序
- excel - 从函数添加控件(不是子!)
- python - 基于特殊模型Django的动态查询集
- python - 如何在python程序中应用递归
- x86 - 为什么 x86 分页没有特权环的概念?
- c# - 如何在 C# 中转换具有 C 类型占位符(%d、%x 等)的字符串
- java - HandlerInterceptor spring - 排除管理端口上的请求
- teamcity - 在 TeamCity 中使用 GitVersion 时,如何让它在 TC 内部版本号中包含构建元数据