如需了解有关将 AlloyDB Omni 安装到标准 Linux 环境的说明,请参阅安装 AlloyDB Omni。
概览
如需将 AlloyDB Omni 部署到 Kubernetes 集群,请安装 AlloyDB Omni Kubernetes 操作器(一种由 Google 提供的 Kubernetes API 扩展程序)。
您可以通过将声明性清单文件与 kubectl 实用程序配对来配置和控制基于 Kubernetes 的 AlloyDB Omni 数据库集群,就像任何其他基于 Kubernetes 的部署一样。您不会使用 AlloyDB Omni CLI,因为它旨在用于部署到单个 Linux 机器,而不是部署到 Kubernetes 集群。
基础映像
从 1.5.0 版开始,AlloyDB Omni 操作器 Kubernetes 映像基于 Red Hat 的通用基础映像 (UBI) 9 构建。这项迁移可提高部署的安全性、一致性和合规性。
SHA 摘要映像参考
为防止供应链攻击并满足 OpenShift 认证要求,AlloyDB Omni 操作器对所有容器映像引用使用 SHA-256 摘要,而不是版本标记。
自动升级:AlloyDB Omni 操作器使用内部 ImageCatalog 来管理这些摘要,并确保在升级失败时可靠地回滚数据平面。
启用:虽然 OpenShift Certified 软件包默认启用摘要引用,但 OLM 或 Helm 软件包的用户可以通过以下方式手动启用摘要引用:使用 OLM 的订阅配置或 Helm 图表中的
enableDigestImageRefs值,将ENABLE_DIGEST_IMAGE_REFS环境变量设置为true。
准备工作
在通过 AlloyDB Omni 操作器将 AlloyDB Omni 安装到 Kubernetes 集群之前,请先确保您满足以下要求。
选择下载或安装选项
在通用 Kubernetes 集群上管理工作负载时,您可以使用 Helm 或 OLM。Helm 是一种通用软件包管理器,可使用 Helm 图表在所有 Kubernetes 变体中安装任何工作负载,包括运算符。OLM 是 OpenShift 平台上的标准首选方案,可通过专门的 OLM 软件包管理操作器生命周期。
根据您的环境和工具,选择以下部署方法之一:
| 媒体 | 下载位置及安装指南 | 部署目标 |
|---|---|---|
| 使用 Helm 图表的 AlloyDB Omni 操作器 | 在 Kubernetes 上安装 AlloyDB Omni | 自备 Kubernetes 容器环境 - 例如,本地、公有云、GKE、Amazon EKS 和 Azure AKS。 提示:如果您的 CD(持续交付)工具与 Helm 集成,请使用此选项。 |
| AlloyDB Omni 操作器及 OLM 软件包 | OperatorHub.io | 自备 Kubernetes 容器环境 - 例如,本地、公有云、Google Kubernetes Engine、Amazon EKS 和 Azure AKS。 如需使用 OLM 软件包,请先在 Kubernetes 集群上安装 OLM,然后再安装运算符。如需了解详情,请访问 olm.operatorframework.io。 提示:如果您的 CD(持续交付)工具已使用 OLM,请选择此选项。 |
| OpenShift 操作器及 OLM 软件包 | OpenShift Container Platform Web 控制台 | OpenShift 环境 OpenShift 是 Kubernetes 的一种变体,使用 OLM 作为其用于打包和部署操作器的标准内置方法。 |
验证访问权限
验证您有权访问以下资源:
- 运行以下软件的 Kubernetes 集群:
- Kubernetes 1.21 版或更高版本。
cert-manager服务。
kubectl实用程序。helm软件包管理系统或 Operator Lifecycle Manager。
满足硬件和软件要求
Kubernetes 集群中的每个节点都必须具有以下内容:
- 至少两个 x86 或 AMD64 CPU。
- 至少 8 GB RAM。
- Linux 内核 4.18 版或更高版本。
- 启用了对照组 (cgroup) v2。
安装 AlloyDB Omni 操作器
您可以使用不同的方法(包括 Helm 和 Operator Lifecycle Manager [OLM])安装 AlloyDB Omni 操作器。
Helm
如需安装 AlloyDB Omni operator,请按照以下步骤操作:
- 从 OCI 注册表安装 AlloyDB Omni 操作器:
helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \ --version 1.7.0 \ --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
OLM
如需使用 Operator Lifecycle Manager 安装 AlloyDB Omni 操作器,请按以下步骤操作:
前往 AlloyDB Omni 操作器页面。
点击 Install(安装)。如果您尚未这样做,请按照说明仅安装 OLM 运算符和 OperatorHub.io 目录。
如果
alloydb-omni-system命名空间尚不存在,请创建该命名空间。kubectl create ns alloydb-omni-system
设置 OLM
OperatorGroup以确保 operator 具有集群级作用域。kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: operator-sdk-og namespace: alloydb-omni-system spec: upgradeStrategy: Default EOF
使用 OLM 订阅资源安装操作器。
kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: my-alloydb-omni-operator namespace: alloydb-omni-system spec: channel: stable name: alloydb-omni-operator source: operatorhubio-catalog sourceNamespace: olm EOF
安装默认证书
ClusterIssuer。如果您使用自定义证书签发者,则此步骤为可选步骤。kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
OLM
如需使用 OLM 在 Red Hat OpenShift 环境中安装 AlloyDB Omni 操作器,请按照以下步骤操作:
- 登录 Red Hat OpenShift Web 控制台。
- 对于离线或断开连接的用户,您必须使用可保留 SHA 摘要的工具(例如
oc image mirror)手动将所需映像镜像到您的私有注册表中。您必须配置ImageDigestMirrorSet,以将从公共gcr.io代码库拉取映像的操作重定向到您的私有注册表。这样可确保 AlloyDB Omni 运算符能够使用其不可变的 SHA256 摘要拉取所需的映像。 在 OpenShift Web 控制台中,依次前往操作器 > OperatorHub。 AlloyDB Omni 操作器列在已认证和社区目录中。
在 AlloyDB Omni 操作器窗格中,点击安装。
安装默认证书
ClusterIssuer。如果您使用自定义证书签发者,则此步骤为可选步骤。kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
配置互联 GDC 存储空间
如需在互联 GDC 上安装 AlloyDB Omni 操作器,您需要执行额外的步骤来配置存储空间,因为互联 GDC 集群未设置默认存储类别。您必须先设置默认存储类别,然后才能创建 AlloyDB Omni 数据库集群。
如需了解如何将 Symcloud Storage 设置为默认存储类别,请参阅将 Symcloud Storage 设置为默认存储类别。
如需详细了解如何更改所有其他存储类别的默认值,请参阅更改默认 StorageClass。
创建数据库集群
AlloyDB Omni 数据库集群包含运行 AlloyDB Omni 服务器所需的所有存储和计算资源,包括主服务器、所有副本以及您的所有数据。
如需创建 AlloyDB Omni 数据库集群,请按照以下步骤操作:
为数据库集群创建专用命名空间;这有助于提高隔离性和安全性。
kubectl create namespace DB_CLUSTER_NAMESPACE将
DB_CLUSTER_NAMESPACE替换为要在其中创建数据库集群的命名空间,例如my-db-cluster-namespace。创建一个名为
db-cluster.yaml的文件,其中包含以下内容:此清单同时定义了数据库密码的 Secret 和 DBCluster 资源本身。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: "17.7.0" # Optional: Specify the base OS type for the database image. # Valid values are "Debian" and "UBI9". # If not specified, the operator defaults to "Debian" for databaseVersion < 16.9.0 # and "UBI9" for databaseVersion 16.9.0 or later. # databaseImageOSType: "OS_TYPE" 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。OS_TYPE:可选。数据库映像的基本操作系统类型。 有效值为Debian和UBI9。如果您未指定此值,则当databaseVersion小于16.9.0时,运算符会自动将其设置为Debian;当databaseVersion为16.9.0或更高版本时,运算符会自动将其设置为UBI9。ENCODED_PASSWORD:默认postgres用户角色的数据库登录密码(以 base64 字符串编码),例如Q2hhbmdlTWUxMjM=表示ChangeMe123。CPU_COUNT:此数据库集群中的每个数据库实例可用的 CPU 数量。MEMORY_SIZE:此数据库集群的每个数据库实例的内存量。建议将此值设置为每个 CPU 8 千兆字节。例如,如果您之前在此清单中将cpu设置为2,则建议将memory设置为16Gi。DISK_SIZE:每个数据库实例的磁盘大小,例如10Gi。
将清单应用于配置集群:
kubectl apply -f db-cluster.yaml
应用此清单后,您的 Kubernetes 集群将包含具有指定内存、CPU 和存储配置的 AlloyDB Omni 数据库集群。如需与新数据库集群建立测试连接,请参阅使用预安装的 psql 进行连接。
如需详细了解 Kubernetes 清单以及如何应用这些清单,请参阅管理资源。