Kubernetes中如何让Deployment更新镜像
2024-10-18 05:13:00
问题描述
我的deployment有单个pod,我的自定义docker镜像如下:
1 |
containers: |
在开发过程中,我想推送新的最新版本并更新Deployment。无法明确定义tag/version并为每个构建增加它,并且无法找到如何做到这一点:
1 |
kubectl set image deployment/my-deployment mycontainer=myimage:1.9.1 |
高票回答
您可以使用grace period(例如30秒或更长时间,根据容器启动时间和镜像大小)配置您的pod,并设置“imagePullPolicy:”Always“。并使用kubectl delete pod pod_name。将创建一个新容器并且最新镜像自动下载,然后旧容器终止。
例子:
1 |
spec: |
我目前正在使用Jenkins进行自动构建和打镜像标签,它看起来像这样:
1 |
kubectl --user="kube-user" --server="https://kubemaster.example.com" --token=$ACCESS_TOKEN set image deployment/my-deployment mycontainer=myimage:"$BUILD_NUMBER-$SHORT_GIT_COMMIT" |
另一个技巧是最初运行:
1 |
kubectl set image deployment/my-deployment mycontainer=myimage:latest |
然后:
1 |
kubectl set image deployment/my-deployment mycontainer=myimage |
它实际上会触发滚动更新,但请确保您还有imagePullPolicy:“Always”设置。
我发现的另一个技巧是,您不必更改镜像名称,更改将触发滚动更新的字段的值,例如terminationGracePeriodSeconds。您可以使用kubectl编辑部署your_deployment或kubectl apply -f your_deployment.yaml或使用如下补丁:
1 |
kubectl patch deployment your_deployment -p \ |
只需确保始终更改数值。
原文链接
Kubernetes how to make Deployment to update image
最新文章
- Win 8.1 Pro &;amp;MSSQLServer 2014 Enterprise
- 用python虚拟串口
- js 数组(Array)
- rqnoj71 拔河比赛
- Android学习笔记01-Mac下搭建Java开发环境
- 《Java数据结构与算法》笔记-CH5-链表-1单链表
- c# 可访问性级别
- WinForm 鼠标进入移开窗体事件,因子控件导致的误触发
- 解决:Visual Assist X 不支持HTML、Javascript等提示
- Android - 通过Intent启动Activity
- zigbee学习:示例程序SampleApp中通讯流程
- jquery为某div下的所有textbox的赋值
- Java集合类常见的问题
- spring boot整合 springmvc+mybatis
- props default 数组/对象的默认值应当由一个工厂函数返回
- 学习日 day1
- 可变,不可变与 id 的关系
- 我看Windows 8.1
- openjudge-NOI 2.5-1789 算24
- Linux系统之路——用CentOS 7打造合适的科研环境