gpt4 book ai didi

kubernetes - 带两次部署的 Helm

转载 作者:行者123 更新时间:2023-12-01 09:43:25 25 4
gpt4 key购买 nike

我是使用Helm的新手,因此不确定在进行两次部署时哪种方法最好。
我已经为我的应用程序创建了一个图表。它包含两个部署:

  • app-nginx-phpfpm.yaml
  • app-mysql.yaml

  • 我应该将它们保留在同一图表中还是应该为app-mysql.yaml创建一个子图?

    最佳答案

    可以同时使用这两种方法,具体取决于您要如何构造部署。

    您应该记住以下几点

    注意事项

    单张图表的好处

  • 易于部署:仅部署一次,单次比较
  • 单个版本,因此回滚/升级发生在单个元素
  • 您可以使用功能标志
  • 卸载零件
  • 在不接触其余元素的情况下安装新组件可能会很棘手

  • 单一图表警告
  • 在升级数据库
  • 时更难部署未耦合的服务,例如用于数据访问的模拟服务
  • 很难解耦和测试每个实例
  • 很难命名和理解每个组件(在不同的发行版中,每个“应用”的{{.Release.Name}}都已经改变)。
  • 很难为不同组件提供/保持不同发布周期的跟踪
  • 版本存储在单个ConfigMap中,如果您的图表包含例如测试嵌入的
  • 数据,则可能导致大小限制问题

    关于版本控制的注意事项

    您可以拥有一个用于对所有子图表进行测试的主图表,并独立打包这些子图表,但所有内容都保留在同一仓库中。

    例如,我通常保留以下任一内容:
    . / helm / charts / whatever / charts / subchart1
    . / helm / charts / whatever / charts / subchart2
    . / helm / charts / whatever / values.yaml

    要么
    . / helm / charts / whatever-master / values.yaml
    . / helm / charts / whatever-master / requirements.yaml
    . / helm / charts / whatever-subchart1 / values.yaml
    . / helm / charts / whatever-subchart2 / values.yaml

    并使用主图表上的requirements.yaml从 file://../whatever-subchartx中提取。

    这样,我可以拥有 whatever-stress-testwhatever-subcomponent-unit-test,同时仍然可以灵活地单独部署具有不同发布周期的组件(如果需要)。

    最后,这还取决于您的升级策略。与单张图表相比,金丝雀升级可能会要求您以更特定的方式处理有状态微服务,因此请进行相应计划。

    关于kubernetes - 带两次部署的 Helm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543895/

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