PV, PVC
- PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: postgresql-data-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
storageClassName: postgresql-data
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/postgresql"
- PVC
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: postgresql-data-pvc
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 10Gi
storageClassName: postgresql-data
Secret
apiVersion: v1
kind: Secret
metadata:
name: postgresql-secret
stringData:
POSTGRES_DB: [DB 이름]
POSTGRES_USER: [User 이름]
POSTGRES_PASSWORD: [User PW]
PGDATA: /var/lib/postgresql/data/pgdata
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: [Deployment 이름]
spec:
replicas: 1
selector:
matchLabels:
app: postgresql
tier: postgresql
template:
metadata:
labels:
app: postgresql
tier: postgresql
spec:
containers:
- name: postgres
image: postgres:13.4
imagePullPolicy: "IfNotPresent"
ports:
- containerPort: 5432
envFrom:
- secretRef:
name: postgresql-secret
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgresql-data-pv
nodeSelector:
[node]: [Selector]
volumes:
- name: postgresql-data-pv
persistentVolumeClaim:
claimName: postgresql-data-pvc
Service - nodeport
apiVersion: v1
kind: Service
metadata:
name: postgresql
spec:
type: NodePort
selector:
app: postgresql
ports:
- protocol: TCP
port: 8080
targetPort: 5432
nodePort: 30021