Azure CLI를 사용하여 AKS에 고가용성 PostgreSQL 데이터베이스 배포
이 가이드에서는 Azure CLI를 사용하여 AKS의 여러 Azure 가용성 영역에 걸쳐 있는 고가용성 PostgreSQL 클러스터를 배포합니다.
이 문서에서는 AKS(Azure Kubernetes Service)에서 PostgreSQL 클러스터를 설정하기 위한 필수 구성 요소를 살펴보고 전체 배포 프로세스 및 아키텍처에 대한 개요를 제공합니다.
Important
오픈 소스 소프트웨어는 AKS 설명서와 샘플 전반에서 언급되어 있습니다. 배포하는 소프트웨어는 AKS 서비스 수준 계약, 제한된 보증 및 Azure 지원 제외됩니다. AKS와 함께 오픈 소스 기술을 사용하는 경우 각 커뮤니티 및 프로젝트 유지 관리자에서 사용할 수 있는 지원 옵션을 참조하여 계획을 개발합니다.
예를 들어 Ray GitHub 리포지 토리는 응답 시간, 목적 및 지원 수준에 따라 달라지는 여러 플랫폼을 설명합니다.
Microsoft는 AKS에 배포하는 오픈 소스 패키지를 빌드하는 역할을 담당합니다. 해당 책임에는 컨테이너 이미지의 이진 파일에 대한 제어와 함께 빌드, 스캔, 서명, 유효성 검사 및 핫픽스 프로세스의 완전한 소유권이 포함됩니다. 자세한 내용은 AKS의 취약성 관리 및 AKS 지원 범위를 참조하세요.
필수 조건
- 이 가이드에서는 핵심 Kubernetes 개념 및 PostgreSQL에 대한 기본적인 이해를 가정합니다.
- Azure 계정의 구독에 소유자 또는 사용자 액세스 관리자 및 기여자 Azure 기본 제공 역할이 필요합니다.
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
또한 다음 리소스가 설치되어 있어야 합니다.
- Azure CLI, 버전 2.56 이상
- AKS(Azure Kubernetes Service) 미리 보기 확장.
- jq, 버전 1.5 이상.
- kubectl 버전 1.21.0 이상.
- Helm 버전 3.0.0 이상.
- openssl 버전 3.3.0 이상.
- Visual Studio Code 또는 이와 동등한 것.
- Krew 버전 0.4.4 이상.
- kubectl CloudNativePG(CNPG) 플러그인.
배포 프로세스
이 가이드에서는 다음 작업 방법을 배웁니다.
- Azure CLI를 사용하여 다중 영역 AKS 클러스터를 만듭니다.
- CNPG 연산자를 사용하여 고가용성 PostgreSQL 클러스터 및 데이터베이스를 배포합니다.
- Prometheus 및 Grafana를 사용하여 PostgreSQL에 대한 모니터링을 설정합니다.
- PostgreSQL 데이터베이스에 샘플 데이터 세트를 배포합니다.
- PostgreSQL 및 AKS 클러스터 업그레이드를 수행합니다.
- 클러스터 중단 및 PostgreSQL 복제본 장애 조치(failover)를 시뮬레이션합니다.
- PostgreSQL 데이터베이스의 백업 및 복원을 수행합니다.
배포 아키텍처
이 다이어그램에서는 CNPG(CloudNativePG) 연산자가 관리하는 주 복제본 1개와 읽기 복제본 2개와 함께 PostgreSQL 클러스터 설정을 보여 줍니다. 아키텍처는 AKS 클러스터에서 실행되는 고가용성 PostgreSQL을 제공하여 복제본 간에 장애 조치(failover)를 통해 영역 중단을 견딜 수 있습니다.
백업은 Azure Blob Storage에 저장되며 주 복제본에서 스트리밍 복제와 관련된 문제가 발생할 경우 데이터베이스를 복원하는 또 다른 방법을 제공합니다.
참고 항목
데이터베이스 수준에서 데이터를 분리해야 하는 애플리케이션의 경우 postInitSQL 명령 및 유사한 명령을 사용하여 더 많은 데이터베이스를 추가할 수 있습니다. 현재 CNPG 운영자에서는 선언적 방식으로 더 많은 데이터베이스를 추가할 수 없습니다. CNPG 운영자에 대해 자세히 알아봅니다.
다음 단계
참가자
Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 원래 그것을 썼다:
- Ken Kilty | 수석 TPM
- Russell de Pina | 수석 TPM
- Adrian Joian | 선임 고객 엔지니어
- Jenny Hayes | 선임 콘텐츠 개발자
- Carol Smith | 선임 콘텐츠 개발자
- Erin Schaffer | 콘텐츠 개발자 2
- Adam Sharif | 고객 엔지니어 2
Azure Kubernetes Service