컨테이너 오케스트레이터를 사용하여 AlloyDB Omni 설치

문서 버전을 선택합니다.

이 페이지에서는 AlloyDB Omni Kubernetes 오퍼레이터의 개요와 이를 사용하여 Kubernetes 클러스터에 AlloyDB Omni를 배포하는 방법을 설명합니다. 이 페이지에서는 Kubernetes 작업에 대한 기본적인 지식이 있다고 가정합니다.

표준 Linux 환경에 AlloyDB Omni를 설치하는 방법에 관한 안내는 AlloyDB Omni 설치를 참고하세요.

개요

Kubernetes 클러스터에 AlloyDB Omni를 배포하려면 Google에서 제공하는 Kubernetes API 확장 프로그램인 AlloyDB Omni Kubernetes 오퍼레이터를 설치합니다.

다른 Kubernetes 기반 배포와 마찬가지로 선언적 매니페스트 파일을 kubectl 유틸리티와 페어링하여 Kubernetes 기반 AlloyDB Omni 데이터베이스 클러스터를 구성하고 제어합니다. Kubernetes 클러스터가 아닌 개별 Linux 머신에 배포하기 위한 AlloyDB Omni CLI를 사용하지 않습니다.

기본 이미지

버전 1.5.0부터 AlloyDB Omni 오퍼레이터 Kubernetes 이미지는 Red Hat의 UBI (Universal Base Image) 9를 기반으로 빌드됩니다. 이 전환을 통해 배포의 보안, 일관성, 규정 준수가 강화됩니다.

SHA 다이제스트 이미지 참조

공급망 공격을 방지하고 OpenShift 인증 요구사항을 충족하기 위해 AlloyDB Omni 오퍼레이터는 모든 컨테이너 이미지 참조에 버전 태그 대신 SHA-256 다이제스트를 사용합니다.

  • 자동 업그레이드: AlloyDB Omni 오퍼레이터는 내부 ImageCatalog를 사용하여 이러한 다이제스트를 관리하고 업그레이드 실패 시 안정적인 데이터 영역 롤백을 보장합니다.

  • 사용 설정: OpenShift 인증 패키지의 경우 기본적으로 사용 설정되어 있지만 OLM 또는 Helm 패키지 사용자는 ENABLE_DIGEST_IMAGE_REFS 환경 변수를true로 설정하여 OLM의 구독 구성 또는 Helm 차트의enableDigestImageRefs 값을 사용하여 다이제스트 참조를 수동으로 사용 설정할 수 있습니다.

시작하기 전에

AlloyDB Omni 오퍼레이터를 사용하여 Kubernetes 클러스터에 AlloyDB Omni를 설치하기 전에 다음 요구사항을 충족해야 합니다.

다운로드 또는 설치 옵션 선택

일반 Kubernetes 클러스터에서 워크로드를 관리할 때는 Helm 또는 OLM을 사용할 수 있습니다. Helm은 Helm 차트를 사용하여 모든 Kubernetes 변형에서 오퍼레이터를 비롯한 모든 워크로드를 설치하는 범용 패키지 관리자입니다. OLM(OpenShift 플랫폼의 표준 기본 선택사항)은 특수 OLM 번들로 오퍼레이터 수명 주기를 관리합니다.

환경 및 도구에 따라 다음 배포 방법 중 하나를 선택합니다.

미디어 다운로드 위치 및 설치 가이드 배포 대상
Helm 차트가 포함된 AlloyDB Omni 오퍼레이터 Kubernetes에 AlloyDB Omni 설치 자체 Kubernetes 컨테이너 환경(예: 온프레미스, 퍼블릭 클라우드, GKE, Amazon EKS, Azure AKS)

도움말: CD (지속적 배포) 도구가 Helm과 통합된 경우 이 옵션을 사용합니다.
OLM 번들이 포함된 AlloyDB Omni 오퍼레이터 OperatorHub.io 자체 Kubernetes 컨테이너 환경(예: 온프레미스, 퍼블릭 클라우드, Google Kubernetes Engine, Amazon EKS, Azure AKS)

OLM 번들을 사용하려면 오퍼레이터를 설치하기 전에 Kubernetes 클러스터에 OLM을 설치합니다. 자세한 내용은 olm.operatorframework.io를 참고하세요.

