我有一些微服务,其中之一需要使用postreSQL。我使用Helm 3配置了此微服务。每个环境都有两个不同的values.yaml,例如values.stage.yaml和values.prod.yaml。所以我的困惑是,
2.将来,如果再有一个微服务想使用相同的PostreSQL,我应该怎么做才能提供此功能。
最佳答案
您的图表应在Helm 3的postgresql
文件中将Chart.yaml
声明为dependency。 (在Helm 2中有a separate requirements.yaml
file。)在部署图表之前,您将需要运行helm dep up
(helm dependency update
),但是当您运行helm install
时,它将安装您的应用程序及其数据库依赖性。
因此,您的Chart.yaml
可以大致像
apiVersion: v2
name: app
...
dependencies:
- name: postgresql
version: '^8'
repository: @stable
(在Helm 3中,您还需要
helm repo add
the stable Helm charts repository。)您可以按照配置应用程序其余部分的方式,为每个环境配置数据库。数据库设置为nested under the subchart's name;在命令行中,您可以
--set postgresql.postgresqlPassword=...
,在YAML文件中,您可以将数据库设置放在postgresql:
键下。如果您有另一个需要PostgreSQL的服务,则它应该以相同的方式声明一个依赖项,并安装其自己的数据库独立副本。由于数据库安装隔离在容器内部,因此这并不是特别沉重的任务。如果您的两个服务需要通信,则应通过网络(通常为HTTP)连接而不是通过共享数据库来进行通信。
关于postgresql - 使用Helm 3在Kubernetes上安装PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108367/