创建集群及其主实例

本页面介绍了如何创建 AlloyDB 集群及其主实例。

准备工作

  • 您使用的 Google Cloud 项目必须已启用才能访问 AlloyDB
    • 您使用的 Google Cloud 项目中的 VPC 网络必须已针对 AlloyDB 专用服务访问通道进行了配置
    • 您必须在所使用的Google Cloud 项目中拥有以下 IAM 角色之一:
      • roles/alloydb.admin(AlloyDB Admin 预定义 IAM 角色)
      • roles/owner(Owner 基本 IAM 角色)
      • roles/editor(Editor 基本 IAM 角色)
    • 如果您没有上述任何角色,请与组织管理员联系以申请访问权限。
    • 您还必须在所使用的Google Cloud 项目中拥有 compute.networks.list 权限。如需获得此权限,同时遵循最小权限原则,请让管理员向您授予 Compute Network User (roles/compute.networkUser) 角色。
    • 对于开发和沙盒工作负载,请考虑区域和机器类型。 如果您打算使用 1 vCPU 机器类型,请确保您选择的区域支持该机器类型。如需了解详情,请参阅使用 1 vCPU 时的注意事项

创建新集群和主实例

控制台

  1. 前往集群页面。

    转到集群

  2. 点击创建集群

  3. 选择集群配置。如需详细了解高可用性配置与基本配置之间的区别,请参阅节点和实例

    如果您不确定新集群是否需要读取池实例,请选择一个不包含读取池的配置。您可以根据需要,在以后随时向集群添加读取池实例。

  4. 点击继续

  5. 配置集群部分的集群 ID 字段中,输入集群的 ID。

  6. 密码字段中,输入新集群的初始密码。AlloyDB 会在创建集群时将所提供的密码分配给 postgres 数据库用户。

  7. 可选:如需手动设置 alloydb.iam_authentication 标志,请取消选中创建 IAM 数据库用户。如需了解详情,请参阅修改实例

    默认情况下,系统会选择创建 IAM 数据库用户,该选项会执行以下操作:

    • 在主实例上启用 alloydb.iam_authentication 标志。

    • 为您创建 IAM 数据库用户。

  8. 数据库版本字段中,选择您希望集群数据库服务器与之兼容的 PostgreSQL 主要版本。

  9. 选择区域。 对于开发和沙盒工作负载,请考虑 1 vCPU 机器类型,该机器类型在部分区域提供。如需了解详情,请参阅使用 1 vCPU 时的注意事项

  10. 选择网络路径。

  11. 可选:如需将特定 IP 地址范围应用于此集群,而不是允许 AlloyDB 选择 IP 地址范围,请按以下步骤操作:

    1. 点击显示分配的 IP 范围选项

    2. 分配的 IP 范围列表中选择一个 IP 地址范围。

    如需详细了解此选项,请参阅创建具有特定 IP 地址范围的集群

  12. 可选:如需使用客户管理的加密密钥 (CMEK)(而非 Google 管理的加密)对此集群进行加密,请执行以下额外步骤:

    1. 点击高级加密选项

    2. 选择客户管理的加密密钥 (CMEK)

    3. 在显示的菜单中,选择一个客户管理的密钥。

      Google Cloud 控制台只会在此列表中列出与新集群位于同一 Google Cloud 项目和区域中的密钥。如要使用此列表中未列出的密钥,请点击没看到您的密钥?输入密钥资源名称,然后在显示的对话框中输入密钥的资源名称。

      请注意,将 CMEK 与 AlloyDB 搭配使用需要进行一些额外设置。如需了解详情,请参阅将 CMEK 与 AlloyDB 搭配使用

    4. 点击继续

  13. 配置主实例:

    1. 实例 ID 字段中,输入主实例的 ID。
    2. 选择以下机器系列之一:

      • C4A(基于 Google Axion 的机器系列)
      • N2(基于 x86 的机器系列)。这是默认的机器系列。
    3. 选择机器类型。如需了解详情,请参阅选择机器类型

      • C4A 支持 1、4、8、16、32、48、64 和 72 种机器类型或形式。
      • N2 支持 2、4、8、16、32、64、96 和 128 种机器类型或形式。

      如需详细了解如何使用基于 C4A Axion 的机器系列(包括 1 个 vCPU 机器类型),请参阅使用基于 C4A Axion 的机器系列时的注意事项

    4. 可选:为实例设置自定义标志。对于每个标志,请按以下步骤操作:

      1. 点击添加标志
      2. 新增数据库标志列表中,选择一个标志。
      3. 为标志提供值。
      4. 点击完成
  14. 如果您选择没有读取池的集群类型,请点击创建集群

