迁移到最新版本的 AlloyDB Omni Kubernetes operator

本页介绍了如何升级 AlloyDB Omni 运维方。在 Kubernetes 中升级 AlloyDB Omni 的步骤取决于您当前的 AlloyDB Omni 版本和要升级到的版本。

准备工作

升级 AlloyDB Omni operator 时,除非满足以下所有条件,否则数据库会重启:

  • 您要将 AlloyDB Omni operator 版本 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 operator 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 operator 1.0.0 或更高版本,则输出为在 Kubernetes 集群上运行的 AlloyDB Omni operator 的版本号。

如果您运行的 AlloyDB Omni operator 版本低于 1.0.0,请按照从 1.0.0 之前的 AlloyDB Omni operator 升级中的说明操作。否则,请继续检查目标版本号

检查您的目标版本号

如果您运行的是 AlloyDB Omni operator 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 operator 和数据库集群。 每组支持特定 PostgreSQL 次要版本的 AlloyDB Omni 版本都有自己的 AlloyDB Omni 运算符版本号,您可以在 AlloyDB Omni 版本的版本说明中找到该版本号。使用 AlloyDB Omni operator 版本兼容性表验证您的 AlloyDB Omni operator 版本是否与您的 operator 版本兼容。
您只想升级到较新的 AlloyDB Omni 补丁版本。 升级数据库集群。在升级之前,请查看 AlloyDB Omni operator 版本兼容性表版本说明,以确定您是否还需要更新 AlloyDB Omni operator。
所有其他场景 按照升级 AlloyDB Omni operator 中的步骤操作。

升级 AlloyDB Omni operator

如需升级 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 Operator 版本,例如 1.4.0

  2. 下载最新的 AlloyDB Omni operator:

    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(或更高版本),请在集群的清单中将 numberOfStandbys 设置为 0,然后重新应用清单以停用 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

如需了解详情,请参阅版本说明