본문으로 건너뛰기

PostgreSQL

설치

---
apiVersion: v1
kind: Service
metadata:
name: postgres-hl
namespace: postgres
labels:
app: postgres
app.kubernetes.io/name: postgres
app.kubernetes.io/version: "17.6"
spec:
type: ClusterIP
clusterIP: None
selector:
app: postgres
app.kubernetes.io/name: postgres
ports:
- name: postgres
port: 5432
targetPort: postgres

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres
namespace: postgres
labels:
app: postgres
app.kubernetes.io/name: postgres
app.kubernetes.io/version: "17.6"
spec:
replicas: 1
serviceName: postgres-hl
selector:
matchLabels:
app: postgres
app.kubernetes.io/name: postgres
template:
metadata:
labels:
app: postgres
app.kubernetes.io/name: postgres
app.kubernetes.io/version: "17.6"
spec:
containers:
- name: postgres
image: docker.io/library/postgres:17.6
imagePullPolicy: IfNotPresent
ports:
- name: postgres
containerPort: 5432
env:
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_PASSWORD
value: postgres
- name: PGDATA
value: /var/lib/postgresql/17/docker
volumeMounts:
- name: pgdata
mountPath: /var/lib/postgresql
volumeClaimTemplates:
- metadata:
name: pgdata
labels:
app: postgres
app.kubernetes.io/name: postgres
app.kubernetes.io/version: "17.6"
spec:
storageClassName: ceph-block
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 5Gi

Test

kubectl run tmp-psql --rm -it --image docker.io/library/postgres:17.6 \
-- psql -h postgres-0.postgres-hl.postgres.svc.cluster.local -U postgres -W