Patroni와 Etcd의 IP 및 호스트 정보 교체 안내
Patroni와 Etcd의 IP/호스트 정보 교체 방법
안녕하세요! 오늘은 PostgreSQL 클러스터 관리에 있어 필수적인 도구인 Patroni와 Etcd의 IP 및 호스트 정보를 교체하는 방법에 대해 알아보겠습니다. Patroni는 PostgreSQL 클러스터를 위한 고가용성(HA) 프레임워크로 널리 사용되고 있으며, 그 설정을 유연하게 조정할 수 있게 도와줍니다.
1. 클러스터 일시 중지
작업을 시작하기 전에 클러스터를 일시 중지하는 것이 중요합니다. 이를 통해 클러스터에 영향을 주지 않고 현재 상태를 유지할 수 있습니다.
shell> patronictl -c /etc/patroni/cluster1-0.yml pause
위 명령어를 사용하면 클러스터 관리가 일시 중지됩니다. 모든 노드는 여전히 운영되지만, Patroni의 관리 및 장애 조치 기능은 비활성화됩니다.
2. Etcd와 Patroni 서비스 중지
클러스터가 일시 중지된 후, 모든 노드에서 Etcd와 Patroni 서비스를 중지합니다.
shell> sudo systemctl stop etcd
shell> sudo systemctl stop patroni
PostgreSQL 인스턴스는 여전히 작동 중이며 트래픽을 처리할 수 있습니다.
3. Etcd 데이터 정리
각 노드에서 Etcd 데이터 디렉토리를 청소해야 합니다. 이는 다음에 다시 부트스트랩할 때 PostgreSQL 디렉토리에서 자동으로 데이터를 복원할 수 있도록 합니다.
shell> cd /var/lib/etcd/postgres.etcd/
shell> sudo rm -rf *
4. Etcd 구성 파일에서 IP 교체
이제 각 노드의 Etcd 구성 파일(예: /etc/etcd/etcd.conf
)에서 새 IP 주소로 교체합니다.
- **Node0에서 Old (172.31.8.2)**를 New (172.31.8.5)로 교체합니다.
ETCD_NAME=cluster1-0
ETCD_INITIAL_CLUSTER="cluster1-0=http://172.31.8.5:2380"
# 나머지 설정도 같은 방식으로 수정
- Node1과 Node2에서도 해당 방식으로 IP 주소를 변경합니다.
5. Etcd 서비스 시작
Etcd 서비스를 초기화한 후 다시 시작합니다.
shell> systemctl start etcd
각 노드에서 이 작업을 반복하고, 노드들이 새로운 IP로 설정되어 있는지 확인합니다.
6. Patroni 구성에서 IP 교체
Patroni 구성 파일(/etc/patroni/*.yml
)에서도 마찬가지로 IP를 교체해야 합니다.
- Node0 – Old (172.31.8.2) 이 **New (172.31.8.5)**로 변경됩니다.
restapi:
connect_address: 172.31.8.5:8008
etcd3:
host: 172.31.8.5:2379
postgresql:
connect_address: 172.31.8.5:5432
- Node1과 Node2에서에서도 위와 같은 과정을 반복합니다.
7. Patroni 서비스 시작 및 관리 재개
모든 노드에서 IP 교체 작업이 완료되면 Patroni 서비스를 시작합니다.
shell> systemctl start patroni
그 후, Node0에서 클러스터 관리를 다시 시작합니다.
shell> patronictl -c /etc/patroni/cluster1-0.yml resume
이제 모든 노드에서 새로운 IP와 호스트 정보가 적용된 것을 확인할 수 있습니다.
결론
이 과정에서 클러스터를 "일시 중지" 상태로 유지함으로써 시스템의 가동 중지 시간을 최소화할 수 있었습니다. 또한, Patroni의 자동 장애 조치 기능만 비활성화되었기 때문에 PostgreSQL 인스턴스는 안정적으로 작동하였습니다.
이 글에서 설명한 방법을 통해 자신의 PostgreSQL 클러스터를 더욱 원활하게 관리하시기를 바랍니다!
감사합니다!