如何在Kubernetes上使用新架构部署Postgres? [英] How to deploy postgres with a new schema on kubernetes?
本文介绍了如何在Kubernetes上使用新架构部署Postgres?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已使用此链接在Kubernetes上部署Postgres.
I have used this link to deploy Postgres on Kubernetes.
下面是configmap:
below is the configmap :
apiVersion: v1
kind: ConfigMap
metadata:
name: postgres-config
labels:
app: postgres
data:
POSTGRES_DB: postgresdb
POSTGRES_USER: postgresadmin
POSTGRES_PASSWORD: admin123
和部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: postgres
spec:
replicas: 1
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:10.4
imagePullPolicy: "IfNotPresent"
ports:
- containerPort: 5432
envFrom:
- configMapRef:
name: postgres-config
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgredb
volumes:
- name: postgredb
persistentVolumeClaim:
claimName: postgres-pv-claim
我希望在configmap或部署yaml上进行简单配置将有助于在postgres db上创建新的架构.
I hope, a simple configuration at configmap or deployment yaml will help to create a new schema on postgres db.
推荐答案
您可以使用Kubernetes postStart生命周期挂钩在给定的Postgres DB上创建架构.只需使用生命周期块更新部署文件即可.
You can use Kubernetes postStart lifecycle hook to create your schema on given Postgres DB. Just update your deployment file with the lifecycle block.
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: postgres
name: postgres
spec:
containers:
- image: postgres:10.4
name: postgres
resources: {}
lifecycle:
postStart:
exec:
command: ["/bin/bash","-c","sleep 20 && PGPASSWORD=$POSTGRES_PASSWORD psql $POSTGRES_DB -U $POSTGRES_USER -c \'CREATE SCHEMA IF NOT EXISTS key;\'"]
envFrom:
- configMapRef:
name: postgres-config
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: data
dnsPolicy: ClusterFirst
restartPolicy: Never
volumes:
- name: data
emptyDir: {}
status: {}
这篇关于如何在Kubernetes上使用新架构部署Postgres?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文