在单个 GCE 虚拟机上部署 AlloyDB Omni

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 项目

  1. 在 Google Cloud 控制台的项目选择器页面上,选择或创建一个 Google Cloud 项目。
  2. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。

启动 Cloud Shell

虽然您可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。

用于激活 Cloud Shell 的图标

  1. 打开 Google Cloud 控制台,然后点击右上角工具栏中的 Cloud Shell 图标。您还可以通过以下任一方式打开 Cloud Shell:
    • 如果您使用的是 Google Cloud 控制台,请依次按下 G 键和 S 键。
    • 点击此链接。

预配并连接到环境通常需要一些时间。此操作完成后,您会看到类似如下内容:

Google Cloud Shell 终端显示环境已连接{: width="624"}

3. 创建 Compute Engine 虚拟机

在本部分中,您将使用 gcloud 命令行工具创建一个 Compute Engine (GCE) 虚拟机 (VM)。您使用的是 Rocky Linux 9 映像,该映像与 AlloyDB Omni RPM 完全兼容。

  1. 为项目 ID、虚拟机名称、可用区和地区定义环境变量。
    export PROJECT="your-project-id"
    export INSTANCE_NAME="alloydb-omni-vm"
    export ZONE="us-central1-c"
    export REGION="us-central1"
    
  2. 使用您的 Google Cloud 账号用户登录,并配置默认项目。
    gcloud auth login
    gcloud config set project $PROJECT
    
  3. 创建防火墙规则,以允许通过 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"
    
  4. 由于虚拟机是在没有公共 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
    
  5. 确保您的 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
    
  6. 创建具有所需规格(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
    
  7. 创建虚拟机后,验证虚拟机的状态。
    gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
    

4. 准备虚拟机

在本部分中,您将连接到新创建的虚拟机并准备操作系统环境,包括设置数据目录和配置 SELinux。

  1. 使用 Identity-Aware Proxy (IAP) 通过 SSH 连接到虚拟机。由于虚拟机没有公共 IP 地址,因此 gcloud 会自动通过 IAP 建立 SSH 连接隧道。
    gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap
    
  2. 在虚拟机上为数据目录和 AlloyDB Omni 代码库网址定义环境变量。将该网址替换为您从注册表单中收到的网址。
    export PGDATA="/var/lib/alloydbomni"
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    
  3. 创建 AlloyDB Omni 将在其中存储数据库文件的数据目录。
    sudo mkdir -p $PGDATA
    
  4. 安装 policycoreutils-python-utils 软件包,以便配置 SELinux 政策,从而允许 AlloyDB Omni 数据库服务正常运行。
    sudo dnf install -y policycoreutils-python-utils
    

5. 安装 AlloyDB Omni

准备好虚拟机后,您现在可以配置软件包仓库并安装 AlloyDB Omni RPM 软件包。

  1. 通过创建代码库配置文件,在虚拟机上配置 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
    
  2. 更新 YUM 缓存,确保系统能够识别新代码库。
    sudo yum makecache
    
    注意:对于 AlloyDB Omni RPM 预览版,软件包完整性是在各个 RPM 级别进行验证的。如需继续进行 YUM 代码库配置,请配置 repo_gpgcheck=0。
  3. 安装 AlloyDB Omni RPM 软件包的版本 18。
    sudo dnf install -y alloydbomni18
    

6. 设置 AlloyDB Omni

安装 RPM 软件包后,您需要初始化、配置并启动 AlloyDB Omni 数据库服务。

  1. 为 PostgreSQL postgres 管理员用户定义一个安全系数高的密码。
    export PGPASSWORD="YourStrongPassword123!"
    
  2. 初始化 AlloyDB Omni 数据库实例。
    sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  3. 配置 SELinux 文件上下文,以允许 AlloyDB Omni 服务在自定义数据目录中读取和写入数据,然后恢复正确的安全上下文。
    sudo setenforce 0
    
  4. 准备 AlloyDB Omni 数据库实例。
    sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    
  5. (可选)为了优化 AlloyDB Omni 服务的执行,请运行宿主设置实用程序以自动配置建议的内核和内存设置。
    sudo /usr/lib/postgresql/18/bin/alloydbomni18-setup-host
    
  6. 启用并启动 AlloyDB Omni systemd 服务。
    sudo systemctl enable alloydbomni18
    sudo systemctl start alloydbomni18
    
  7. 验证 AlloyDB Omni 服务是否处于活跃状态并成功运行。
    sudo systemctl status alloydbomni18
    
    验证输出是否指示 Active: active (running)。

7. 验证 AlloyDB Omni

如需验证单节点 AlloyDB Omni 数据库是否正常运行,请使用随软件包安装的标准 PostgreSQL 客户端 (psql) 连接到该数据库。

  1. 以 postgres 用户身份连接到本地数据库实例。系统会提示您输入之前配置的密码。
    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres -W
    
  2. 连接建立后,运行基本的 SQL 查询,以验证数据库服务器版本并验证 AlloyDB Omni 是否正在运行。
    postgres=# SELECT version();
    
    生成的输出表明 PostgreSQL 18 正在与 AlloyDB Omni 一起运行。
  3. 输入 \q 退出 psql 提示。

8. 清理和调查

完成本 Codelab 后,您可以清理 Google Cloud 资源,以免产生不必要的费用。

  1. 断开与虚拟机的 SSH 会话,返回到本地 Cloud Shell 终端。
    exit
    
  2. 删除 Compute Engine 虚拟机实例。
    gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet
    
  3. 删除为 SSH 访问创建的防火墙规则。
    gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet
    
  4. 删除 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 概览。

10. 调查问卷

您打算如何使用本教程?

仅通读 阅读并完成练习