【问题标题】:Deploy Container in K8s in case of only config Map change argocd在 K8s 中部署 Container 以防仅配置 Map 更改 argocd
【发布时间】:2021-06-19 02:20:13
【问题描述】:

我想在 k8s 中使用 GitOps(ArgoCD) 重新部署一个应用程序,以防仅配置 Map 更改,ArgoCD 将如何理解重新启动容器,众所周知,无需重新启动容器新的配置映射不会生效.

场景 - 如果一个容器从 ArgoCD 运行,我必须在 GitHub 中修改 configmap yaml 文件,ArgoCD 会自动理解并同步更新的值,但容器不会重新启动,因为我们没有在部署 Yaml 文件中进行修改,那么如何配置地图会在容器中生效

【问题讨论】:

    标签: kubernetes deployment configmap argocd gitops


    【解决方案1】:

    找到了上述问题的解决方法,我们可以在部署配置中包含一个参数(Jenkins 内部版本号)作为环境变量,它将在 CI 管道的每个构建中更新,因此如果仅在 Git 存储库中更改配置,部署也将推出,因为运行管道后内部版本号参数会发生变化,众所周知,一旦在连接到 ArgoCD 的 Git 存储库中完成任何更改,就会自动触发 ArgoCD

    【讨论】:

      【解决方案2】:

      ArgoCD 本身无法处理此问题,但其他工具可以。使用 Helm,这通常在图表内部通过将配置内容散列到 pod 模板中的注释中来处理。 Kustomize 提供了 configmap 和秘密生成器,它们在对象名称中放置一个哈希并重写 pod 模板以包含它。还有像 Reloader 这样的运算符解决方案,它与 Helm 有类似的技巧,但通过运算符。

      【讨论】:

        猜你喜欢
        • 2018-08-22
        • 2017-10-14
        • 2022-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        • 2016-03-12
        相关资源
        最近更新 更多