Kubernetes에 AlloyDB Omni 설치

문서 버전을 선택합니다.

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

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

개요

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

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

기본 이미지

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

AlloyDB Omni 연산자 1.1.0 이상 호환성

AlloyDB Omni 버전 15.5.3 및 15.5.4와 AlloyDB Omni 연산자 버전 1.1.0은 호환되지 않습니다. 이러한 버전의 AlloyDB Omni를 사용하는 경우 다음과 유사한 오류가 발생할 수 있습니다.

Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3

시작하기 전에

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

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

다음 다운로드 및 설치 옵션 중 하나를 선택합니다.

미디어 다운로드 위치 및 설치 가이드 배포 대상
OLM 번들이 포함된 OpenShift 연산자 Openshift Container Platform 웹 콘솔 OpenShift 환경
OLM 번들이 포함된 Kubernetes Operator Artifacthub.io 자체 Kubernetes 컨테이너 환경(예: 온프레미스, 퍼블릭 클라우드, Google Kubernetes Engine, Amazon EKS, Azure AKS)
Helm 차트가 있는 Kubernetes Operator Kubernetes에 AlloyDB Omni 설치 (이 페이지) 자체 Kubernetes 컨테이너 환경(예: 온프레미스, 퍼블릭 클라우드, GKE, Amazon EKS, Azure AKS)

액세스 확인

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

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

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

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

AlloyDB Omni 연산자 설치

Helm, Operator Lifecycle Manager (OLM) 등 다양한 방법을 사용하여 AlloyDB Omni 연산자를 설치할 수 있습니다.

Helm

AlloyDB Omni 연산자를 설치하려면 다음 단계를 따르세요.

  1. 다음 환경 변수를 정의합니다.
    export GCS_BUCKET=alloydb-omni-operator
    export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. AlloyDB Omni 연산자를 다운로드합니다.
    gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
    
  3. AlloyDB Omni 연산자를 설치합니다.
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --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
    
  4. 다운로드한 AlloyDB Omni 연산자 설치 파일을 삭제하여 정리합니다. 이 파일의 이름은 alloydbomni-operator-VERSION_NUMBER.tgz이며 현재 작업 디렉터리에 있습니다.

OLM

Operator Lifecycle Manager를 사용하여 AlloyDB Omni 연산자를 설치하려면 다음 단계를 따르세요.

  1. https://operatorhub.io/operator/alloydb-omni-operator로 이동합니다.

  2. 설치 버튼을 클릭하여 안내를 표시합니다.

  3. 모든 설치 단계를 완료합니다.

  4. AlloyDB Omni 연산자를 설치한 후 클러스터에서 cert-manager 리소스를 수동으로 만듭니다. 이는 필수 절차입니다. 다음 명령어를 사용합니다.

    kubectl create ns ${NAMESPACE:?}
    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: fleet-selfsigned-issuer
      namespace: ${NAMESPACE:?}
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: fleet-serving-cert
      namespace: ${NAMESPACE:?}
    spec:
      dnsNames:
      - fleet-webhook-service.alloydb-omni-system.svc
      - fleet-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: fleet-selfsigned-issuer
      secretName: fleet-webhook-server-cert
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: local-selfsigned-issuer
      namespace: ${NAMESPACE:?}
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: local-serving-cert
      namespace: ${NAMESPACE:?}
    spec:
      dnsNames:
      - local-webhook-service.alloydb-omni-system.svc
      - local-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: local-selfsigned-issuer
      secretName: local-webhook-server-cert
    EOF

    NAMESPACE을 연산자가 있는 네임스페이스로 바꿉니다(예: alloydb-omni-system).

OLM

OLM을 사용하여 Red Hat OpenShift 환경에 AlloyDB Omni 연산자를 설치하려면 Red Hat OpenShift 웹 콘솔에 로그인하세요.

  1. 운영자 > OperatorHub를 선택합니다.

  2. 검색 필드를 사용하여 AlloyDB Omni 연산자를 찾습니다.

    AlloyDB Omni Operator 허브
    그림 1: OperatorHub의 AlloyDB Omni 연산자
  3. AlloyDB Omni 연산자 창에서 설치를 클릭합니다.

    AlloyDB Omni Operator 창
    그림 2: AlloyDB Omni 연산자 창
  4. AlloyDB Omni 연산자를 설치한 후 클러스터에서 cert-manager 리소스를 수동으로 만듭니다. 이는 필수 절차입니다. 다음 명령어를 사용합니다.

    kubectl create ns ${NAMESPACE:?}
    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: fleet-selfsigned-issuer
      namespace: ${NAMESPACE:?}
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: fleet-serving-cert
      namespace: ${NAMESPACE:?}
    spec:
      dnsNames:
      - fleet-webhook-service.alloydb-omni-system.svc
      - fleet-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: fleet-selfsigned-issuer
      secretName: fleet-webhook-server-cert
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: local-selfsigned-issuer
      namespace: ${NAMESPACE:?}
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: local-serving-cert
      namespace: ${NAMESPACE:?}
    spec:
      dnsNames:
      - local-webhook-service.alloydb-omni-system.svc
      - local-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: local-selfsigned-issuer
      secretName: local-webhook-server-cert
    EOF

    NAMESPACE을 연산자가 있는 네임스페이스로 바꿉니다(예: alloydb-omni-system).

GDC connected 스토리지 구성

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

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

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

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

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

Kubernetes 클러스터에 AlloyDB Omni 연산자를 설치한 후 다음과 유사한 매니페스트를 적용하여 Kubernetes 클러스터에 AlloyDB Omni 데이터베이스 클러스터를 만들 수 있습니다.

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: "15.12.0"
  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).

  • DB_CLUSTER_NAMESPACE(선택사항): 데이터베이스 클러스터를 만들려는 네임스페이스입니다(예: my-db-cluster-namespace).

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

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

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

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

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

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

다음 단계