创建集群及其主实例

本页介绍了如何创建 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. Database version 字段中,选择您希望集群的数据库服务器与之兼容的 PostgreSQL 主要版本。

  8. 选择区域。对于开发和沙盒工作负载,请考虑使用 1 vCPU 规格(处于预览版阶段),该规格在部分地区提供。如需了解详情,请参阅使用 1 vCPU 时的注意事项

  9. 选择网络路径。

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

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

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

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

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

    1. 点击高级加密选项

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

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

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

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

    4. 点击继续

  12. 配置主实例:

    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 个机器类型或形状。

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

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

      1. 点击添加标志
      2. New database flag(新数据库标志)列表中,选择一个标志。
      3. 为标志提供值。
      4. 点击完成
  13. 如果您选择的集群类型不包含读取池,请点击创建集群

gcloud

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

  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 版本

      • 16,以便与 PostgreSQL 16 兼容

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

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

    • --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,该 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 \
        --cpu-count=CPU_COUNT \
        --machine-type=MACHINE_TYPE \
        --region=REGION_ID \
        --cluster=CLUSTER_ID \
        --project=PROJECT_ID \
        --allowed-psc-projects=ALLOWED_PROJECT_LIST

替换以下内容:

  • INSTANCE_ID:您要创建的实例的 ID。必须以小写字母开头,可以包含小写字母、数字和连字符。
  • CPU_COUNT:您希望实例具有的 N2 vCPU 数量。默认值为 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_TYPE:在部署 N2 机器时,此参数是可选的。如需部署基于 Axion 的 C4A 机器系列(预览版),或在 C4A 和 N2 机器之间迁移,请选择此参数并使用以下值。

    MACHINE_TYPECPU_COUNT 搭配使用时,CPU_COUNTMACHINE_TYPE 中的值必须匹配,否则会出现错误。

    对于基于 Axion 的 C4A 机器系列,请选择具有以下值的机器类型:

    • 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

    如需部署具有 4 个 vCPU 或更高 vCPU 的 C4A,请使用后缀 lssd 来启用超快缓存。

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

    对于基于 x86 的 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
  • REGION_ID:您希望实例所在的区域。

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

  • PROJECT_ID:集群所在的项目的 ID

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

Terraform

如需创建集群,请使用 Terraform 资源

以下代码段基于 AlloyDB 集群完整示例创建集群:

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

  initial_user {
    user     = "postgres"
    password = "postgres"
  }

  continuous_backup_config {
    enabled              = true
    recovery_window_days = 14
  }

  automated_backup_policy {
    location      = "us-central1"
    backup_window = "1800s"
    enabled       = true

    weekly_schedule {
      days_of_week = ["MONDAY"]

      start_times {
        hours   = 23
        minutes = 0
        seconds = 0
        nanos   = 0
      }
    }

    quantity_based_retention {
      count = 1
    }

    labels = {
      test = "alloydb-cluster-backup-policy-labels"
    }
  }

  labels = {
    test = "alloydb-cluster-labels"
  }
}

data "google_project" "project" {}

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

准备 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

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

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

在使用任何请求数据之前,请先进行以下替换:

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

  • NETWORK:您为 AlloyDB 配置了专用服务访问权限的 VPC 网络的名称。

  • DATABASE_VERSION:数据库版本的枚举字符串,例如 POSTGRES_15

  • INITIAL_USERNAME:要为默认 postgres 用户使用的用户名。

  • INITIAL_USER_PASSWORD:要为默认 postgres 用户使用的密码。

请求 JSON 正文如下所示:

{
  clusterId = "CLUSTER_ID"
  network = "projects/PROJECT_ID/global/networks/NETWORK"
  databaseVersion = "DATABASE_VERSION"

  initialUser {
    user     = "INITIAL_USERNAME"
    password = "INITIAL_USER_PASSWORD"
  }

  continuousBackupConfig {
    enabled              = true
    recoveryWindowDays = 14
  }

  weeklySchedule {
    daysOfWeek = ["MONDAY"]

      startTimes {
        hours   = 23
        minutes = 0
        seconds = 0
        nanos   = 0
      }
  }

    quantityBasedRetention {
      count = 1
    }

    labels = {
      test = "alloydb-cluster-full"
    }
  }
}

如需发送请求,请将请求正文保存在名为 request.json 的文件中,然后使用以下 POST 请求:

  POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters

克隆活跃集群

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

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

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

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

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

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

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

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

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

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

如需详细了解如何创建要与 AlloyDB 搭配使用的 IP 地址范围,请参阅启用专用服务访问通道

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

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

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

  • 如需部署 C4A 机器系列,您可以使用 MACHINE_TYPECPU_COUNT,其中 CPU_COUNT 必须与 MACHINE_TYPE 中的 cpu-count 值匹配。
  • 如需使用 Google Cloud CLI 从 N2 更新为 C4A,您必须更新 MACHINE_TYPECPU_COUNT,其中 CPU_COUNT 必须与 MACHINE_TYPE 中的 cpu-count 值一致。
  • 如需从 C4A 更新为 N2,您必须更新 MACHINE_TYPECPU_COUNT,其中 CPU_COUNT 必须与 MACHINE_TYPE 中的 cpu-count 值匹配。

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,仅用于开发和沙盒用途。对于生产环境工作负载,请选择 2 个或更多 vCPU。

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

  • 1 个 vCPU 提供 8 GB 内存,不支持超高速缓存。
  • 对于开发环境和沙盒环境,建议配置 1 个 vCPU,因为数据库大小较小,只有几十 GB。对于较大的数据库和生产环境工作负载,请考虑使用 2 个 vCPU 或更高。
  • 您可以配置高可用性 (HA),但不提供正常运行时间服务等级协议 (SLA)。
  • C4A 机器的 1 vCPU、48 vCPU 和 72 vCPU 不支持就地升级主要版本。在启动就地主要版本升级之前,请考虑其他升级方法(例如转储和恢复),或尝试扩容。
  • 请参阅支持 C4A 且可部署 1 vCPU 的区域。

后续步骤