gcloud

如需使用 gcloud CLI,您可以安装并初始化 Google Cloud CLI,也可以使用 Cloud Shell

您必须先创建 AlloyDB 集群和主实例,然后才能开始使用 AlloyDB。

创建集群

  1. 如需创建启用了专用服务访问通道或 Private Service Connect 的集群,请使用 gcloud alloydb clusters create 命令。

    专用服务访问通道

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --network=NETWORK

    Private Service Connect

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --enable-private-service-connect 

    替换以下内容:

    • CLUSTER_ID:您所创建的集群的 ID。它必须以小写字母开头,可以包含小写字母、数字和连字符。

    • VERSION:您希望集群数据库服务器与之兼容的 PostgreSQL 主要版本。请按以下方式之一操作:

      • 14,用于与 PostgreSQL 14 兼容

      • 15,用于与 PostgreSQL 15 兼容,这是支持的默认 PostgreSQL 版本

      • 17,用于与 PostgreSQL 17(预览版)兼容

        如需详细了解使用预览版 PostgreSQL 17 需遵循的限制,请参阅预览版 PostgreSQL 17 兼容性

    • PASSWORD:要用于默认 postgres 用户的密码。

    • NETWORK(可选):针对 AlloyDB 专用服务访问通道配置的 VPC 网络的名称。如果省略 --network 标志,AlloyDB 会使用 default 网络。

      对于共享 VPC 网络,请设置为 VPC 网络的完全限定路径,例如 projects/cymbal-project/global/networks/shared-vpc-network

    • --enable-private-service-connect(可选):设置后可启用 Private Service Connect 作为集群及其实例的连接方法。

    • REGION_ID:您要将集群放置在其中的区域。

    • PROJECT_ID:您要将集群放置在其中的项目的 ID。

    此命令会启动一个长时间运行的操作,并返回操作 ID。

  2. 可选:如需将特定 IP 地址范围应用于此集群,而不是允许 AlloyDB 选择 IP 地址范围,请提供以下参数:

    --allocated-ip-range-name=RANGE
    

    RANGE 替换为您希望此集群用于专用服务访问通道的 IP 地址范围的名称。

    如需详细了解此选项,请参阅创建具有特定 IP 地址范围的集群

  3. 可选:如需使用客户管理的加密密钥 (CMEK)(而非默认的 Google 管理的加密)对此集群进行加密,请提供以下参数:

    --kms-key=KEY_ID \
    --kms-keyring=KEYRING_ID \
    --kms-location=LOCATION_ID \
    --kms-project=PROJECT_ID
    

    请替换以下内容:

    • KEY_ID:要使用的 CMEK 密钥的 ID。

    • KEYRING_ID:密钥的密钥环的 ID。

    • LOCATION_ID:密钥环区域的 ID,该区域必须与集群区域相同。

    • PROJECT_ID:密钥环项目的 ID。

  4. 确认操作是否成功。

    gcloud alloydb operations describe OPERATION_ID \
        --region=REGION_ID \
        --project=PROJECT_ID

    OPERATION_ID 替换为从上一步返回的操作 ID。

创建主集群后,您必须创建主实例。

创建主实例

如需创建主实例,请使用 gcloud alloydb instances create 命令。

    gcloud alloydb instances create INSTANCE_ID \
        --instance-type=PRIMARY \
        --region=REGION_ID \
        --cluster=CLUSTER_ID \
        --project=PROJECT_ID \
        --cpu-count=CPU_COUNT \
        --machine-type=MACHINE_TYPE \
        --allowed-psc-projects=ALLOWED_PROJECT_LIST

