gpt4 book ai didi

kubernetes - Kubernetes 部署的最佳 CD 策略

转载 作者:行者123 更新时间:2023-12-03 23:53:08 25 4
gpt4 key购买 nike

我们当前的 CI 部署阶段是这样工作的:

  • 构建容器。
  • 将图像标记为 "latest"< commit hash > .
  • 将图像推送到存储库。
  • 在适当的 RC 上调用滚动更新。

  • 这对于基于 RC 的部署非常有效,但现在 Deployment object 变得更加稳定并且是一个底层功能,我们希望在我们当前的部署方案和开发阶段利用这种抽象。

    我遇到的问题是找到一种理智的方法来自动更新 Deployment使用 CI 工作流程。我一直在尝试的是拆分 git repo 并执行以下操作:
  • [App Build] 构建容器。
  • [App Build] 将图片标记为 "latest"< commit hash > .
  • [App Build] 推送镜像到仓库。
  • [App Build] 调用应用程序的构建Deployment repo ,通过当前提交哈希。
  • [部署构建] 插入 list 文件 token (目前只是传递的提交哈希,例如 image: app-%%COMMIT_HASH%% )
  • [部署构建] 将更新的 list 应用到相应的 Deployment资源。

  • 当然,尽管有更好的方法来处理这个问题。如果 Deployment 就好了监控图像“最新”标签的哈希变化......也许它已经做到了?我在这方面没有成功。关于如何更好地处理 Deployment 的部署的任何想法或见解将不胜感激:)

    最佳答案

    Deployment仅监控 pod 模板 ( .spec.template ) 的变化。如果图像名称没有改变,Deployment不会做更新。您可以通过更改 pod 模板来触发滚动更新(使用 Deployment s),例如,使用提交哈希标记它。此外,您需要设置 .spec.template.spec.containers.imagePullPolicyAlways (如果指定了 Always 标签且无法更新,则默认设置为 :latest),否则图像将被重用。

    关于kubernetes - Kubernetes 部署的最佳 CD 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36408339/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com