개발자의 개발괴발

[postgresql] minikube에 postgersql 배포하기 본문

개발/kubernetes

[postgresql] minikube에 postgersql 배포하기

휘발성 기억력 2025. 3. 16. 11:42
반응형

결론부터 얘기하면 아래 yaml 파일을 만들어 kube apply를 하면 된다.

아래 코드를 복사해서 psql17.yaml로 저장한다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-pvc
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: postgres-config
data:
  POSTGRES_DB: psql
  POSTGRES_USER: psql

---
apiVersion: v1
kind: Secret
metadata:
  name: postgres-secret
type: Opaque
stringData:
  POSTGRES_PASSWORD: psql

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
        - name: postgres
          image: postgres:17
          ports:
            - containerPort: 5432
          envFrom:
            - configMapRef:
                name: postgres-config
            - secretRef:
                name: postgres-secret
          volumeMounts:
            - name: postgres-storage
              mountPath: /var/lib/postgresql/data
      volumes:
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: postgres-pvc

---
apiVersion: v1
kind: Service
metadata:
  name: postgres
spec:
  selector:
    app: postgres
  ports:
    - port: 5432
      targetPort: 5432

아래 명령어로 psql을 배포한다.

중간에 unchanged로 나와있는 것은 이전에 한번 배포를 해봤어서 그렇게 나왔다.

$ k apply -f psql17.yaml
persistentvolumeclaim/postgres-pvc unchanged
configmap/postgres-config unchanged
secret/postgres-secret configured
deployment.apps/postgres created
service/postgres created

아래처럼 psql이 배포된 것을 확인할 수 있다.

$ k get pod
NAME                                 READY   STATUS    RESTARTS   AGE
bitnami-kafka-controller-0           2/2     Running   0          4d14h
bitnami-kafka-controller-1           2/2     Running   0          5d13h
bitnami-kafka-controller-2           2/2     Running   0          5d12h
postgres-7db9778574-xgfb4            2/2     Running   0          5m13s
ubuntu-deployment-644976c4bb-97d44   2/2     Running   0          10d

 

psql이 잘 배포되었는지 확인해보자.

아래처럼 pod에 접속을 하고 psql에 로그인해서 현재 존재하는 테이블을 존재하니 잘 나왔다.

$ kubectl exec -it postgres-7db9778574-xgfb4 -- /bin/bash
root@postgres-7db9778574-xgfb4:/# psql -U psql
psql (17.2 (Debian 17.2-1.pgdg120+1))
Type "help" for help.

psql=# \dt
       List of relations
 Schema | Name | Type  | Owner
--------+------+-------+-------
 public | temp | table | psql
(1 row)

 

반응형