使用 Helm 3 在 Kubernetes 上安装 PostgreSQL

sem*_*ral 1 postgresql kubernetes kubernetes-helm

我有一些微服务,其中之一需要使用 postreSQL。我使用 Helm 3 配置此微服务。每个环境都有两个不同的 values.yaml,例如 values.stage.yaml 和 values.prod.yaml。所以我的困惑是,

  1. 我应该独立安装 PostreSQL 吗?我的意思是,在我的 scr 代码中,我有掌舵图表调用 helm/app。我应该为 PostreSQL 再创建一张图表吗?如何为每个环境配置 PostreSQL。

2.以后如果有更多的微服务要使用同一个PostreSQL,我该怎么做才能提供这个功能。

Dav*_*aze 5

您的图表应在 Helm 3 的文件中声明postgresqldependencyChart.yaml。(在 Helm 2 中,有一个单独的requirements.yaml文件。)您需要在部署图表之前运行helm dep up( ),但是当您运行时,它将安装您的应用程序及其数据库依赖项。helm dependency updatehelm install

所以你Chart.yaml可以看起来大致像

apiVersion: v2
name: app
...
dependencies:
  - name: postgresql
    version: '^8'
    repository: @stable
Run Code Online (Sandbox Code Playgroud)

(在 Helm 3 中,您还需要helm repo add稳定的 Helm 图表存储库。)

您可以按照配置应用程序其余部分的相同方式配置每个环境的数据库。数据库设置将嵌套在子图的名称下;您可以在命令行中执行此操作--set postgresql.postgresqlPassword=...,并在 YAML 文件中将数据库设置放在某个postgresql:键下。

如果您有第二个服务需要 PostgreSQL,它应该以相同的方式声明依赖项并安装其自己的独立数据库副本。由于数据库安装隔离在容器内,因此这并不被认为是特别重量级的。如果您的两个服务需要通信,它们应该通过网络(通常是 HTTP)连接而不是共享数据库来完成。