반응형
많은 devops 서비스는 postgresql을 많이 쓰는 편이다. (jira, confluence, sonarqube 등)
그렇기 때문에 postgrsql 데이터베이스를 statefulset으로 구성하고자 한다
# PV 생성
apiVersion: v1
kind: PersistentVolume
metadata:
namespace: devops
name: postgresql-pv
spec:
storageClassName: nfs-sc
capacity:
storage: 50Gi
persistentVolumeReclaimPolicy: Retain
accessModes:
- ReadWriteMany
nfs:
server: 12.34.56.78
path: '/volume1/nfs_root/postgresql'
readOnly: false
# PVC 생성
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgresql-pvc
namespace: devops
spec:
storageClassName: nfs-sc
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi
# StatefulSet 생성
kind: StatefulSet
metadata:
namespace: devops
name: postgresql-statefulset
spec:
serviceName: postgresql-statefulset
replicas: 1
selector:
matchLabels:
app: postgresql-statefulset
template:
metadata:
labels:
app: postgresql-statefulset
spec:
containers:
- name: postgresql-statefulset
image: postgres:11
env:
- name: POSTGRES_PASSWORD
value: "!admin06"
- name: POSTGRES_USER
value: "devops"
- name: POSTGRES_ENCODING
value: "UNICODE"
- name: POSTGRES_COLLATE
value: "C"
- name: POSTGRES_COLLATE_TYPE
value: "C"
resources:
requests:
cpu: 2
memory: 4Gi
limits:
cpu: 2
memory: 4Gi
ports:
- containerPort: 5432
volumeMounts:
- mountPath: "/var/lib/postgresql/data/"
name: postgresql-pv
volumes:
- name: postgresql-pv
persistentVolumeClaim:
claimName: postgresql-pvc
# Service 생성
- 앞으로 다른 pod에서 postgresql 접근시 postgresql-svc:5432 로 접근하면 된다
apiVersion: v1
kind: Service
metadata:
name: postgresql-svc
namespace: devops
spec:
ports:
- port: 5432
targetPort: 5432
protocol: TCP
name: http
selector:
app: postgresql-statefulset
반응형
'인프라 관리 > ▷ Docker & Kubernetes' 카테고리의 다른 글
cri-o 설치 (1) | 2023.01.22 |
---|---|
kubernetes에서 JIRA 구성 (0) | 2022.04.18 |
Kuberentes 환경에서 Jenkins 구성하기 (0) | 2022.04.15 |
Nginx Ingress Controller 구성하기 (0) | 2022.04.15 |
Synology NAS를 이용하여 NFS 기반 PV(Persistent Volume) 사용 준비 (0) | 2022.04.14 |