繁体   English   中英

使用 Helm 3 在 Kubernetes 上安装 PostgreSQL

[英]Install PostgreSQL on Kubernetes with Helm 3

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

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

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

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

所以你的Chart.yaml看起来大概像

apiVersion: v2
name: app
...
dependencies:
  - name: postgresql
    version: '^8'
    repository: @stable

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

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

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

默认情况下,Helm 选择values.yaml根目录的values.yaml

要安装具有不同值的相同 Helm Chart,您可以执行以下操作,

helm install . -f values.stage.yaml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM