1. 简介
此 Codelab 演示了如何在单个 Google Compute Engine (GCE) 虚拟机上部署 AlloyDB Omni。完成此 Codelab 后,您将预配一个运行 Rocky Linux 9 的 GCE 虚拟机,并使用官方 RPM 软件包安装 AlloyDB Omni。这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 20 GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证功能。
前提条件
- 通过 Cloud 控制台访问 Google Cloud 项目和 Cloud Shell。
- 已安装并配置 Google Cloud SDK (
gcloud)。如需详细了解如何安装 gcloud,请参阅 gcloud-install
学习内容
- 如何使用
gcloud为 AlloyDB Omni 创建和准备 GCE 虚拟机。 - 如何在单个 Linux 节点上安装 AlloyDB Omni RPM。
- 如何启动和配置 AlloyDB Omni。
- 如何验证本地数据库安装。
所需条件
- 获取指向 AlloyDB Omni RPM 的网址链接。链接会发送到您的电子邮件地址,其中包含代码库网址服务器。初始化以下环境变量,以便在 Codelab 期间随时使用该网址。
export ALLOYDB_OMNI_REPOSITORY_URL="..." - 可正常运行且可访问 Google Cloud 的终端。您可以使用 Cloud Shell 来实现这一目的。
2. 设置和要求
项目设置
创建 Google Cloud 项目
- 在 Google Cloud 控制台的项目选择器页面上,选择或创建一个 Google Cloud 项目。
- 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
启动 Cloud Shell
虽然您可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。

- 打开 Google Cloud 控制台,然后点击右上角工具栏中的 Cloud Shell 图标。您还可以通过以下任一方式打开 Cloud Shell:
- 如果您使用的是 Google Cloud 控制台,请依次按下 G 键和 S 键。
- 点击此链接。
预配并连接到环境通常需要一些时间。此操作完成后,您会看到类似如下内容:
{: width="624"}
3. 创建 Compute Engine 虚拟机
在本部分中,您将使用 gcloud 命令行工具创建一个 Compute Engine (GCE) 虚拟机 (VM)。您使用的是 Rocky Linux 9 映像,该映像与 AlloyDB Omni RPM 完全兼容。
- 为项目 ID、虚拟机名称、可用区和地区定义环境变量。
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-vm" export ZONE="us-central1-c" export REGION="us-central1" - 使用您的 Google Cloud 账号用户登录,并配置默认项目。
gcloud auth login gcloud config set project $PROJECT - 创建防火墙规则,以允许通过 SSH 连接到您的虚拟机。
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - 由于虚拟机是在没有公共 IP 地址的情况下创建的,因此请配置 Cloud Router 和 Cloud NAT 网关,以便虚拟机访问外部软件包代码库并下载所需软件。
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - 确保您的 VPC 网络具有有效的默认互联网网关路由。在某些共享环境或实验环境中,清理脚本有时会移除默认路由。Cloud NAT 需要此路由才能将出站流量转发到互联网。
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - 创建具有所需规格(16 个 vCPU、20 GB 平衡永久性磁盘、Rocky Linux 9)的 Compute Engine 虚拟机实例。为增强安全性,我们使用
--no-address标志来确保虚拟机未分配公共 IP 地址。gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=n2-highmem-16 \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - 创建虚拟机后,验证虚拟机的状态。
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. 准备虚拟机
在本部分中,您将连接到新创建的虚拟机并准备操作系统环境,包括设置数据目录和配置 SELinux。
- 使用 Identity-Aware Proxy (IAP) 通过 SSH 连接到虚拟机。由于虚拟机没有公共 IP 地址,因此
gcloud会自动通过 IAP 建立 SSH 连接隧道。gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - 在虚拟机上为数据目录和 AlloyDB Omni 代码库网址定义环境变量。将该网址替换为您从注册表单中收到的网址。
export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." - 创建 AlloyDB Omni 将在其中存储数据库文件的数据目录。
sudo mkdir -p $PGDATA - 安装
policycoreutils-python-utils软件包,以便配置 SELinux 政策,从而允许 AlloyDB Omni 数据库服务正常运行。sudo dnf install -y policycoreutils-python-utils
5. 安装 AlloyDB Omni
准备好虚拟机后,您现在可以配置软件包仓库并安装 AlloyDB Omni RPM 软件包。
- 通过创建代码库配置文件,在虚拟机上配置 YUM 代码库。
sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - 更新 YUM 缓存,确保系统能够识别新代码库。
注意:对于 AlloyDB Omni RPM 预览版,软件包完整性是在各个 RPM 级别进行验证的。如需继续进行 YUM 代码库配置,请配置sudo yum makecacherepo_gpgcheck=0。 - 安装 AlloyDB Omni RPM 软件包的版本 18。
sudo dnf install -y alloydbomni18
6. 设置 AlloyDB Omni
安装 RPM 软件包后,您需要初始化、配置并启动 AlloyDB Omni 数据库服务。
- 为 PostgreSQL
postgres管理员用户定义一个安全系数高的密码。export PGPASSWORD="YourStrongPassword123!" - 初始化 AlloyDB Omni 数据库实例。
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - 配置 SELinux 文件上下文,以允许 AlloyDB Omni 服务在自定义数据目录中读取和写入数据,然后恢复正确的安全上下文。
sudo setenforce 0 - 准备 AlloyDB Omni 数据库实例。
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - (可选)为了优化 AlloyDB Omni 服务的执行,请运行宿主设置实用程序以自动配置建议的内核和内存设置。
sudo /usr/lib/postgresql/18/bin/alloydbomni18-setup-host - 启用并启动 AlloyDB Omni
systemd服务。sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - 验证 AlloyDB Omni 服务是否处于活跃状态并成功运行。
验证输出是否指示sudo systemctl status alloydbomni18Active: active (running)。
7. 验证 AlloyDB Omni
如需验证单节点 AlloyDB Omni 数据库是否正常运行,请使用随软件包安装的标准 PostgreSQL 客户端 (psql) 连接到该数据库。
- 以
postgres用户身份连接到本地数据库实例。系统会提示您输入之前配置的密码。/usr/lib/postgresql/18/bin/psql -h localhost -U postgres -W - 连接建立后,运行基本的 SQL 查询,以验证数据库服务器版本并验证 AlloyDB Omni 是否正在运行。
生成的输出表明 PostgreSQL 18 正在与 AlloyDB Omni 一起运行。postgres=# SELECT version(); - 输入
\q退出psql提示。
8. 清理和调查
完成本 Codelab 后,您可以清理 Google Cloud 资源,以免产生不必要的费用。
- 断开与虚拟机的 SSH 会话,返回到本地 Cloud Shell 终端。
exit - 删除 Compute Engine 虚拟机实例。
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - 删除为 SSH 访问创建的防火墙规则。
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - 删除 Cloud NAT 网关和 Cloud Router 路由器。
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet
9. 恭喜
恭喜您完成此 Codelab!您已成功在单个 Compute Engine 虚拟机上部署并配置了 AlloyDB Omni。
所学内容
- 如何为 AlloyDB Omni 预配和准备 Compute Engine 虚拟机。
- 如何配置 AlloyDB Omni 软件包代码库并安装 RPM。
- 如何使用
systemd初始化、配置和管理 AlloyDB Omni 数据库服务。 - 如何使用标准 PostgreSQL 工具验证数据库功能。
如需了解详情,请参阅 AlloyDB Omni 概览。