최신 버전의 AlloyDB Omni Kubernetes 연산자로 마이그레이션

이 페이지에서는 AlloyDB Omni 연산자를 업그레이드하는 방법을 설명합니다. Kubernetes에서 AlloyDB Omni를 업그레이드하는 단계는 현재 AlloyDB Omni 버전과 업그레이드할 버전에 따라 다릅니다.

시작하기 전에

AlloyDB Omni 연산자를 업그레이드하면 다음 조건이 모두 충족되지 않는 한 데이터베이스가 다시 시작됩니다.

  • AlloyDB Omni 연산자 버전 1.1.1을 최신 버전으로 업그레이드합니다.
  • AlloyDB Omni 데이터베이스 버전 15.5.5 이상을 사용하고 있습니다.
  • AlloyDB AI가 사용 설정되어 있지 않습니다.

데이터베이스가 다시 시작되면 데이터 손실은 발생하지 않습니다.

AlloyDB Omni 데이터베이스 버전 15.7.1부터 Kubernetes 기반 AlloyDB Omni 데이터베이스 클러스터의 고가용성 (HA)은 새로운 아키텍처를 사용하여 HA 자동 설정, 장애 조치, 복구 기능을 강화하고 개선합니다.

AlloyDB Omni 데이터베이스 버전을 15.7.0 이하에서 15.7.1 이상으로 업그레이드하거나 버전을 다운그레이드하는 경우 업그레이드하기 전에 HA를 사용 중지하고 업그레이드가 완료된 후 HA를 다시 사용 설정해야 합니다.

현재 버전 확인

데이터베이스 클러스터에서 사용하는 AlloyDB Omni 버전을 확인하려면 다음 명령어를 실행합니다.

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE -o jsonpath='{.status.primary.currentDatabaseVersion}'

다음을 바꿉니다.

  • DB_CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다. 이는 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다.

  • NAMESPACE: 데이터베이스 클러스터의 Kubernetes 네임스페이스입니다.

AlloyDB Omni 연산자의 버전 1.0.0 이상을 실행하는 경우 이 명령어는 데이터베이스 클러스터에서 사용하는 AlloyDB Omni 버전을 출력합니다.

Kubernetes 클러스터에 설치된 AlloyDB Omni 연산자의 버전을 확인하려면 다음 명령어를 실행합니다.

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE -o jsonpath='{.status.primary.currentControlPlaneAgentsVersion}'

AlloyDB Omni 연산자의 버전 1.0.0 이상을 실행하는 경우 출력은 Kubernetes 클러스터에서 실행 중인 AlloyDB Omni 연산자의 버전 번호입니다.

1.0.0 이전 버전의 AlloyDB Omni 연산자를 실행하는 경우 1.0.0 이전 AlloyDB Omni 연산자에서 업그레이드의 안내를 따르세요. 그렇지 않으면 타겟 버전 번호 확인을 계속 진행합니다.

대상 버전 번호 확인

AlloyDB Omni 연산자 1.0.0 이상 버전을 실행하는 경우 다음 단계는 업그레이드하려는 AlloyDB Omni 버전에 따라 다릅니다. AlloyDB Omni 버전 번호는 다음 구성요소로 구성됩니다.

  • PostgreSQL 호환성의 주요 버전 번호
  • PostgreSQL 호환성의 마이너 버전 번호
  • 이 AlloyDB Omni 출시의 패치 버전 번호입니다.

예를 들어 AlloyDB Omni 버전 15.7.1은 PostgreSQL 버전 15.7을 지원하며 AlloyDB Omni 출시 패치가 없습니다.

대상 버전에 적합한 설치 옵션을 선택합니다.

