deployment、statefulset控制器在没有变化的情况下触发pod更新
1.k8s控制器(deployment、statefulset)在没有变化的情况下触发pod更新
- 命令格式
kubectl patch deployment <deployment-name> -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(date +'%s')\"}}}}}" kubectl patch statefulset <statefulset-name> -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(date +'%s')\"}}}}}"
- 示例解释
在这个示例中,kubectl patch 命令通过 JSON 格式的部分替换(-p 参数)修改了 Deployment 的 Pod 模板。具体地说,它更新了 Pod 模板中 metadata 下的 labels 中的 date 标签的值。 每个部分的含义: deployment-name: 这是你的 Deployment 的名称,你需要将其替换为实际的 Deployment 名称。 -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(date +'%s')\"}}}}}": 这是 kubectl patch 命令的一部分,它指定了要应用的部分更新。在这里,它指定了要更新 Deployment 的 Pod 模板的一部分。 spec: 这是 Deployment 的规格部分。 template: 这是 Deployment 中的 Pod 模板。 metadata: 这是 Pod 模板中的元数据部分。 labels: 这是 Pod 模板中的标签部分。 最后,date 是 labels 中的一个标签,而$(date +'%s') 是一个 Bash 命令,它会生成当前时间的 Unix 时间戳。这就意味着,通过将 date 标签的值设置为当前时间的时间戳,你实际上在更新 Pod 模板中的一个标签的值,从而迫使 Kubernetes 触发 Pod 的滚动更新。 总体来说,这个操作的目的是欺骗 Kubernetes 控制器,使其认为 Pod 模板发生了变化,从而触发 Deployment 中所有 Pod 的重新创建。
分类:
k8s
标签:
pod强制更新
, 控制器没有变化强制更新pod
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
2022-01-04 Apple Macintosh OS X FBCIndex 文件内容泄露漏洞