도움말: CD (지속적 배포) 도구가 이미 OLM을 사용하는 경우 이 옵션을 선택합니다.
OLM 번들이 포함된 OpenShift 오퍼레이터 Openshift Container Platform 웹 콘솔 OpenShift 환경

Kubernetes의 변형인 OpenShift는 OLM을 오퍼레이터 패키징 및 배포를 위한 표준 기본 제공 방법으로 사용합니다.

액세스 확인

다음에 액세스할 수 있는지 확인합니다.

하드웨어 및 소프트웨어 요구사항 충족

Kubernetes 클러스터의 각 노드에는 다음이 있어야 합니다.

  • x86 또는 AMD64 CPU 2개 이상
  • 8GB 이상의 RAM
  • Linux 커널 버전 4.18 이상
  • Control group(cgroup) v2가 사용 설정됨

AlloyDB Omni 오퍼레이터 설치

Helm, OLM (Operator Lifecycle Manager)을 포함한 다양한 방법을 사용하여 AlloyDB Omni 오퍼레이터를 설치할 수 있습니다.

Helm

AlloyDB Omni 오퍼레이터를 설치하려면 다음 단계를 따르세요.

  1. OCI 레지스트리에서 AlloyDB Omni 오퍼레이터를 설치합니다.
    helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \
    --version 1.7.0 \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    설치가 완료되면 다음과 같은 출력이 표시됩니다.

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    

OLM

Operator Lifecycle Manager를 사용하여 AlloyDB Omni 오퍼레이터를 설치하려면 다음 단계를 수행합니다.

  1. AlloyDB Omni 오퍼레이터 페이지로 이동합니다.

  2. 설치 를 클릭합니다. 아직 설치하지 않은 경우 안내에 따라 OLM 오퍼레이터 및 OperatorHub.io 카탈로그만 설치합니다.

  3. alloydb-omni-system 네임스페이스가 아직 없으면 만듭니다.

    kubectl create ns alloydb-omni-system
    
  4. 오퍼레이터가 클러스터 범위에 있는지 확인하도록 OLM OperatorGroup을 설정합니다.

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: operator-sdk-og
      namespace: alloydb-omni-system
    spec:
      upgradeStrategy: Default
    EOF
    
  5. OLM 구독 리소스를 사용하여 오퍼레이터를 설치합니다.

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: my-alloydb-omni-operator
      namespace: alloydb-omni-system
    spec:
      channel: stable
      name: alloydb-omni-operator
      source: operatorhubio-catalog
      sourceNamespace: olm
    EOF
    
  6. 기본 인증서 ClusterIssuer를 설치합니다. 커스텀 인증서 발급기관을 사용하는 경우 이 단계는 선택사항입니다.

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

OLM

OLM을 사용하여 Red Hat OpenShift 환경에 AlloyDB Omni 오퍼레이터를 설치하려면 다음 단계를 수행합니다.

  1. Red Hat OpenShift 웹 콘솔에 로그인합니다.
  2. 오프라인 또는 연결이 끊긴 사용자의 경우 SHA 다이제스트를 보존하는 도구(예: oc image mirror)를 사용하여 필요한 이미지를 비공개 레지스트리에 수동으로 미러링해야 합니다. 공개 gcr.io 저장소에서 비공개 레지스트리로 이미지 가져오기를 리디렉션하도록 ImageDigestMirrorSet 을 구성해야 합니다. 이렇게 하면 AlloyDB Omni 오퍼레이터 가 변경 불가능한 SHA256 다이제스트를 사용하여 필요한 이미지를 가져올 수 있습니다.
  3. OpenShift 웹 콘솔에서 오퍼레이터 > OperatorHub 로 이동합니다. AlloyDB Omni 오퍼레이터인증됨커뮤니티 카탈로그에 나열됩니다.

  4. AlloyDB Omni 오퍼레이터 창에서 설치 를 클릭합니다.

  5. 기본 인증서 ClusterIssuer를 설치합니다. 커스텀 인증서 발급기관을 사용하는 경우 이 단계는 선택사항입니다.

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

GDC connected 스토리지 구성

