本页介绍了如何创建 AlloyDB 集群及其主实例。
准备工作
- 您使用的 Google Cloud 项目必须已启用对 AlloyDB 的访问权限。
- 您使用的 Google Cloud 项目中的 VPC 网络必须已配置为对 AlloyDB 使用专用服务访问通道。
- 您必须在所使用的 Google Cloud 项目中拥有以下 IAM 角色之一:
roles/alloydb.admin
(AlloyDB 管理员预定义 IAM 角色)roles/owner
(Owner 基本 IAM 角色)roles/editor
(Editor 基本 IAM 角色)
如果您不具备上述任何角色,请与您的 Organization Administrator 联系以请求访问权限。
- 此外,您还必须拥有所用 Google Cloud 项目的
compute.networks.list
权限。如需获得此权限,同时遵循最小权限原则,请让管理员向您授予roles/compute.networkUser
(Compute 网络用户)角色。
创建新集群
控制台
前往集群页面。
点击创建集群。
选择集群配置。如需详细了解高可用性配置和基本配置之间的区别,请参阅节点和实例。
如果您不确定新集群是否需要读取池实例,请选择不包含读取池的配置之一。您可以根据需要稍后向集群添加读取池实例。
点击继续。
在配置集群部分的集群 ID 字段中,输入集群的 ID。
在密码字段中,输入新集群的初始密码。在创建集群时,AlloyDB 会将提供的密码分配给
postgres
数据库用户。在 Database version 字段中,选择您希望集群的数据库服务器与之兼容的 PostgreSQL 主要版本。
选择区域。
选择网络路径。
可选:如需将特定 IP 地址范围应用于此集群,而不是允许 AlloyDB 选择 IP 地址范围,请按以下步骤操作:
点击显示分配的 IP 范围选项。
从已分配的 IP 地址范围列表中,选择一个 IP 地址范围。
如需详细了解此选项,请参阅创建具有特定 IP 地址范围的集群。
可选:如需使用客户管理的加密密钥 (CMEK)(而非 Google 管理的加密)对此集群进行加密,请执行以下额外步骤:
点击高级加密选项。
选择客户管理的加密密钥 (CMEK)。
在显示的菜单中,选择一个客户管理的密钥。
Google Cloud 控制台会将此列表限制为与新集群位于同一 Google Cloud 项目和区域内的密钥。如需使用此列表中未列出的密钥,请点击没有看到您的密钥?请输入密钥资源名称,然后在随即显示的对话框中输入密钥的资源名称。
请注意,若要将 CMEK 与 AlloyDB 搭配使用,需要进行一些额外的设置。如需了解详情,请参阅将 CMEK 与 AlloyDB 搭配使用。
点击继续。
配置主实例:
- 在实例 ID 字段中,输入主实例的 ID。
- 选择机器类型。
- 可选:为您的实例设置自定义标志。对于每个标志,请按以下步骤操作:
- 点击添加标志。
- 在 New database flag(新数据库标志)列表中,选择一个标志。
- 为标志提供值。
- 点击完成。
如果您选择的集群类型不包含读取池,请点击创建集群。否则,请继续下一步操作。
如果您选择了包含读取池的集群类型,请完成以下步骤:
- 点击继续以添加一个或多个读取池实例。
如需添加读取池实例,请执行以下操作:
点击添加读取池。
在读取池实例 ID 字段中,输入读取池实例的 ID。
在节点数字段中,输入节点数。
读取池实例中的节点数决定了实例的总计算容量。
选择机器类型。
可选:为实例设置自定义标志。对于每个标志:
- 点击添加标志。
- 从新数据库标志列表中选择一个标志。
- 为标志提供值。
- 点击完成。
点击添加读取池。
点击创建集群。
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 \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST
替换以下内容:
INSTANCE_ID
:您要创建的实例的 ID。必须以小写字母开头,可以包含小写字母、数字和连字符。CPU_COUNT
:您希望实例具有的 vCPU 数量。有效值包括: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
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 已创建或更新它们。
克隆活跃集群
如需创建活跃集群的克隆(包含所有源集群数据的副本,并在同一区域中运行),请对该集群执行某个时间点恢复。您可以指定最近的时间点,例如当前分钟的第一秒。
此过程仅会将源集群的数据复制到克隆中,而不会复制源集群的任何配置。如需使用 CMEK 加密克隆的数据,您需要在指定时间点恢复命令中指定 CMEK 详细信息,即使源集群的数据已通过 CMEK 加密也是如此。创建新集群后,您需要添加实例、数据库标志、备份时间表以及满足您需求的任何其他必要配置。
以这种方式创建的集群独立于其来源而存在,在初始复制完成后,其数据与来源集群的数据没有任何关系。如果您想创建辅助集群,以自动跟踪和复制其源集群中所做的更改,请参阅跨区域复制简介。
创建具有特定 IP 地址范围的集群
AlloyDB 使用专用服务访问权限,让集群的内部资源能够相互通信。您必须先在 Virtual Private Cloud (VPC) 网络中配置了专用服务访问通道连接的 IP 地址范围至少有一个,然后才能创建集群。
如果您的 VPC 网络包含多个已配置专用服务访问通道的 IP 地址范围,则您可以选择指定 AlloyDB 将分配给新集群的范围。
如需指定 IP 地址范围,请参阅创建集群中的可选步骤。
如果您未指定范围,AlloyDB 会在创建集群时执行以下操作之一:
如果您有多个具有专用服务访问通道的 IP 地址范围,AlloyDB 会选择其中一个范围。
如果您在 VPC 中设置了恰好一个具有专用服务访问权限的 IP 地址范围,AlloyDB 会将该范围应用于新集群。
如需详细了解如何创建要与 AlloyDB 搭配使用的 IP 地址范围,请参阅启用专用服务访问通道。