시작하기 전에
AlloyDB Omni 연산자를 업그레이드하면 다음 조건이 모두 충족되지 않는 한 데이터베이스가 다시 시작됩니다.
- AlloyDB Omni 연산자 버전 1.1.1을 최신 버전으로 업그레이드합니다.
- AlloyDB Omni 데이터베이스 버전 15.5.5 이상을 사용하고 있습니다.
- AlloyDB AI가 사용 설정되어 있지 않습니다. 자세한 내용은 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
: 데이터베이스 클러스터의 이름입니다. 데이터베이스 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다. 자세한 내용은 Kubernetes에 AlloyDB Omni 설치를 참고하세요.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 버전 16.8.0은 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 연산자를 업그레이드하려면 다음 단계를 따르세요.
환경 변수를 정의합니다.
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.5.0
)으로 바꿉니다.최신 AlloyDB Omni 연산자를 다운로드합니다.
gcloud storage cp -r gs://$GCS_BUCKET/$HELM_PATH ./
tar -xvzf alloydbomni-operator-${OPERATOR_VERSION}.tgz
최신 AlloyDB Omni 연산자 커스텀 리소스 정의를 적용합니다.
kubectl apply -f alloydbomni-operator/crds
AlloyDB Omni 연산자 Helm 차트를 업그레이드합니다.
helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --namespace alloydb-omni-system \ --atomic \ --timeout 5m
버전 1.4.1 이하에서 OpenShift 데이터베이스 클러스터 업데이트
버전 1.5.0부터 AlloyDB Omni 연산자는 OpenShift의 기본 restricted-v2
보안 컨텍스트 제약 조건과 호환됩니다. controlPlaneAgentsVersion
1.5.0 이상을 실행하는 OpenShift의 새 데이터베이스 클러스터의 경우 OpenShift는 데이터베이스 워크로드에 대해 임의 사용자 ID를 삽입합니다. 이전 버전을 실행하는 데이터베이스 클러스터의 경우 데이터베이스 워크로드가 기본 사용자 ID 999
로 계속 실행되어야 합니다.
1.5.0 이전 버전에서 OpenShift의 데이터베이스 클러스터를 업데이트하려면 다음 단계를 따르세요.controlPlaneAgentsVersion
데이터베이스 클러스터의 서비스 계정에
anyuid
보안 컨텍스트 제약 조건을 사용할 수 있는 권한을 부여합니다. 이렇게 하면 데이터베이스 워크로드가 기본 사용자 ID로 실행될 수 있습니다.oc adm policy add-scc-to-user anyuid system:serviceaccount:NAMESPACE:DB_CLUSTER_NAME-sa
openshift.io/scc=anyuid
로 데이터베이스 클러스터에 주석을 답니다. AlloyDB Omni 연산자 버전 1.5.0 이상에서는 이 주석을 인식하고 플랫폼에서 임의 ID를 삽입하도록 허용하는 대신 OpenShift에서 데이터베이스 워크로드를 기본 사용자 ID로 실행합니다.kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE openshift.io/scc=anyuid
단계에 따라 데이터베이스 클러스터를 최신 버전으로 업데이트합니다.
데이터베이스 클러스터 업데이트
dbCluster
을 업데이트하려면 다음 단계를 완료하세요.
데이터베이스 버전 15.7.0 (또는 이전 버전)에서 버전 15.7.1 (또는 이후 버전)로 HA AlloyDB Omni 데이터베이스 클러스터를 업그레이드하는 경우 다음 단계에 따라 HA를 사용 중지하세요.
- 클러스터의 매니페스트에서
numberOfStandbys
를0
로 설정합니다.
spec: availability: numberOfStandbys: 0
- HA를 사용 중지하려면 매니페스트를 다시 적용합니다.
- 클러스터의 매니페스트에서
클러스터의 매니페스트에서
databaseVersion
및controlPlaneAgentsVersion
버전을 업데이트하고 매니페스트를 다시 적용합니다.databaseVersion
버전 16.8.0과controlPlaneAgentsVersion
버전 1.5.0을 지정하는 매니페스트 파일의 일부인 다음 예시를 실행합니다.apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: databaseVersion: "16.8.0" controlPlaneAgentsVersion: "1.5.0" ...
다음 변수를 바꿉니다.
DB_CLUSTER_NAME
: 데이터베이스 클러스터의 이름입니다. 데이터베이스 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다. 자세한 내용은 Kubernetes에 AlloyDB Omni 설치를 참고하세요.NAMESPACE
: 데이터베이스 클러스터의 Kubernetes 네임스페이스입니다.
업그레이드가 완료될 때까지 기다립니다.
업그레이드 전에 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
로 변환해야 합니다.
자세한 내용은 출시 노트를 참조하세요.