在Pod中运行的应用程序会在启动时刷新其数据文件。 每次我想刷新数据时,我都需要重新启动容器。 (刷新可能需要几分钟,所以我有一个Probe检查是否准备就绪。)
我将运行scheduled job来执行滚动更新部署,这将使旧的Pod一次一个地取出并替换它们,而无需停机。
如果我没有改变任何内容,我如何触发部署?
此外,我需要能够从预定的工作中做到这一点,显然,所以没有人工编辑..
其他任何方式吗?
答案 0 :(得分:7)
注意:当且仅当部署的广告连播模板(即
.spec.template
)发生更改时才会触发部署的推出,例如更新模板的标签或容器图像。
您可以使用kubectl patch
更新.spec.template
内的标签。
答案 1 :(得分:0)
从kubectl 1.15开始,您可以运行:
kubectl rollout restart deployment <deploymentname>
这是内部操作,它使用kubectl.kubernetes.io/restartedAt
批注修补部署,以便调度程序根据部署更新策略执行部署。
对于Kubernetes的早期版本,您可以模拟类似的事情:
kubectl set env deployment --env="LAST_MANUAL_RESTART=$(date +%s)" "deploymentname"
甚至将所有内容替换为一个名称空间:
kubectl set env --all deployment --env="LAST_MANUAL_RESTART=$(date +%s)" --namespace=...