本页介绍了如何创建 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
数据库用户。在 Database version 字段中,选择您希望集群的数据库服务器与之兼容的 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 个机器类型或形状。
如需详细了解如何使用基于 Axion 的 C4A 机器系列(包括 1 vCPU 机器类型),请参阅使用基于 Axion 的 C4A 机器系列时的注意事项。
可选:为您的实例设置自定义标志。对于每个标志,请按以下步骤操作:
- 点击添加标志。
- 在 New database flag(新数据库标志)列表中,选择一个标志。
- 为标志提供值。
- 点击完成。
如果您选择的集群类型不包含读取池,请点击创建集群。
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 兼容,这是受支持的默认 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。
可选:如需将特定 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,该 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 \
--allowed-psc-projects=ALLOWED_PROJECT_LIST
替换以下内容:
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 机器时,此参数是可选的。如需部署基于 Axion 的 C4A 机器系列(预览版),或在 C4A 和 N2 机器之间迁移,请选择此参数并使用以下值。将
MACHINE_TYPE
和CPU_COUNT
搭配使用时,CPU_COUNT
和MACHINE_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
:集群所在的项目的 IDALLOWED_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:
- 启动 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
以下示例将创建一个集群。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_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 内存,不支持超高速缓存。
- 对于开发环境和沙盒环境,建议配置 1 个 vCPU,因为数据库大小较小,只有几十 GB。对于较大的数据库和生产环境工作负载,请考虑使用 2 个 vCPU 或更高。
- 您可以配置高可用性 (HA),但不提供正常运行时间服务等级协议 (SLA)。
- C4A 机器的 1 vCPU、48 vCPU 和 72 vCPU 不支持就地升级主要版本。在启动就地主要版本升级之前,请考虑其他升级方法(例如转储和恢复),或尝试扩容。
- 请参阅支持 C4A 且可部署 1 vCPU 的区域。