我必须将我的应用程序部署与PostgresDB部署连接起来。目前,我将Postgres集群IP放在我的应用程序环境中,如下所示:
apiVersion: apps/v1
kind: Deployment
.......
containers:
- name: "#{tenant}#-app-widget"
image: baserepository:#{app_image_version}#
ports:
- containerPort: 8080
env:
- name: NODE_ENV
value: "#{NODE_ENV}#"
- name: AUTH_CALLBACK_URL
value: "https://base.#{DNSSubdomain}#/auth/callback"
- name: DB_HOST
value: "10.0.196.195"
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
value: "#{DB_DATABASE}#"我想要做的是在DB_HOST的值中加入对postgres服务的引用,以便在部署应用程序时更加动态。下面是我为postgres部署和服务所做的工作:
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: "#{tenant}#-postgres"
name: "#{tenant}#-postgres"
labels:
app: "#{tenant}#-postgres"
product: "#{tenant}#-postgres"
app.kubernetes.io/name: "#{tenant}#-postgres"
app.kubernetes.io/version: "10.4"
app.kubernetes.io/managed-by: "#{managed_by}#"
app.kubernetes.io/component: "#{tenant}#-postgres"
app.kubernetes.io/part-of: "#{tenant}#-postgres"
spec:
replicas: 1
selector:
matchLabels:
app: "#{tenant}#-postgres"
template:
metadata:
labels:
app: "#{tenant}#-postgres"
spec:
containers:
- name: "#{tenant}#-postgres"
image: postgres:10.4
imagePullPolicy: "IfNotPresent"
ports:
- containerPort: 5432
envFrom:
- configMapRef:
name: "#{tenant}#-postgres-config"
resources:
requests:
memory: "#{POSTGRES_RESOURCES_REQUESTS_MEMORY}#"
cpu: "#{POSTGRES_RESOURCES_REQUESTS_CPU}#"
limits:
memory: "#{POSTGRES_RESOURCES_LIMITS_MEMORY}#"
cpu: "#{POSTGRES_RESOURCES_LIMITS_CPU}#"
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: "#{tenant}#-postgredb"
volumes:
- name: "#{tenant}#-postgredb"
persistentVolumeClaim:
claimName: "#{tenant}#-postgres-pv-claim"
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: tier
operator: In
values:
- "#{POSTGRES_AFFINITY_PREFERRED_VALUE}#"
---
apiVersion: v1
kind: Service
metadata:
namespace: "#{tenant}#-postgres"
name: "#{tenant}#-postgres"
labels:
app: "#{tenant}#-postgres"
spec:
type: NodePort
ports:
- port: 5432
selector:
app: "#{tenant}#-postgres"您能为我提供一个如何执行此操作的示例吗?我认为不需要入口,因为我必须将同一集群中的两个部署关联起来。非常感谢,戴夫。
发布于 2021-05-27 14:42:40
我找到了解决方案,您必须将服务元数据{ DB_HOST }.{namespace}放入名称值中。这足以让应用程序部署与Postgres实例进行动态通信。DB_HOST将是"#{tenant}#-postgres.#{tenant}#-postgres“
https://stackoverflow.com/questions/67702017
复制相似问题