替换以下内容:

  • INSTANCE_ID:您所创建的实例的 ID。它必须以小写字母开头,可以包含小写字母、数字和连字符。

  • REGION_ID:您要将实例放置在其中的区域。

  • CLUSTER_ID:您之前创建的集群的 ID。

  • PROJECT_ID:在其中创建了集群的项目的 ID。

  • CPU_COUNT:您希望实例拥有的 vCPU 数量。

    • 您必须指定 cpu_countmachine_type
    • 如果仅提供 cpu_count,则会创建具有以下规范的 N2 实例:
      • 2:2 个 vCPU,16 GB RAM
      • 4:4 vCPU、32 GB RAM
      • 8:8 vCPU、64 GB RAM
      • 16:16 个 vCPU,128 GB RAM
      • 32:32 vCPU,256 GB RAM
      • 64:64 个 vCPU,512 GB RAM
      • 96:96 个 vCPU,768 GB RAM
      • 128:128 个 vCPU,864 GB RAM
    • 如果同时提供了 machine_typecpu_count,则 cpu_count 值必须与 machine_type 中指定的 vCPU 数量保持一致。例如,如果 machine_typen2-highmem-4,则必须将 cpu_count 设置为 4
  • MACHINE_TYPE:实例的机器类型。 如需了解详情,请参阅选择 AlloyDB 机器类型

    • 对于基于 C4A Axion 的机器系列,以下是有效值:

      • c4a-highmem-1
      • c4a-highmem-4-lssd
      • c4a-highmem-8-lssd
      • c4a-highmem-16-lssd
      • c4a-highmem-32-lssd
      • c4a-highmem-48-lssd
      • c4a-highmem-64-lssd
      • c4a-highmem-72-lssd
    • 对于 N2 机器系列,以下是有效值:

      • n2-highmem-2
      • n2-highmem-4
      • n2-highmem-8
      • n2-highmem-16
      • n2-highmem-32
      • n2-highmem-64
      • n2-highmem-96
      • n2-highmem-128
    • machine_typecpu_count 结合使用时,cpu_countmachine_type 中的值必须匹配。例如,如果 machine_typen2-highmem-4,则必须将 cpu_count 设置为 4

  • ALLOWED_PROJECT_LIST:(可选)如果您使用的是 Private Service Connect,ALLOWED_PROJECT_LIST 是您要允许访问实例的项目 ID 或项目编号的英文逗号分隔列表。

Terraform

创建集群和主实例

如需创建集群及其主实例,请使用 Terraform 资源

以下是基于 AlloyDB 实例完整示例创建集群和主实例的代码段:

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  depends_on = [google_service_networking_connection.vpc_connection]
}

resource "google_alloydb_cluster" "cluster_abc" {
  cluster_id       = "alloydb-cluster"
  location         = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }
  database_version = "POSTGRES_16"
  initial_user {
    password = "alloydb-cluster"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-network"
}

resource "google_compute_global_address" "private_ip_alloc" {
  name          = "alloydb-cluster"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_service_networking_connection" "vpc_connection" {
  network                 = google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}

此示例会创建一个 N2 实例。如需创建 C4A 实例,请在 machine_config 结构中使用 machine_type 字段,如以下示例所示:

machine_config {
  machine_type = "c4a-highmem-4-lssd" 
}

准备 Cloud Shell

如需在 Google Cloud 项目中应用 Terraform 配置,请按以下方式准备 Cloud Shell:

  1. 启动 Cloud Shell
  2. 设置要应用 Terraform 配置的默认 Google Cloud 项目。

    您只需为每个项目运行一次以下命令,即可在任何目录中运行它。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。

准备目录

