【发布时间】:2020-06-15 18:31:00
【问题描述】:
对于部署在 --dev namespace 中的应用程序如何连接到我使用 helm 和 --database namespace 独立部署的 postgreSQL 数据库,我真的很苦恼。到目前为止我所做的如下。
Database 和 myapp 部署了不同的命名空间。我只是从一些示例中复制了名称PGHOST,PGPASSWORD,但我不确定我应该在哪里使用这个名称,并且它必须在 postgreSQL 的某个地方相同吗?
我应该注意连接数据库的其他任何事情还是有什么不是最佳实践?我应该在 jdbc url 中添加命名空间吗?
在本地,我们使用以下参数连接到数据库,但是在我们通过 helm 部署应用程序后应该怎么做?我们正在使用 sequelize 作为客户端库
const connectionString = postgres://${global.config.database_username}:${global.config.database_password}@${global.config.database_host}:${global.config.database_port}/${global.config.database_name};
postgres 值
## Specify PGDATABASE
##
DBName: db
在我部署了 postgres 之后;
# of replicas: 3
service name: my-postgres-postgresql-helm
service port: 64000
database name: db
database user: admin
jdbc url: jdbc:postgresql://my-postgres-postgresql-helm:port
deployment.yaml
- name: PGHOST
valueFrom:
configMapKeyRef:
name: {{ .Release.Name }}-configmap
key: jdbc-url
- name: PGDATABASE
value: {{ .Values.postgres.database name | quote }}
- name: PGPASSWORD
value: "64000"
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "my-mp.name" . }}
key: POSTGRES_PASSWORD
configmaps.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
labels:
app.kubernetes.io/name: {{ include "my-mp.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "my-mp.chart" . }}
data:
jdbc-url: jdbc:postgresql://my-postgres-postgresql-helm..
values.yaml
postgres:
service name: my-postgres-postgresql-helm
service port: 64000
database name: db
database user: admin
【问题讨论】:
标签: postgresql kubernetes kubernetes-helm