-
Notifications
You must be signed in to change notification settings - Fork 1
Kubernetes PostgreSQL
Franknaw edited this page Feb 2, 2021
·
3 revisions
- Create configmap
cat > postgres-configmap.yaml << EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: postgres-configuration
labels:
app: postgres
data:
POSTGRES_DB: somedb
POSTGRES_USER: someuser
POSTGRES_PASSWORD: somepass
EOF
kubectl apply -f postgres-configmap.yaml
- Create Postgres install
cat > postgres.yaml << EOF
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres-statefulset
labels:
app: postgres
spec:
serviceName: "postgres"
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:latest
envFrom:
- configMapRef:
name: postgres-configuration
ports:
- containerPort: 5432
name: postgresdb
volumeMounts:
- name: pv-data
mountPath: /var/lib/postgresql/data
volumes:
- name: pv-data
persistentVolumeClaim:
claimName: nfs-pvc
EOF
kubectl apply -f postgres.yaml
- Create service
cat > postgres-service.yaml << EOF
apiVersion: v1
kind: Service
metadata:
name: postgres-service
labels:
app: postgres
spec:
ports:
- port: 5432
name: postgres
type: NodePort
selector:
app: postgres
EOF
kubectl apply -f postgres-service.yaml
- Helper commands
kubectl logs -f postgres-statefulset-0
kubectl describe svc
- Clean up
kubectl delete configmap postgres-configuration
kubectl delete statefulsets postgres
kubectl delete svc postgres-service