每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。

  1. Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须是 TF 文件,例如 main.tf。在本文档中,该文件称为 main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 将示例代码复制到新创建的 main.tf 中。 (可选)从 GitHub 中复制代码。如果 Terraform 代码段是端到端解决方案的一部分,则建议这样做。
  3. 查看 main.tf 文件,并修改要应用于您环境的示例参数。
  4. 保存更改。
  5. 初始化 Terraform。您只需为每个目录执行一次此操作。
    terraform init
    (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade 选项:
    terraform init -upgrade

应用更改

  1. 查看配置,确认 Terraform 更新是否符合您的预期:
    terraform plan
    根据需要更正配置。
  2. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:
    terraform apply
    等待 Terraform 显示 Apply complete! 消息。
  3. 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到相应资源,以确保 Terraform 已创建或更新它们。

REST v1

创建集群

此示例会创建一个集群。 如需查看此调用的完整参数列表,请参阅方法:projects.locations.clusters.create。如需了解集群设置,请参阅查看集群和实例设置

请勿在集群 ID 中包含敏感信息或个人身份信息,因为它可供外部用户查看。无需在集群名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

如需发送请求,请将请求正文保存在名为 cluster_request.json 的文件中:

{
  "databaseVersion": "<var>DATABASE_VERSION</var>",
  "initialUser": {
    "user": "<var>INITIAL_USERNAME</var>",
    "password": "<var>INITIAL_USER_PASSWORD</var>"
  },
  "labels": {
    "test": "alloydb-cluster-full"
  }
}

进行以下替换:

  • DATABASE_VERSION:数据库版本的枚举字符串,例如 POSTGRES_17
  • INITIAL_USERNAME:您用于默认 postgres 用户的用户名。
  • INITIAL_USER_PASSWORD:您用于默认 postgres 用户的密码。

使用以下 HTTP 方法和网址:

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID

进行以下替换:

  • PROJECT_ID:您要将集群放置在其中的项目的 ID。
  • LOCATION_ID:集群区域的 ID。
  • CLUSTER_ID:您创建的集群的 ID。集群 ID 必须以小写字母开头,可以包含小写字母、数字和连字符。

您可以使用以下 curl 命令来执行上述请求:

curl -X POST   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json"   https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID   -d @cluster_request.json

创建主实例

此示例会创建一个主实例。如需查看此调用的完整参数列表,请参阅方法:projects.locations.clusters.instances.create。如需了解集群设置,请参阅查看集群和实例设置

请勿在集群 ID 中包含敏感信息或个人身份信息,因为它可供外部用户查看。无需在集群名称中包含项目 ID,因为系统会在适当的位置(例如在日志文件中)自动包含项目 ID。

如需发送请求,请将以下请求正文保存在名为 instance_request.json 的文件中。

{
  "instance_type": "PRIMARY",
  "machine_config": {
    "cpu_count": "vCPU_COUNT"
  }
}

进行以下替换:

  • VCPU_COUNT:要创建的实例上的可见 CPU 核心数。

上述示例创建了一个具有以下规范的 N2 实例:

  • 2:2 vCPUs、16 GB RAM
  • 4:4 vCPUs, 32 GB RAM
  • 8:8 vCPUs, 64 GB RAM
  • 16:16 vCPUs, 128 GB RAM
  • 32:32 vCPUs, 256 GB RAM
  • 64:64 vCPUs, 512 GB RAM
  • 96:96 vCPUs, 768 GB RAM
  • 128:128 vCPUs, 864 GB RAM

如需创建 C4A 实例,请在 machine_config 结构中使用 machine_type 字段,而不是 cpu_count,如以下示例所示:

machine_config: {
  machine_type : MACHINE_TYPE,
},

对于基于 C4A Axion 的机器系列,请使用以下有效值:

  • c4a-highmem-1
  • c4a-highmem-4-lssd
  • c4a-highmem-8-lssd
  • c4a-highmem-16-lssd
  • c4a-highmem-32-lssd
  • c4a-highmem-48-lssd
  • c4a-highmem-64-lssd
  • c4a-highmem-72-lssd

对于 N2 机器系列,请使用以下有效值:

  • n2-highmem-2
  • n2-highmem-4
  • n2-highmem-8
  • n2-highmem-16
  • n2-highmem-32
  • n2-highmem-64
  • n2-highmem-96
  • n2-highmem-128

使用以下 HTTP 方法和网址:

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID

进行以下替换:

  • PROJECT_ID:您要将集群放置在其中的项目的 ID。
  • LOCATION_ID:集群区域的 ID。
  • CLUSTER_ID:您创建的集群的 ID。该 ID 必须以小写字母开头,可以包含小写字母、数字和连字符。
  • INSTANCE_ID:您要创建的主实例的名称。

您可以使用 curl 执行请求,如以下示例所示:

curl -X POST   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json"   https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID   -d @instance_request.json

克隆活跃集群

如需创建活跃集群的克隆(包含所有源集群数据的副本并在同一区域运行),请对该集群执行时间点恢复。您可以在执行此操作时指定非常近的时间点,例如当前分钟的第一秒。

此过程仅将源集群的数据复制到克隆中,而不会复制源集群的任何配置。如需使用 CMEK 加密克隆的数据,您需要在时间点恢复命令中指定 CMEK 详细信息,即使源集群的数据已使用 CMEK 进行加密也是如此。创建新集群后,您需要添加实例、数据库标志、备份时间表以及满足您需求的任何其他必要配置。

以这种方式创建的集群独立于其来源,其数据在初始复制完成后与源集群的数据没有任何关系。如果您想创建自动跟踪和复制在其源集群中进行的更改的次要集群,请参阅跨区域复制简介

创建具有特定 IP 地址范围的集群

AlloyDB 使用专用服务访问通道,让集群的内部资源能够相互通信。在您创建集群之前,您的虚拟私有云 (VPC) 网络必须至少包含一个配置了专用服务访问通道连接的 IP 地址范围。

如果您的 VPC 网络包含多个配置了专用服务访问通道的 IP 地址范围,您可以选择指定 AlloyDB 为新集群分配的范围。

如需指定 IP 地址范围,请参阅创建集群中的可选步骤。

如果您未指定范围,AlloyDB 会在创建集群时执行以下操作之一:

  • 如果您有多个可提供专用服务访问通道的 IP 地址范围,AlloyDB 会选择其中一个范围。

  • 如果您在 VPC 中仅设置了一个具有专用服务访问通道的 IP 地址范围,AlloyDB 会将该范围应用于新集群。

如需详细了解如何创建 IP 地址范围以用于 AlloyDB,请参阅启用专用服务访问通道

使用基于 C4A Axion 的机器系列时的注意事项

AlloyDB 提供基于 Google Axion(Google 基于 Arm 的自定义处理器)的 C4A 机器系列。C4A 虚拟机 (VM) 有预定义配置可供选择,可提供 1、4、8、16、32、48、64 和 72 个 vCPU,可提供容量最高可达 576 GB 的双倍数据速率 5 (DDR5) 内存。

选择 C4A 时,请注意以下几点:

  • 如需将现有 N2 实例切换为 C4A 实例,请使用 Google Cloud 控制台、gcloud CLI、Terraform 或 API 修改当前实例的 machine_type
  • 请勿删除 N2 实例,而是在同一集群中创建新的 C4A 实例。

以下区域支持 C4A:

  • asia-east1
  • asia-southeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • us-central1
  • us-east1
  • us-east4

使用 1 vCPU 机器类型时的注意事项

AlloyDB 提供 1 vCPU C4A 机器类型,仅用于开发和测试用途。对于生产工作负载,请选择两个或更多 vCPU。

选择 1 vCPU 时,请注意以下限制:

  • 1 vCPU 配置提供 8 GB 内存,不支持超快缓存。
  • 建议在大小为数十 GB 的小型数据库的开发和沙盒环境中使用 1 vCPU 配置。对于大型数据库及生产环境工作负载,请考虑使用 2 个或更多 vCPU。
  • 您可以配置高可用性 (HA),但我们不提供正常运行时间 SLA。
  • 如需了解可以在哪些区域部署 1 vCPU 配置,请参阅 C4A 支持的区域

限制

在 PostgreSQL 17 中,不支持通过将 Cloud SQL for PostgreSQL 备份复制到 AlloyDB 集群来迁移 Cloud SQL for PostgreSQL 实例。

后续步骤