GDC connected에 AlloyDB Omni 오퍼레이터를 설치하려면 GDC 연결 클러스터가 기본 스토리지 클래스를 설정하지 않으므로 스토리지를 구성하기 위한 추가 단계를 따라야 합니다. AlloyDB Omni 데이터베이스 클러스터를 만들기 전에 기본 스토리지 클래스를 설정해야 합니다.

Symcloud Storage를 기본 스토리지 클래스로 설정하는 방법은 Symcloud Storage를 기본 스토리지 클래스로 설정을 참고하세요.

다른 모든 스토리지 클래스의 기본값 변경에 관한 자세한 내용은 기본 StorageClass 변경을 참고하세요.

데이터베이스 클러스터 만들기

AlloyDB Omni 데이터베이스 클러스터에는 기본 서버, 모든 복제본, 모든 데이터를 비롯하여 AlloyDB Omni 서버를 실행하는 데 필요한 모든 스토리지 및 컴퓨팅 리소스가 포함되어 있습니다.

AlloyDB Omni 데이터베이스 클러스터를 만들려면 다음 단계를 수행합니다.

  1. 데이터베이스 클러스터 전용 네임스페이스를 만듭니다. 이렇게 하면 격리와 보안이 향상됩니다.

    kubectl create namespace DB_CLUSTER_NAMESPACE
    

    DB_CLUSTER_NAMESPACE를 데이터베이스 클러스터를 만들려는 네임스페이스로 바꿉니다(예: my-db-cluster-namespace).

  2. 다음 콘텐츠로 db-cluster.yaml 매니페스트 파일을 만듭니다. 이 매니페스트는 데이터베이스 비밀번호와 DBCluster 리소스 자체의 보안 비밀을 모두 정의합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
      namespace: DB_CLUSTER_NAMESPACE
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
      namespace: DB_CLUSTER_NAMESPACE
    spec:
      databaseVersion: "17.7.0"
      # Optional: Specify the base OS type for the database image.
      # Valid values are "Debian" and "UBI9".
      # If not specified, the operator defaults to "Debian" for databaseVersion < 16.9.0
      # and "UBI9" for databaseVersion 16.9.0 or later.
      # databaseImageOSType: "OS_TYPE"
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
    

    다음을 바꿉니다.

    • DB_CLUSTER_NAME: 이 데이터베이스 클러스터의 이름(예: my-db-cluster)

    • OS_TYPE: (선택사항) 데이터베이스 이미지의 기본 운영체제 유형입니다. 유효한 값은 DebianUBI9입니다. 이를 지정하지 않으면 databaseVersion16.9.0보다 작은 경우 오퍼레이터가 자동으로 Debian으로 설정하고, databaseVersion16.9.0 이상인 경우 UBI9로 설정합니다.

    • ENCODED_PASSWORD: 기본 postgres 사용자 역할의 데이터베이스 로그인 비밀번호로, base64 문자열로 인코딩됩니다(예: ChangeMe123의 경우 Q2hhbmdlTWUxMjM=).

    • CPU_COUNT: 이 데이터베이스 클러스터의 각 데이터베이스 인스턴스에서 사용할 수 있는 CPU 수

    • MEMORY_SIZE: 이 데이터베이스 클러스터의 데이터베이스 인스턴스당 메모리 양. CPU당 8GB로 설정하는 것이 좋습니다. 예를 들어 이 매니페스트에서 이전에 cpu2로 설정한 경우 memory16Gi로 설정하는 것이 좋습니다.

    • DISK_SIZE: 데이터베이스 인스턴스당 디스크 크기(예: 10Gi)

  3. 매니페스트를 Kubernetes 클러스터에 적용합니다.

    kubectl apply -f db-cluster.yaml
    

이 매니페스트를 적용하면 Kubernetes 클러스터에 지정된 메모리, CPU, 스토리지 구성이 포함된 AlloyDB Omni 데이터베이스 클러스터가 포함됩니다. 새 데이터베이스 클러스터와 테스트 연결을 설정하려면 사전 설치된 psql을 사용하여 연결을 참고하세요.

Kubernetes 매니페스트 및 적용 방법에 관한 자세한 내용은 리소스 관리를 참고하세요.

다음 단계