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

本页介绍了如何将 AlloyDB Omni 操作系统从 1.0.0 版升级到 1.1.0 版。

在 Kubernetes 中升级 AlloyDB Omni 的步骤取决于您运行的 AlloyDB Omni 版本以及升级到的版本。

确定当前的版本号

Kubernetes

如需检查数据库集群使用的 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 Operator 的版本,请运行以下命令:

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 的版本号。

如果您运行的是低于 1.0.0 的 AlloyDB Omni Operator 版本,请按照从 1.0.0 之前的 AlloyDB Omni Operator 升级中的说明操作。

否则,请继续阅读检查目标版本号部分。

检查您的目标版本号

Kubernetes

如果您运行的是 AlloyDB Omni Operator 1.0.0 或更高版本,则后续步骤取决于您要升级到的 AlloyDB Omni 版本。这反过来又需要了解 AlloyDB Omni 的版本号。

AlloyDB Omni 版本号包含以下组成部分:

  • 其 PostgreSQL 兼容性的主要版本号
  • 其 PostgreSQL 兼容性的次要版本号
  • 此 AlloyDB Omni 版本的补丁版本号

例如,AlloyDB Omni 版本 15.5.5 是支持 PostgreSQL 版本 15.5 的 AlloyDB Omni 的补丁版本 5。

如果您想升级到支持较新版本 PostgreSQL 的 AlloyDB Omni 版本,则必须同时升级 AlloyDB Omni Operator 本身和数据库集群。每组支持特定 PostgreSQL 次要版本的 AlloyDB Omni 版本都有自己的 AlloyDB Omni Operator 版本号,您可以在 AlloyDB Omni 版本的版本说明中找到该版本号。

如果您只想升级到较新版本的 AlloyDB Omni 补丁,则只需升级数据库集群,而无需升级 AlloyDB Omni Operator 本身。

否则,请继续阅读升级 AlloyDB Omni Operator 部分。

升级 AlloyDB Omni Operator

Kubernetes

如需升级 AlloyDB Omni Operator,请按以下步骤操作:

  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.1.0

  2. 下载最新的 AlloyDB Omni Operator:

    gsutil cp -r gs://$GCS_BUCKET/$HELM_PATH ./
    tar -xvzf alloydbomni-operator-${OPERATOR_VERSION}.tgz
  3. 应用最新的 AlloyDB Omni Operator 自定义资源定义:

    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

完成 AlloyDB Omni Operator 的升级后,请按照执行就地升级中的说明创建新的数据库集群。

如果您的 AlloyDB Omni 集群是使用 AlloyDB Omni Operator 1.0.0 创建的,请先将 controlPlaneAgentsVersion 字段添加到清单并将其设置为 1.1.0,然后再将集群升级到 15.5.5 版。否则,系统会显示以下错误:

admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.5 and/or control plane agents version 1.0.0

包含 controlPlaneAgentsVersion 字段的示例清单如下所示:

apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: DB_CLUSTER_NAME
spec:
  databaseVersion: "15.5.5"
  controlPlaneAgentsVersion: "1.1.0"
...