gpt4 book ai didi

postgresql - 在标准 Helm 图表中将初始化容器添加到 pod

转载 作者:行者123 更新时间:2023-12-02 12:32:45 27 4
gpt4 key购买 nike

我正在使用标准 PostgreSQL Helm 图表将数据库部署到 Kubernetes 集群。我需要在部署过程中添加逻辑,以便将最新的数据库备份加载到 PostgreSQL 中。我想为 statefulsets.yaml 中定义的主 pod 创建一个初始化容器。

我可以直接在 PostgreSQL 图表的 statefulsets.yaml 模板中添加初始化容器定义。出于明显的原因(应用开放/封闭原则),我想避免这样做。

如何在不修改标准 Helm 图表(例如,来自 values.yaml)的情况下将 init 容器添加到 PostgreSQL master?

有没有更好的方法来加载数据库备份(除了 init 容器)?

最佳答案

通过 values.yaml “不修改标准 Helm 图表”添加一些东西听起来有点矛盾,因为 values.yaml本身就是图表的一部分。

如果您仍然需要更复杂的东西来准备数据库,并且想要坚持“开放/封闭原则”,您可以通过以下方式在“开放”和“封闭”之间划定边界,例如:

  • “封闭部分”:保留initContainers Statefulset 中的部分为
    类似于 exit 0 的“占位符”作为容器'
    命令;
  • “开放部分”:为 initContainers 提供实际值
    “图像”和“命令”作为 values.html 的一部分.

  • 这样一来,您的 statefulset 将看起来对更改关闭,但通过 values.html 对扩展开放。

    关于postgresql - 在标准 Helm 图表中将初始化容器添加到 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57628688/

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