반응형
이번엔 Bitnami PostgreSQL-HA 설치를 해보겠습니다.
사전 준비
- k8s 클러스터
- Helm 설치
HA(PostgreSQL High Availability)란 무엇인가?
PostgreSQL은 기본적으로 단일 노드로 동작하지만, 운영 환경에서는 장애 발생 시 서비스 중단이 발생할 수 있습니다.
이를 방지하기 위해 Primary(주 서버)와 Replica(보조 서버)를 구성하여, 장애 시 자동으로 Replica가 Primary로 승격되는 고가용성(High Availability, HA) 구성이 필요합니다.
Bitnami의 postgresql-ha 차트는 이러한 HA 구성을 손쉽게 구현할 수 있도록 도와주는 Helm Chart입니다.
설치
이제부터 설치해보도록 하겠습니다.
https://artifacthub.io/packages/helm/bitnami/postgresql-ha
먼저 위 주소에가서 DEFAULT VAULE 파일을 받아줍니다.
그리고 설치에 필요한 부분을 수정해줍니다.
여기서 중요한 부분이 있습니다.
Bitnami에서는 기존의 docker.io/bitnami/ 형태로 제공되던 버전 태그 이미지들을 더 이상 일반 공개 카탈로그에서 유지하지 않는다고 발표했습니다.
따라서 repository 주소를 bitnamilegacy 로 변경해주어야 합니다.
- vaules.yaml 파일 내용 수정
postgresql:
image:
registry: docker.io
repository: bitnamilegacy/postgresql-repmgr
tag: 17.6.0-debian-12-r2
username: dbuser # 일반 사용자
password: "원하는 패스워드" # 일반 사용자의 패스워드
database: "원파는 데이터베이스 이름" # 초기에 사용할 데이터베이스
postgresPassword: "원하는 패스워드" # 슈퍼 유저의 패스워드 입력
pgpool:
image:
registry: docker.io
repository: bitnamilegacy/pgpool
tag: 4.6.3-debian-12-r0
adminUsername: admin
adminPassword: "원하는 패스워드"
srCheckUsername: "sr_check_user"
srCheckPassword: "원하는 패스워드"
srCheckDatabase: postgres
persistence:
enabled: true
storageClass: "스토리지 클래스 이름" # 저 같은 경우 먼저 k8s 클러스터에 storageClass를 정의 해두어서 해당 스토리지 클래스를 사용하여 PV를 붙였습니다.
accessModes:
- ReadWriteOnce
size: 20Givalues.yaml 파일의 내용 수정 완료하고 아래 명령어를 통해 설치를 해줍니다.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql-ha --version 16.3.2그리고 정상적으로 설치가 되면 아래와 같이 결과가 나옵니다.
k get pods
kNAME READY STATUS RESTARTS AGE
bifrost-deployment-76864b985-gh6vz 1/1 Running 0 23h
postgresql-postgresql-ha-pgpool-5b486f96f8-d5lxv 1/1 Running 0 24h
postgresql-postgresql-ha-postgresql-0 1/1 Running 0 24h
postgresql-postgresql-ha-postgresql-1 1/1 Running 0 24h
postgresql-postgresql-ha-postgresql-2 1/1 Running 0 24h
k get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
bifrost-volume-claim Bound pvc-8d7c2a4c-9ab2-46e8-9632-7db310cf569f 20Gi RWO ebs-gp3-sc <unset> 23h
data-postgresql-postgresql-ha-postgresql-0 Bound pvc-24b35757-afae-4091-8360-2ee83f11ba73 20Gi RWO ebs-gp3-sc <unset> 25h
data-postgresql-postgresql-ha-postgresql-1 Bound pvc-3cf62ce7-2990-4969-b11f-1c8436dc338d 20Gi RWO ebs-gp3-sc <unset> 25h
data-postgresql-postgresql-ha-postgresql-2 Bound pvc-112bf1b0-e59a-497e-99e5-3cd361da4a03 20Gi RWO ebs-gp3-sc <unset> 25h이상 입니다.
반응형
'쿠버네티스' 카테고리의 다른 글
| 파드의 실시간 사용량에 따른 오토 스케일링 (KEDA) (3) | 2025.08.06 |
|---|---|
| EKS 클러스터에서 GPU 자원 사용 (0) | 2025.06.16 |
| 파드 내 외부 통신 오류 (calico node already using the IPv4 address) (0) | 2025.04.20 |
| POD 생성 시 kyverno error 해결 (0) | 2025.01.06 |
| Helm 차트로 설치한 어플리케이션의 values.yaml 내용 확인하기 (0) | 2025.01.06 |