问题描述

我的deployment有单个pod,我的自定义docker镜像如下:

1
2
3
containers:
- name: mycontainer
image: myimage:latest

在开发过程中,我想推送新的最新版本并更新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
2
3
4
5
6
spec:
terminationGracePeriodSeconds: 30
containers:
- name: my_container
image: my_image:latest
imagePullPolicy: "Always"

我目前正在使用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
2
kubectl patch deployment your_deployment -p \
'{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'

只需确保始终更改数值。

原文链接

Kubernetes how to make Deployment to update image

最新文章

  1. Win 8.1 Pro &MSSQLServer 2014 Enterprise
  2. 用python虚拟串口
  3. js 数组(Array)
  4. rqnoj71 拔河比赛
  5. Android学习笔记01-Mac下搭建Java开发环境
  6. 《Java数据结构与算法》笔记-CH5-链表-1单链表
  7. c# 可访问性级别
  8. WinForm 鼠标进入移开窗体事件,因子控件导致的误触发
  9. 解决:Visual Assist X 不支持HTML、Javascript等提示
  10. Android - 通过Intent启动Activity
  11. zigbee学习:示例程序SampleApp中通讯流程
  12. jquery为某div下的所有textbox的赋值
  13. Java集合类常见的问题
  14. spring boot整合 springmvc+mybatis
  15. props default 数组/对象的默认值应当由一个工厂函数返回
  16. 学习日 day1
  17. 可变,不可变与 id 的关系
  18. 我看Windows 8.1
  19. openjudge-NOI 2.5-1789 算24
  20. Linux系统之路——用CentOS 7打造合适的科研环境

热门文章

  1. 处理收到的Stanzas
  2. ubuntu ufw相关命令
  3. CSS3 弹性盒布局
  4. IDEA 创建类是自动添加注释和创建方法时快速添加注释
  5. 202. 快乐数.Set去重作用实际作用
  6. centos 6.5 忘记用户名和密码
  7. FRP 中文文档
  8. 在kubernetes集群中部署ElasticSearch集群--ECK
  9. PHP写一个最简单的MVC框架
  10. 项目Beta冲刺(团队4/7)