postgresql - 使用Helm 3在Kubernetes上安装PostgreSQL

标签 postgresql kubernetes kubernetes-helm

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

  • 我应该独立安装PostreSQL吗?我的意思是,在我的scr代码中, Helm 图表称为helm / app。我应该再为PostreSQL创建一个图表吗?如何在每个环境中配置PostreSQL。

  • 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/

    相关文章:

    mysql - 三种完全不同的配置文件的数据库设计

    postgresql - 为什么无法使用主机名连接到灵活的 Azure Postgresql

    go - Helm/Kube 错误 : query: failed to query with labels: stream error

    docker - GitLab Runner 使用 Helm Chart - 指向私有(private)仓库

    php - 如何使用远程连接到 HEROKU PostgreSQL 数据库

    kubernetes - 大使可以处理 CORS 请求吗?

    docker - Kubernetes Pod 因 CrashLoopBackOff 而失败

    kubernetes - Helm 套件选项(--set)|更新数组的第 N 个键值

    kubernetes-helm - image.tag(在values.yaml中)与appVersion(在Chart.yaml中)

    sql - 使用单个 SQL 语句选择多个 max() 值