제한사항
다음과 같은 제한사항이 적용됩니다.
- 엔드포인트는 ReadWrite 엔드포인트로 제한됩니다. 읽기 전용 엔드포인트는 향후 지원될 예정입니다.
시작하기 전에
부하 분산기를 구성하기 전에 다음 요구사항을 충족하는지 확인하세요.
부하 분산기 노드를 정의하려면 배포 사양 파일에 전용 부하 분산기 VM의 호스트 이름 또는 IP 주소가 포함된
load_balancer_nodes그룹을 포함합니다.alloydbomni: vars: ... children: load_balancer_nodes: hosts: lb-node-1: lb-node-2:방화벽을 구성하려면 다음 인바운드 트래픽을 허용합니다.
전용 부하 분산기 VM:
포트
5432(TCP): HAProxy 데이터베이스 트래픽용포트
6432(TCP): PgBouncer 연결 풀링 트래픽(해당하는 경우)VRRP 프로토콜:
keepalived리더 선택 및 상태 점검용
데이터베이스 노드:
- 포트
8086(HTTP): 부하 분산기 상태 점검용
- 포트
Google Cloud 환경을 사용하는 경우
ENVIRONMENT_TYPE을gcp로 설정합니다. 그런 다음root사용자로gcloud auth login을 실행하여 gcloud CLI 계정을 인증해야 합니다. 또한 인증된 계정에는 다음 권한이 있어야 합니다.compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
부하 분산기 구성
RPM 오케스트레이터는 HAProxy를 사용하여 트래픽을 분산하고 Keepalived를 사용하여 가상 IP (VIP)로 고가용성을 제공합니다.
리소스 사양 업데이트
DBCluster 사양 파일에 dbLoadBalancerOptions를 추가합니다. 이렇게 하면 클러스터 관리자와 오케스트레이터가 부하 분산기 엔드포인트를 관리하는 방법을 알 수 있습니다.
DBCluster:
metadata:
name: DBCLUSTER_NAME
spec:
primarySpec:
# ... other primary settings ...
dbLoadBalancerOptions:
ENVIRONMENT_TYPE::
loadBalancerIP: "VIRTUAL_IP"
loadBalancerType: "internal"
loadBalancerInterface: "VIRTUAL_IP_INTERFACE"
다음을 바꿉니다.
ENVIRONMENT_TYPE: 클러스터가 설정되는 환경(onprem또는gcp)을 결정합니다.DBCLUSTER_NAME: AlloyDB Omni 데이터베이스 클러스터의 이름입니다(예:my-db-cluster).VIRTUAL_IP: 부동 가상 IP에 사용되는 고정 IP 주소입니다. 데이터베이스 클라이언트 애플리케이션은 여기에 정의된 IP 주소를 사용합니다. Keepalived가 Gratuitous 주소 결정 프로토콜 (GARP)을 브로드캐스트할 수 있도록 하려면 이 IP 주소가 다음 조건을 충족해야 합니다. 사용 가능해야 하고, 루프백할 수 없으며, 온프레미스의 경우 기본 노드 인터페이스와 동일한 서브넷에 속해야 합니다.VIRTUAL_IP_INTERFACE:VIRTUAL_IP가 구성된 네트워크 인터페이스입니다. 기본값은eth0입니다.
구성 적용
선호하는 오케스트레이터 인터페이스를 사용하여 구성 변경사항을 적용합니다.
Ansible
인벤토리 및 리소스 사양 파일을 사용하여 부트스트랩 플레이북을 실행합니다.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \
-e resource_spec="DBCLUSTER_SPECIFICATION"다음 변수를 바꿉니다.
DBCLUSTER_PLAYBOOK: 클러스터 만들기의 데이터베이스 클러스터에 대해 만든 플레이북의 경로입니다. 클러스터 만들기.DEPLOYMENT_SPECIFICATION:AlloyDB Omni 구성요소 설치 에서 만든 배포 사양의 경로입니다.DBCLUSTER_SPECIFICATION: 클러스터 사양의 경로입니다.
alloydbctl
리소스 및 배포 사양을 적용합니다.
alloydbctl apply -d "DEPLOYMENT_SPECIFICATION" -r "DBCLUSTER_SPECIFICATION"다음 변수를 바꿉니다.
DEPLOYMENT_SPECIFICATION:AlloyDB Omni 구성요소 설치 에서 만든 배포 사양의 경로입니다.DBCLUSTER_SPECIFICATION: 클러스터 사양의 경로입니다.
부하 분산기 확인
RPM 오케스트레이터가 설정을 완료한 후 VIP를 사용하여 데이터베이스 클러스터에 연결할 수 있는지 확인합니다.
psql -h VIRTUAL_IP -U postgresVIRTUAL_IP를 loadBalancerIP 필드에서 구성한 IP 주소로 바꿉니다.
부하 분산기는 연결을 현재 기본 노드로 자동 라우팅합니다.