本页面介绍了如何创建 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 时的注意事项。
创建新集群
控制台
前往集群页面。
点击创建集群。
选择集群配置。如需详细了解高可用性配置与基本配置之间的区别,请参阅节点和实例。
如果您不确定新集群是否需要读取池实例,请选择一个不包含读取池的配置。您可以根据需要,在以后随时向集群添加读取池实例。
点击继续。
在配置集群部分的集群 ID 字段中,输入集群的 ID。
在密码字段中,输入新集群的初始密码。AlloyDB 会在创建集群时将所提供的密码分配给
postgres
数据库用户。在数据库版本字段中,选择您希望集群数据库服务器与之兼容的 PostgreSQL 主要版本。
选择区域。 对于开发和沙盒工作负载,请考虑 1 vCPU 机器类型(预览版),该机器类型在部分区域提供。如需了解详情,请参阅使用 1 vCPU 时的注意事项。
选择网络路径。
可选:如需将特定 IP 地址范围应用于此集群,而不是允许 AlloyDB 选择 IP 地址范围,请按以下步骤操作:
点击显示分配的 IP 范围选项。
从分配的 IP 范围列表中选择一个 IP 地址范围。
如需详细了解此选项,请参阅创建具有特定 IP 地址范围的集群。
可选:如需使用客户管理的加密密钥 (CMEK)(而非 Google 管理的加密)对此集群进行加密,请执行以下额外步骤:
点击高级加密选项。
选择客户管理的加密密钥 (CMEK)。
在显示的菜单中,选择一个客户管理的密钥。
Google Cloud 控制台只会在此列表中列出与新集群位于同一 Google Cloud 项目和区域中的密钥。如要使用此列表中未列出的密钥,请点击没看到您的密钥?输入密钥资源名称,然后在显示的对话框中输入密钥的资源名称。
请注意,将 CMEK 与 AlloyDB 搭配使用需要进行一些额外设置。如需了解详情,请参阅将 CMEK 与 AlloyDB 搭配使用。
点击继续。
配置主实例:
- 在实例 ID 字段中,输入主实例的 ID。
选择以下机器系列之一:
- C4A(基于 Google Axion 的机器系列)(预览版)
- N2(基于 x86 的机器系列)。这是默认的机器系列。
选择机器类型。
- C4A 支持 1、4、8、16、32、48、64 和 72 种机器类型或形式。
- N2 支持 2、4、8、16、32、64、96 和 128 机器类型。
如需详细了解如何使用基于 C4A Axion 的机器系列(包括 1 个 vCPU 机器类型),请参阅使用基于 C4A Axion 的机器系列时的注意事项。
可选:为实例设置自定义标志。对于每个标志,请按以下步骤操作:
- 点击添加标志。
- 在新增数据库标志列表中,选择一个标志。
- 为标志提供值。
- 点击完成。
如果您选择没有读取池的集群类型,请点击创建集群。
gcloud
如需使用 gcloud CLI,您可以安装并初始化 Google Cloud CLI,也可以使用 Cloud Shell。
如需创建启用了专用服务访问通道或 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 兼容16
,用于与 PostgreSQL 16 兼容,这是 AlloyDB 支持的默认 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。
可选:如需将特定 IP 地址范围应用于此集群,而不是允许 AlloyDB 选择 IP 地址范围,请提供以下参数:
--allocated-ip-range-name=RANGE
将
RANGE
替换为您希望此集群用于专用服务访问通道的 IP 地址范围的名称。如需详细了解此选项,请参阅创建具有特定 IP 地址范围的集群。
可选:如需使用客户管理的加密密钥 (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。
确认操作是否成功。
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 \
替换以下内容:
INSTANCE_ID
:您所创建的实例的 ID。它必须以小写字母开头,可以包含小写字母、数字和连字符。CPU_COUNT
:您希望实例拥有的 N2 vCPU 数量。默认值为 N2。有效值包括:2
:2 个 vCPU,16 GB RAM4
:4 个 vCPU,32 GB RAM8
:8 个 vCPU,64 GB RAM16
:16 个 vCPU,128 GB RAM32
:32 个 vCPU,256 GB RAM64
:64 个 vCPU,512 GB RAM96
:96 个 vCPU,768 GB RAM128
:128 个 vCPU,864 GB RAM
MACHINE_TYPE
:在部署 N2 机器时,此参数是可选的。如需部署基于 C4A Axion 的机器系列(预览版),或者在 C4A 机器与 N2 机器之间迁移,请选择此参数并设置以下值。将
MACHINE_TYPE
和CPU_COUNT
结合使用时,CPU_COUNT
和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
如需部署 4vCPU 及更高配置的 C4A,请使用后缀
lssd
以启用超快缓存。如需详细了解如何使用基于 C4A Axion 的机器系列(包括 1 个 vCPU 机器类型),请参阅使用基于 C4A Axion 的机器系列时的注意事项。
对于基于 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。
可选:如需将特定 IP 地址范围应用于此实例,并替换在集群级配置的所有 IP 地址范围分配,请提供以下参数:
--allocated-ip-range-override=OVERRIDE_RANGE_NAME
将 OVERRIDE_RANGE_NAME
替换为您想要此实例用于专用服务访问通道的 IP 地址范围的名称,例如 google-managed-services-default
。范围名称必须符合 RFC 1035 的要求。具体而言,名称的长度必须为 1-63 个字符,并且必须与正则表达式 [a-z]([-a-z0-9]*[a-z0-9])?
匹配。
如需详细了解此选项,请参阅创建具有特定 IP 地址范围的实例。
您还可以创建启用了 Private Service Connect 的 AlloyDB 实例。如需了解如何为启用了 Private Service Connect 的集群创建主实例,请参阅创建 AlloyDB 实例。
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_16"
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:
- 启动 Cloud Shell。
设置要应用 Terraform 配置的默认 Google Cloud 项目。
您只需为每个项目运行一次以下命令,即可在任何目录中运行它。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。
准备目录
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。
- 在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须是 TF 文件,例如
main.tf
。在本文档中,该文件称为main.tf
。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- 将示例代码复制到新创建的
main.tf
中。 (可选)从 GitHub 中复制代码。如果 Terraform 代码段是端到端解决方案的一部分,则建议这样做。 - 查看
main.tf
文件,并修改要应用于您环境的示例参数。 - 保存更改。
- 初始化 Terraform。您只需为每个目录执行一次此操作。
(可选)如需使用最新的 Google 提供程序版本,请添加terraform init
-upgrade
选项:terraform init -upgrade
应用更改
- 查看配置,确认 Terraform 更新是否符合您的预期:
根据需要更正配置。terraform plan
- 通过运行以下命令并在提示符处输入
yes
来应用 Terraform 配置: 等待 Terraform 显示terraform apply
Apply complete!
消息。 - 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到相应资源,以确保 Terraform 已创建或更新它们。
REST v1
创建集群
此示例会创建一个集群。 如需查看此调用的完整参数列表,请参阅方法:projects.locations.clusters.create。如需了解集群设置,请参阅查看集群和实例设置。
请勿在集群 ID 中包含敏感信息或个人身份信息,因为它可供外部用户查看。无需在集群名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。
如需发送请求,请将请求正文保存在名为 cluster_request.json
的文件中:
{
"databaseVersion": "DATABASE_VERSION",
"initialUser": {
"user": "INITIAL_USERNAME",
"password": "INITIAL_USER_PASSWORD"
},
"labels": {
"test": "alloydb-cluster-full"
}
}
进行以下替换:
DATABASE_VERSION
:数据库版本的枚举字符串,例如POSTGRES_16
。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 地址范围必须至少为 /24
,并且有足够的可用空间,才能成功创建集群。
如需指定 IP 地址范围,请参阅创建集群中的可选步骤。
如果您未指定范围,AlloyDB 会在创建集群时执行以下操作之一:
如果您有多个可提供专用服务访问通道的 IP 地址范围,AlloyDB 会选择其中一个范围。
如果您在 VPC 中仅设置了一个具有专用服务访问通道的 IP 地址范围,AlloyDB 会将该范围应用于新集群。
如需详细了解如何创建 IP 地址范围以用于 AlloyDB,请参阅启用专用服务访问通道。
创建具有特定 IP 地址范围的实例
与创建具有特定 IP 地址范围的集群类似,您可以创建实例,并为实例指定 IP 地址范围,以替换集群级的所有 IP 地址范围分配。您可以使用 Google Cloud CLI、Terraform 或 REST API 在创建新实例时设置特定的 IP 地址范围。
IP 地址范围必须至少为 /24
,并且有足够的可用空间,才能成功创建实例。如需详细了解如何创建 IP 地址范围以用于 AlloyDB,请参阅启用专用服务访问通道。
如果您在创建实例期间未指定要替换的范围,AlloyDB 会执行以下操作之一:
如果您在创建集群期间设置了可选的已分配 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 时,请注意以下几点:
- 如要部署 C4A 机器系列,您可以使用
MACHINE_TYPE
和CPU_COUNT
,其中CPU_COUNT
必须与MACHINE_TYPE
中cpu-count
的值一致。 - 如要使用 Google Cloud CLI 从 N2 更新到 C4A,您必须更新
MACHINE_TYPE
和CPU_COUNT
,其中CPU_COUNT
必须与MACHINE_TYPE
中cpu-count
的值一致。 - 如要从 C4A 更新到 N2,您必须更新
MACHINE_TYPE
和CPU_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 内存,不支持超快缓存。
- 建议在大小为数十 GB 的小型数据库的开发和沙盒环境中使用 1 vCPU 配置。对于大型数据库及生产环境工作负载,请考虑使用 2 个或更多 vCPU。
- 您可以配置高可用性 (HA),但我们不提供正常运行时间 SLA。
- C4A 机器不支持对 1 vCPU、48 vCPU 和 72 vCPU 配置进行主要版本就地升级。在启动主要版本就地升级之前,请考虑其他升级方法,例如转储和恢复,或尝试扩容。
- 请了解有哪些区域支持 C4A,您可以在这些区域中部署 1 vCPU 配置。