설치 시나리오 단계 업데이트
최신 버전의 PostgreSQL을 지원하는 AlloyDB Omni 버전으로 업그레이드하려고 합니다. AlloyDB Omni 연산자와 데이터베이스 클러스터를 업그레이드합니다. 특정 PostgreSQL 마이너 버전을 지원하는 각 AlloyDB Omni 출시 세트에는 자체 AlloyDB Omni 연산자 버전 번호가 있으며, 이 번호는 AlloyDB Omni 버전의 출시 노트에서 확인할 수 있습니다. AlloyDB Omni 연산자 버전 호환성 표를 사용하여 AlloyDB Omni 연산자 버전이 연산자 버전과 호환되는지 확인합니다.
AlloyDB Omni의 최신 패치 버전으로만 업그레이드하려고 합니다. 데이터베이스 클러스터만 업그레이드합니다. 업그레이드하기 전에 AlloyDB Omni 연산자 버전 호환성 표출시 노트를 확인하여 AlloyDB Omni 연산자도 업데이트해야 하는지 확인합니다.
기타 모든 시나리오 AlloyDB Omni 연산자 업그레이드의 단계를 따릅니다.

AlloyDB Omni 연산자 업그레이드

AlloyDB Omni 연산자를 업그레이드하려면 다음 단계를 따르세요.

  1. 환경 변수를 정의합니다.

    export GCS_BUCKET=alloydb-omni-operator
    export OPERATOR_VERSION=OPERATOR_VERSION
    export HELM_PATH=$OPERATOR_VERSION/alloydbomni-operator-$OPERATOR_VERSION.tgz

    OPERATOR_VERSION를 업그레이드하려는 AlloyDB Omni 연산자 버전(예: 1.4.0)으로 바꿉니다.

  2. 최신 AlloyDB Omni 연산자를 다운로드합니다.

    gsutil cp -r gs://$GCS_BUCKET/$HELM_PATH ./
    tar -xvzf alloydbomni-operator-${OPERATOR_VERSION}.tgz
  3. 최신 AlloyDB Omni 연산자 커스텀 리소스 정의를 적용합니다.

    kubectl apply -f alloydbomni-operator/crds
  4. AlloyDB Omni 연산자 Helm 차트를 업그레이드합니다.

    helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m

데이터베이스 클러스터 업데이트

dbCluster를 업데이트하려면 다음 단계를 따르세요.

  1. HA AlloyDB Omni 데이터베이스 클러스터를 데이터베이스 버전 15.7.0 이하에서 버전 15.7.1 이상으로 업그레이드하는 경우 클러스터의 매니페스트에서 numberOfStandbys0로 설정하고 매니페스트를 다시 적용하여 HA를 사용 중지합니다.

    spec:
      availability:
        numberOfStandbys: 0
    

    이전 버전에서 버전 15.7.0 이하로 업그레이드하거나 버전 15.7.1 이상에서 최신 버전으로 업그레이드하는 경우에는 HA를 사용 중지할 필요가 없습니다.

  2. 클러스터 매니페스트에서 databaseVersioncontrolPlaneAgentsVersion 버전을 업데이트하고 매니페스트를 다시 적용합니다.

    다음은 databaseVersion 버전 15.7.1 및 controlPlaneAgentsVersion 버전 1.4.0을 지정하는 매니페스트 파일의 일부입니다.

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
    spec:
      databaseVersion: "15.7.1"
      controlPlaneAgentsVersion: "1.4.0"
    ...
  3. 업그레이드가 완료될 때까지 기다립니다.

  4. 업그레이드 전에 HA를 사용 중지한 경우 클러스터의 매니페스트에서 numberOfStandbys를 업그레이드 전 숫자로 다시 설정하고 매니페스트를 다시 적용하여 HA를 다시 사용 설정할 수 있습니다.

alloydb_omni_instance_postgresql_wait_time_second_total 업데이트

alloydb_omni_instance_postgresql_wait_time_second_total 측정항목을 사용하는 경우 alloydb_omni_instance_postgresql_wait_time_us_total로 업데이트해야 합니다. 두 측정항목을 모두 사용하려면 Prometheus OR 연산자를 사용하세요.

(promQL A) OR (promQL A, but replace all occurrences of alloydb_omni_instance_postgresql_wait_time_second_total to alloydb_omni_instance_postgresql_wait_time_us_total)

이 측정항목의 단위로 seconds를 사용하는 경우 us로 변환해야 합니다.

자세한 내용은 출시 노트를 참조하세요.