컨테이너 오케스트레이터 연결 개요

문서 버전을 선택합니다.

이 개요에서는 Kubernetes 클러스터에 배포된 AlloyDB Omni 데이터베이스의 중요한 연결 및 액세스 구성을 설명하고 유연하고 안전한 연결을 설정하는 방법을 자세히 설명합니다. 연결에는 다음 영역이 포함됩니다.

  • 네트워킹: Kubernetes ClusterIP 서비스를 사용하는 내부 액세스 또는 LoadBalancer를 사용하는 외부 액세스를 위해 AlloyDB Omni 데이터베이스 클러스터를 구성하는 방법을 알아봅니다. 여기에는 소스 클래스 없는 도메인 간 라우팅 (CIDR) 범위를 사용하여 외부 트래픽을 제한하는 방법이 포함됩니다.
  • 연결 풀링: PgBouncer 커스텀 리소스를 사용하여 효율적인 연결 관리 및 데이터베이스 인스턴스의 부하 감소를 위한 연결 풀링을 구현합니다.
  • 인증 및 승인: 비밀번호 기반 및 Active Directory와 Kerberos 통합과 같은 지원되는 방법을 사용하여 액세스를 보호하고 Kubernetes 네트워크 정책 및 PostgreSQL 역할을 통해 구현되는 세분화된 제어를 사용합니다.

네트워킹

DBCluster 커스텀 리소스로 관리되는 AlloyDB Omni 데이터베이스 클러스터를 내부 또는 외부 액세스를 위해 구성할 수 있습니다.

DBCluster 네트워킹 옵션에 대한 자세한 내용은 DBCluster CRD 참조를 확인하세요.

내부 연결

기본적으로 AlloyDB Omni 인스턴스는 Kubernetes ClusterIP 서비스를 사용하여 노출됩니다. 이렇게 하면 인스턴스가 동일한 Kubernetes 클러스터에서 실행되는 다른 애플리케이션에만 액세스할 수 있습니다. DBCluster 상태에서 기본 인스턴스의 엔드포인트를 찾을 수 있습니다.

외부 연결

Kubernetes 클러스터 외부에서 연결을 허용하려면 DBCluster 사양을 업데이트합니다.

  • 외부 트래픽 사용 설정: spec.allowExternalIncomingTraffic: true를 설정합니다. 일반적으로 LoadBalancer 서비스를 프로비저닝합니다.
  • 세분화된 제어 구현: spec.primarySpec.dbLoadBalancerOptions를 사용합니다. 예를 들어 Google Cloud에서 gcp.loadBalancerType: "External"을 설정하여 공개 인터넷에서 액세스할 수 있는 IP 주소를 가져옵니다.

액세스 제한

외부 연결을 보호하려면 spec.primarySpec.sourceCidrRanges를 사용하여 허용된 CIDR 범위 목록을 정의합니다. 시스템은 이러한 범위 외부의 IP 주소에서 시작되는 연결을 차단합니다.

PgBouncer를 사용한 연결 풀링

연결을 효율적으로 관리하고 인스턴스 부하를 줄이려면 PgBouncer를 사용합니다. AlloyDB Omni 오퍼레이터는 이 작업을 간소화하기 위해 PgBouncer 커스텀 리소스 (CR)를 제공합니다.

PgBouncer 구성에 대한 자세한 내용은 PgBouncer CRD 참조를 확인하세요.

배포 및 구성

PgBouncer 리소스를 만들고 spec.dbclusterRef에서 데이터베이스 클러스터를 참조합니다. spec.parameters의 주요 매개변수는 다음과 같습니다.

  • pool_mode: 연결이 재사용되는 시점을 결정합니다 (session, transaction 또는 statement).
  • default_pool_size: 사용자 및 데이터베이스당 서버 연결입니다.
  • max_client_conn: 허용되는 최대 클라이언트 연결입니다.
  • max_db_connections: AlloyDB Omni 인스턴스에 열린 최대 연결입니다.

PgBouncer 노출

spec.serviceOptions.type을 사용하여 공개 상태를 제어합니다.

  • ClusterIP: 내부 클러스터 액세스만 허용합니다.
  • LoadBalancer: 외부 액세스를 허용합니다. CIDR 블록을 사용하여 spec.serviceOptions.loadBalancerSourceRanges로 이를 제한할 수 있습니다.

인증 및 승인

AlloyDB Omni는 ID를 확인하고 액세스를 제어하는 여러 방법을 지원합니다.

인증 방식

  • 비밀번호 기반: 표준 PostgreSQL 사용자 이름 및 비밀번호 인증입니다. 관리자 비밀번호는 일반적으로 Kubernetes 보안 비밀을 사용하여 제공됩니다. 이는 전체 DBCluster 샘플에 표시된 대로입니다.
  • Active Directory 및 Kerberos: UserDefinedAuthentication CR을 사용하여 관리됩니다. 다음과 같이 GSSAPI 및 LDAP 그룹 동기화를 지원합니다.

    • spec.keytabSecretRef: Kerberos 키탭용입니다.
    • spec.ldapConfiguration: 그룹 매핑 및 LDAP 설정용입니다.
    • spec.pgHbaEntries: pg_hba.conf 규칙(예: gss 또는 ldap)을 구성합니다.

    자세한 내용은 UserDefinedAuthentication CRD 참조를 확인하세요.

  • 인증서 기반 (계획됨): 비밀번호 없는 TLS 인증서 인증 지원은 향후 출시에서 계획되어 있습니다.

승인 및 액세스 제어

  • Kubernetes 네트워크 정책: 애플리케이션과 AlloyDB Omni 또는 PgBouncer 포드 간의 트래픽을 보호하기 위해 포드 수준 규칙을 정의합니다.
  • 소스 CIDR 범위: LoadBalancer 수준에서 트래픽을 제한합니다.
  • PostgreSQL 역할: 사용자가 인증된 후 표준 데이터베이스 역할 및 권한을 사용하여 사용자 권한을 관리합니다.

다음 단계