如何利用 Kubernetes 实现持续交付?

如何利用 Kubernetes 实现持续交付?

我正在尝试将 Kubernetes 命名空间设置和应用程序部署作为管道的一部分运行。通常,“apply”命令适用于幂等性。现在,如果我更改 ConfigMap,则需要重新启动 Pod 才能选择更改。但是“apply”部署没有任何效果,因为部署本身没有检测到任何更改。“create”-“delete”组合有效,但需要额外的工作并破坏蓝绿部署。有没有黄金分割?

答案1

当您更改ConfigMap内容而不更改其名称时,Deployment不会检测到更改并且不会创建新的 pod。

该问题已修复并合并,请检查这里。然而,这件事发生的时间相对较近(2018 年 3 月 14 日),也许您的 Kubernetes 版本不包含该代码。

您可以使用以下解决方法来推动 Deployment 重新创建具有更新的新 Pod ConfigMap- 只需添加或更新 Pod 的注释。它将推动 Deployment 创建新版本的 Pod:

kubectl patch deployment $DEPLOYMENT_NAME -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"

相关内容