配置
通过 目录、Cloud Databases CLI 插件、 Cloud Databases API、Terraform 或预建、开源和企业就绪的 Terraform IBM 模块(TIM) 提供 IBM Cloud® Databases for Redis 部署。
通过 IBM Cloud 控制台进行供应
通过指定以下参数从控制台进行部署。
服务详细信息
托管模型
- 隔离: 为复杂的高性能企业工作负载提供安全的单租户产品。
- 共享: 灵活的多租户产品,用于动态,微调和分离的容量选择。
有关更多信息,请参阅 托管模型。
资源分配
对资源分配进行微调。 可用选项因所选托管模型而异。
- 隔离: 使用表来选择部署的每个成员的机器大小,并指定磁盘大小。
- 共享: 缺省情况下,将选择最小的可能资源分配。 这是小型应用程序或测试的理想选择。 对于较大的分配,请选择 定制 磁贴,这将允许使用 2 + 核心进行灵活的资源配置。
共享计算托管模式支持更细粒度的资源分配,但为了保持清晰,用户界面中不显示这些资源分配。 有关详细信息,请参阅 托管模型。
根据您的需求指定磁盘大小。 可以在供应后增大此值,但不能减小此值以防止数据丢失。
服务配置
- 数据库版本: 仅在部署时设置- 数据库的部署版本。 要确保最佳性能,请运行首选版本。 将自动使用最新的次版本。 有关更多信息,请参阅 数据库版本控制策略。
- 加密 [仅在部署时设置]'{: tag-red}- 如果使用'Key Protect,则可选择一个实例和密钥来加密部署磁盘。 如果不使用自己的密钥,那么部署会自动创建和管理自己的磁盘加密密钥。
- 端点- 在部署中配置 服务端点。 默认设置为专用。
选择相应设置后,单击 创建 以启动供应过程。
通过 CLI 供应
通过 CLI 创建服务实例
在供应之前,请遵循文档中提供的指示信息来安装 IBM Cloud CLI 工具。
-
登录到 IBM Cloud。 如果使用联合用户 ID,请务必改用一次性密码 (
ibmcloud login --sso) 或使用 API 密钥 (ibmcloud --apikey key or @key_file) 进行身份验证。 有关如何使用 CLI 登录的更多信息,请参阅ibmcloud login下的 常规 CLI(ibmcloud)命令。ibmcloud login -
选择 托管模型,您希望在该模型上配置数据库。 您可以稍后更改此内容。
-
通过运行类似如下的命令,在 IBM Cloud 中创建 Databases for Redis 共享服务实例:
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_NAME> <SERVICE_PLAN_NAME> <LOCATION> <RESOURCE_GROUP> -p `{"members_host_flavor": "multitenant"}` --service-endpoints="<ENDPOINT>"例如,要配置 Databases for Redis 共享计算托管模型实例,请使用类似命令:
ibmcloud resource service-instance-create test-database databases-for-redis standard us-south -p '{"members_host_flavor": "multitenant", "members_memory_allocation_mb": "8192"}' --service-endpoints="private"提供一个具有相同
"members_host_flavor"-p 参数的 Databases for Redis 隔离实例,并将其设置为所需的隔离大小。 表 2 列出了可用的主机大小及其members_host_flavor value参数。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。ibmcloud resource service-instance-create test-database databases-for-redis standard us-south -p `{"members_host_flavor": "b3c.4x16.encrypted"}` --service-endpoints="private"下面的表中描述了该命令中的字段。
基本命令格式字段 字段 描述 标志 INSTANCE_NAME需要实例名称可以是任何字符串,是网络和 CLI 中用于标识新部署的名称。 SERVICE_NAME需要服务的名称或标识。 对于 Databases for Redis,请使用 databases-for-redis。SERVICE_PLAN_NAME需要标准计划 ( standard)LOCATION需要您要部署的位置。 要检索区域列表,请使用 ibmcloud regions命令。RESOURCE_GROUP资源组名称。 默认值为 default。-g --parameters用于创建服务实例的参数的 JSON 文件或 JSON 字符串 -p members_host_flavor要配置隔离或共享计算实例,请使用 {"members_host_flavor": "<members_host_flavor value>"}。 对于共享计算,请指定multitenant。 对于隔离计算,选择所需的 CPU 和 RAM 配置。 有关详细信息,请参阅下表或 托管模式。--service-endpoints需要配置部署的 服务端点, public、private或public-and-private均可。在 CLI 中,
service-endpoints是一个标志,而不是参数。members host flavor参数members_host_flavor参数定义计算大小。 输入所需大小的相应值。 要供应共享计算实例,请指定multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。成员主机风味大小参数 成员主持风味 members_host_flavor 值 共享计算 multitenant4 个 CPU x 16 RAM b3c.4x16.encrypted8 个 CPU x 32 RAM b3c.8x32.encrypted8 个 CPU x 64 RAM m3c.8x64.encrypted16 个 CPU x 64 RAM b3c.16x64.encrypted32 个 CPU x 128 RAM b3c.32x128.encrypted30 个 CPU x 240 RAM m3c.30x240.encrypted您将看到类似如下的响应:
Creating service instance INSTANCE_NAME in resource group default of account USER... OK Service instance INSTANCE_NAME was created. Name: INSTANCE_NAME ID: crn:v1:bluemix:public:databases-for-redis:us-east:a/ 40ddc34a846383BGB5b60e:dd13152c-fe15-4bb6-af94-fde0af5303f4:: GUID: dd13152c-fe15-4bb6-af94-fde0af56897 Location: LOCATION State: provisioning Type: service_instance Sub Type: Public Service Endpoints: private Allow Cleanup: false Locked: false Created at: 2023-06-26T19:42:07Z Updated at: 2023-06-26T19:42:07Z Last Operation: Status create in progress Message Started create instance operation- 要检查配置状态,请使用以下命令:
ibmcloud resource service-instance <INSTANCE_NAME>完成后,您将看到类似如下的响应:
Retrieving service instance INSTANCE_NAME in resource group default under account USER's Account as USER... OK Name: INSTANCE_NAME ID: crn:v1:bluemix:public:databases-for-redis:us-east:a/40ddc34a953a8c02f109835656860e:dd13152c-fe15-4bb6-af94-fde0af5303f4:: GUID: dd13152c-fe15-4bb6-af94-fde5654765 Location: <LOCATION> Service Name: databases-for-redis Service Plan Name: standard Resource Group Name: default State: active Type: service_instance Sub Type: Public Locked: false Service Endpoints: private Created at: 2023-06-26T19:42:07Z Created by: USER Updated at: 2023-06-26T19:53:25Z Last Operation: Status create succeeded Message Provisioning redis with version 12 (100%)- (可选) 删除服务实例。 运行类似命令删除实例:
ibmcloud resource service-instance-delete <INSTANCE_NAME_OR_CRN>
Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 磁盘自动缩放可用。 如果您已配置隔离实例或从自动扩展部署切换过来,请使用 IBM Cloud® Monitoring 整合 查看资源情况,它提供内存、磁盘空间和磁盘 I/O 利用率指标。 要向实例添加资源,请手动缩放部署。
--parameters 参数
service-instance-create 命令支持 -p 标志,该标志允许将 JSON 格式的参数传递到供应过程。 例如,您可以将云资源名称 (CRN) 作为参数值传递,它可以唯一标识云中的资源。 所有参数名称和值都作为字符串传递。
例如,如果数据库是根据特定备份调配的,新数据库部署的三个成员共需要 12 GB 内存,那么为每个成员调配 4 GB 内存的命令如下:
ibmcloud resource service-instance-create databases-for-redis <SERVICE_NAME> standard us-south \
-p \ '{
"backup_id": "crn:v1:blue:public:databases-for-redis:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
"members_memory_allocation_mb": "4096"
}' --service-endpoints="private"
通过资源控制器 API 进行供应
执行以下步骤以使用 资源控制器 API进行供应。
-
您需要知道要部署到的资源组的标识。 此信息可通过 IBM Cloud CLI 获取。
使用类似如下的命令:
ibmcloud resource groups -
您需要了解要部署到的区域。
要列出可从当前区域供应部署的所有区域,请使用 Cloud Databases CLI 插件。
该命令如下所示:
ibmcloud cdb regions --json -
选择 托管模型,您希望在该模型上配置数据库。 您可以稍后更改此内容。
主机味道代表有保证资源分配的固定大小。 要查看您所在地区提供哪些主机风味,请像这样调用 主机风味能力端点:
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/capability/flavors \
-H 'Authorization: Bearer <>' \
-H 'ContentType: application/json' \
-d '{
"deployment": {
"type": "postgresql",
"location": "us-south"
},
}'
这将返回:
{
"deployment": {
"type": "postgresql",
"location": "us-south",
"platform": "classic"
},
"capability": {
"flavors": [
{
"id": "b3c.4x16.encrypted",
"name": "4x16",
"cpu": {
"allocation_count": 4
},
"memory": {
"allocation_mb": 16384
},
"hosting_size": "xs"
},
{
"id": "b3c.8x32.encrypted",
"name": "8x32",
"cpu": {
"allocation_count": 8
},
"memory": {
"allocation_mb": 32768
},
"hosting_size": "s"
},
{
"id": "m3c.8x64.encrypted",
"name": "8x64",
"cpu": {
"allocation_count": 8
},
"memory": {
"allocation_mb": 65536
},
"hosting_size": "s+"
},
{
"id": "b3c.16x64.encrypted",
"name": "16x64",
"cpu": {
"allocation_count": 16
},
"memory": {
"allocation_mb": 65536
},
"hosting_size": "m"
},
{
"id": "b3c.32x128.encrypted",
"name": "32x128",
"cpu": {
"allocation_count": 32
},
"memory": {
"allocation_mb": 131072
},
"hosting_size": "l"
},
{
"id": "m3c.30x240.encrypted",
"name": "30x240",
"cpu": {
"allocation_count": 30
},
"memory": {
"allocation_mb": 245760
},
"hosting_size": "xl"
},
{
"id": "multitenant",
"name": "multitenant",
"cpu": {
"allocation_count": 0
},
"memory": {
"allocation_mb": 0
},
"hosting_size": ""
}
]
}
}
如图所示,Databases for PostgreSQL区域中的 us-south 实例可用的隔离计算主机风味有
b3c.4x16.encryptedb3c.8x32.encryptedm3c.8x64.encryptedb3c.16x64.encryptedb3c.32x128.encryptedm3c.30x240.encrypted
要将实例调配或扩展到 4 个 CPU 和 16384 兆内存,请使用新的 members_host_flavor 提交扩展命令:
{
"parameters": {
"members_host_flavor": "b3c.4x16.encrypted"
}
}
```
To scale your instance up to 8 CPUs and `32768` megabytes of RAM, submit a scale command with a new `members_host_flavor`:
```sh {: pre}
{
"parameters": {
"members_host_flavor": "<members_host_flavor_value>"
}
}
-
获取所有信息后,使用 IBM Cloud 资源控制器 供应新的资源实例。
curl -X POST \ https://resource-controller.cloud.ibm.com/v2/resource_instances \ -H 'Authorization: Bearer <>' \ -H 'Content-Type: application/json' \ -d '{ "name": "my-instance", "target": "<region>", "resource_group": "5g9f447903254bb58972a2f3f5a4c711", "resource_plan_id": "databases-for-redis-standard" "parameters": { "members_host_flavor": "<members_host_flavor_value>", "service_endpoints": "<ENDPOINT>", "version": "<version>" } }'例如,要创建共享计算实例,请按照以下示例操作:
curl -X POST \ https://resource-controller.cloud.ibm.com/v2/resource_instances \ -H "Authorization: Bearer <>" \ -H 'Content-Type: application/json' \ -d '{ "name": "my-instance", "target": "us-south", "resource_group": "5g9f447903254bb58972a2f3f5a4c711", "resource_plan_id": "databases-for-redis-standard" "parameters": { "members_host_flavor": "multitenant", "service_endpoints": "private", "members_memory_allocation_mb": 16384, "members_cpu_allocation_count": 4 } }'
提供一个具有相同 "members_host_flavor" 参数的 Databases for Redis 隔离实例,并将其设置为所需的隔离大小。 表 2 列出了可用的主机大小及其 members_host_flavor value 参数。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。
请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。
curl -X POST \
https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H "Authorization: Bearer <>" \
-H 'Content-Type: application/json' \
-d '{
"name": "my-instance",
"target": "us-south",
"resource_group": "5g9f447903254bb58972a2f3f5a4c711",
"resource_plan_id": "databases-for-redis-standard"
"parameters": {
"member_host_flavor": "b3c.4x16.encrypted",
"service_endpoints":"private"
}
}'
参数 name,target,resource_group 和 resource_plan_id 都是必需的。
下面的表中描述了该命令中的字段。
| 字段 | 描述 | 标志 |
|---|---|---|
NAME 需要 |
实例名称可以是任何字符串,是网络和 CLI 中用于标识新部署的名称。 | |
SERVICE_NAME 需要 |
服务的名称或标识。 对于 Databases for Redis,请使用 databases-for-redis。 |
|
SERVICE_PLAN_NAME 需要 |
标准计划 (standard) |
|
target 需要 |
您要部署的目标位置。 要检索区域列表,请使用 ibmcloud regions 命令。 |
|
SERVICE_ENDPOINTS_TYPE |
配置部署的 服务端点,public 或 private 均可。 默认值为 public。 |
|
RESOURCE_GROUP |
资源组名称。 默认值为 default。 |
-g |
--parameters |
用于创建服务实例的参数的 JSON 文件或 JSON 字符串 | -p |
members_host_flavor |
要配置隔离或共享计算实例,请使用 {"members_host_flavor": "<members_host_flavor value>"}。 对于共享计算,请指定 multitenant。 对于隔离计算,选择所需的 CPU 和 RAM 配置。 有关详细信息,请参阅下表或 托管模式。 |
|
service_endpoints 需要 |
配置部署的 服务端点,public、private 或 public-and-private 均可。 |
host flavor 参数
members_host_flavor 参数定义计算大小。 要供应共享计算实例,请指定 multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。
| 成员主持风味 | members_host_flavor 值 |
|---|---|
| 共享计算 | multitenant |
| 4 个 CPU x 16 RAM | b3c.4x16.encrypted |
| 8 个 CPU x 32 RAM | b3c.8x32.encrypted |
| 8 个 CPU x 64 RAM | m3c.8x64.encrypted |
| 16 个 CPU x 64 RAM | b3c.16x64.encrypted |
| 32 个 CPU x 128 RAM | b3c.32x128.encrypted |
| 30 个 CPU x 240 RAM | m3c.30x240.encrypted |
Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 磁盘自动缩放可用。 如果您已配置隔离实例或从自动扩展部署切换过来,请使用 IBM Cloud® Monitoring 整合 查看资源情况,它提供内存、磁盘空间和磁盘 I/O 利用率指标。 要向实例添加资源,请手动缩放部署。
附加参数列表
-
backup_id-要从中复原的备份资源的 CRN。 备份必须由具有相同服务标识的数据库部署创建。 在供应后装入备份,并启动使用该数据的新部署。 备份 CRN 的格式为crn:v1:<...>:backup:<uuid>。 如果省略,那么会将数据库配置为空。 -
version-要供应的数据库的版本。 如果省略,那么将使用最新的主版本和次版本创建数据库。 -
disk_encryption_key_crn- KMS 密钥的 CRN(例如、Key Protect ),然后用于磁盘加密。 KMS 密钥 CRN 的格式为crn:v1:<...>:key:<id>。 -
backup_encryption_key_crn- KMS 密钥的 CRN(例如、Key Protect ),然后用于备份加密。 KMS 密钥 CRN 的格式为crn:v1:<...>:key:<id>。要将密钥用于备份,必须首先 启用服务到服务委派。
-
members_memory_allocation_mb-要在数据库中的数据库成员之间共享的内存总量。 例如,如果值为 "8192",并且有两个数据库成员,那么部署总共获得 8 GB 内存,每个成员获得 4 GB 内存。 如果省略,那么将使用数据库类型的缺省值。 此参数仅适用于“多租户”。 -
members_disk_allocation_mb-要在数据库中的数据库成员之间共享的磁盘总量。 例如,如果值为 "30720",并且有三个成员,那么部署将获得总计 30 GB 的磁盘,从而为每个成员提供 10 GB 的磁盘。 如果省略,那么将使用数据库类型的缺省值。 此参数仅适用于“多租户”。 -
members_cpu_allocation_count- 为部署启用并分配指定数量的内核。 例如,要对每个成员使用两个专用核心,请使用"members_cpu_allocation_count":"2"。 如果省略,将应用默认的共享计算 CPU:RAM 比例。 此参数仅适用于“多租户”。
使用 Terraform 进行供应
使用 Terraform 管理基础架构,ibm_database Resource for Terraform 支持调配 Cloud Databases 部署。 另外,也可以使用 Terraform IBM 模块,通过 Terraform IBM 模块用于 Databases for Redis 管理基础设施。
选择 托管模型,您希望在该模型上配置数据库。 您可以稍后更改此内容。
提供一个 Databases for Redis 共享托管模型实例,并将 "host_flavor" 参数设置为 multitenant。 请参阅以下示例:
data "ibm_resource_group" "group" {
name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
name = "<your_database_name>"
plan = "standard"
location = "eu-gb"
service = "databases-for-redis"
resource_group_id = data.ibm_resource_group.group.id
service_endpoints = "private"
tags = ["tag1", "tag2"]
adminpassword = "password12"
group {
group_id = "member"
host_flavor {
id = "multitenant"
},
cpu {
allocation_count = 3
}
memory {
allocation_mb = 8192
}
disk {
allocation_mb = 256000
}
}
users {
name = "user123"
password = "password12"
}
allowlist {
address = "172.168.1.1/32"
description = "desc"
}
}
output "ICD Etcd database connection string" {
value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}
提供一个具有相同 "host_flavor" 参数的 Databases for Redis 隔离实例,并将其设置为所需的隔离大小。 表 1 列出了可用的主机大小及其 host_flavor value 参数。 例如,{"host_flavor": "b3c.4x16.encrypted"}。
请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。
data "ibm_resource_group" "group" {
name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
name = "<your_database_name>"
plan = "standard"
location = "eu-gb"
service = "databases-for-redis"
resource_group_id = data.ibm_resource_group.group.id
service_endpoints = "private"
tags = ["tag1", "tag2"]
adminpassword = "password12"
group {
group_id = "member"
host_flavor {
id = "b3c.8x32.encrypted"
}
disk {
allocation_mb = 256000
}
}
users {
name = "user123"
password = "password12"
}
allowlist {
address = "172.168.1.1/32"
description = "desc"
}
}
output "ICD Etcd database connection string" {
value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}
在现有实例上执行 Terraform 脚本之前,请使用 terraform plan 命令将当前基础结构状态与 Terraform 文件中定义的期望状态进行比较。 对 resource_group_id,service plan,version,key_protect_instance,key_protect_key 和 backup_encryption_key_crn 属性的任何更改都会重新创建实例。 有关具有 Forces new resource 规范的当前自变量引用的列表,请参阅 ibm_database Terraform Registry。
host flavor 参数
host_flavor 参数定义计算大小。 要供应共享计算实例,请指定 multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。
| 主机味道 | host_flavor 值 |
|---|---|
| 共享计算 | multitenant |
| 4 个 CPU x 16 RAM | b3c.4x16.encrypted |
| 8 个 CPU x 32 RAM | b3c.8x32.encrypted |
| 8 个 CPU x 64 RAM | m3c.8x64.encrypted |
| 16 个 CPU x 64 RAM | b3c.16x64.encrypted |
| 32 个 CPU x 128 RAM | b3c.32x128.encrypted |
| 30 个 CPU x 240 RAM | m3c.30x240.encrypted |
Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 磁盘自动缩放可用。 如果您已配置隔离实例或从自动扩展部署切换过来,请使用 IBM Cloud® Monitoring 整合 查看资源情况,它提供内存、磁盘空间和磁盘 I/O 利用率指标。 要向实例添加资源,请手动缩放部署。