--- apiVersion: apps/v1 kind: Deployment metadata: labels: app: postgres name: postgres spec: replicas: 1 selector: matchLabels: app: postgres strategy: type: Recreate template: metadata: labels: app: postgres spec: securityContext: runAsUser: 1000 containers: - env: - name: POSTGRES_PASSWORD valueFrom: configMapKeyRef: key: POSTGRES_PASSWORD name: postgres-secrets-env - name: POSTGRES_USER valueFrom: configMapKeyRef: key: POSTGRES_USER name: postgres-secrets-env image: postgres:15-alpine name: postgres ports: - containerPort: 5432 protocol: TCP volumeMounts: - mountPath: /var/lib/postgresql/data name: postgres-data-volume restartPolicy: Always volumes: - name: postgres-data-volume persistentVolumeClaim: claimName: postgres-data-pvc --- apiVersion: v1 kind: Service metadata: name: postgres-svc spec: ports: - name: "5432" port: 5432 targetPort: 5432 nodePort: 31432 type: NodePort selector: app: postgres --- apiVersion: v1 kind: PersistentVolume metadata: name: postgres-data-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: "" nfs: path: /mnt/raid/00_meta/02_services/postgresql/ server: 192.168.1.146 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgres-data-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi volumeName: postgres-data-pv storageClassName: ""