我正在尝试启动二共享一个共同依赖关系(在本例中为 MySQL 数据库)的不同 Helm 图表。
让我们考虑两个不同的 Helm Chart,其设置如下Chart.yaml
:
服务A:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
服务 B:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
虽然两个服务是独立的,但它们共享同一个数据库。然而,当部署启动时,问题就出现了,因为这也会触发两个独立的数据库。
作为替代方案,我也尝试过采用上述的总体方法这里,通过定义所有事物在同一个父掌舵图使用与以下类似的设置:
家长掌舵图:
dependencies:
- name: service_a
version: 0.1.0
repository: repo_for_service_a
- name: service_b
version: 0.1.0
repository: repo_for_service_b
问题是,即使再次将同一个数据库作为依赖项共享,在尝试部署时也会为数据库创建重复的代码,从而导致部署状态失败。为了解决这个问题,我利用了 Helm--post-renderer
标志,通过已删除。尽管这种方法有效,但我仍在寻找更可行的解决方案。