我确实使用单个 pod 进行了部署,我的自定义 docker 映像如下:
containers:
- name: mycontainer
image: myimage:latest
在开发过程中,我想推送新的最新版本并更新部署。找不到如何做到这一点,没有明确定义标签/版本并为每个构建增加它,然后做
kubectl set image deployment/my-deployment mycontainer=myimage:1.9.1
原文由 Andriy Kopachevskyy 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以为 pod 配置宽限期(例如 30 秒或更长时间,具体取决于容器启动时间和映像大小)并设置
"imagePullPolicy: "Always"
。并使用kubectl delete pod pod_name
。将创建一个新容器并自动下载最新图像,然后终止旧容器。例子:
我目前正在使用 Jenkins 进行自动构建和图像标记,它看起来像这样:
另一个技巧是最初运行:
接着:
它实际上会触发滚动更新,但请确保您还设置了
imagePullPolicy: "Always"
。更新:
我发现的另一个技巧,您不必更改图像名称,是更改将触发滚动更新的字段的值,例如
terminationGracePeriodSeconds
。您可以使用kubectl edit deployment your_deployment
或kubectl apply -f your_deployment.yaml
或使用如下补丁来执行此操作:只要确保您始终更改数值即可。