配置

通过 目录Cloud Databases CLI 插件Cloud Databases APITerraform 或预建、开源和企业就绪的 Terraform IBM 模块(TIM) 提供 IBM Cloud® Databases for Elasticsearch 部署。

通过 IBM Cloud 控制台进行供应

通过指定以下参数从控制台进行供应。

服务详细信息

  • 服务名称-名称可以是任何字符串,并且是 Web 和 CLI 中用于标识新部署的名称。
  • 资源组- 如果要将服务划分为 资源组,请在此字段中指定资源组。 否则,可以将其保留为缺省值。 有关更多信息,请参阅管理资源组
  • 位置 ——部署的公共云区域。

托管模型

  • 隔离: 面向复杂且高性能的企业工作负载的安全单租户解决方案。
  • 共享型: 灵活的多租户方案,支持动态、精细化且解耦的容量选择。

Databases for Elasticsearch 白金功能仅适用于隔离计算。

有关更多信息,请参阅 托管模型Databases for Elasticsearch 套餐

资源分配

对资源分配进行微调。 可用选项因所选托管模型而异。

  • 隔离: 使用表来选择部署的每个成员的机器大小,并指定磁盘大小。
  • 共享: 缺省情况下,将选择最小的可能资源分配。 这是小型应用程序或测试的理想选择。 对于较大的分配,请选择 定制 磁贴,这将允许使用 2 + 核心进行灵活的资源配置。

共享计算托管模型支持更细颗粒度的资源分配,这些资源分配未显示在 UI 中以保持清晰度。 有关更多信息,请参阅 托管模型

根据您的需求指定磁盘大小。 可以在供应后增大此值,但不能减小此值以防止数据丢失。

服务配置

  • 数据库版本: 仅在部署时设置 数据库的部署版本。 要确保最佳性能,请运行首选版本。 将自动使用最新的次版本。 有关详细信息,请参阅 版本控制政策
  • 数据库版本: 仅在部署时设置 选择要部署的版本。 可选择企业版或白金版。 请注意,白金版仅适用于隔离托管模式。
  • 加密: 仅在部署时设置 如果使用Key Protect,则可以选择一个实例和密钥来加密部署的磁盘。 如果不使用自己的密钥,那么部署会自动创建和管理自己的磁盘加密密钥。
  • 端点: 仅在部署时设置 在部署上配置服务端点。 默认设置为 “私有”

选择相应设置后,单击 创建 以启动供应过程。

通过 CLI 供应

通过 CLI 创建服务实例

在供应之前,请遵循文档中提供的指示信息来安装 IBM Cloud CLI 工具

  1. 登录到 IBM Cloud。 如果您使用的是联合用户 ID,请务必切换到一次性验证码(ibmcloud login --sso ),或使用 API 密钥(ibmcloud --apikey key or @key_file )进行身份验证。 有关如何使用 CLI 登录的更多信息,请参阅 ibmcloud login 下的 “通用 CLI(ibmcloud)命令”

    ibmcloud login
    
  2. 选择要在其中供应数据库的 托管模型。 您可以稍后更改此内容。

  3. 使用以下命令供应数据库:

    ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_NAME> <SERVICE_PLAN_NAME> <LOCATION> <RESOURCE_GROUP> -p '{"members_host_flavor": "<members_host_flavor value>"}' --service-endpoints="<Endpoint>"
    

    例如,要配置 Databases for Elasticsearch 共享计算托管模型实例,请使用类似命令:

    ibmcloud resource service-instance-create test-database databases-for-elasticsearch enterprise us-south -p '{ "backup_id": "<BACKUP_CRN>", "version": "<VERSION_STRING>", "members_memory_allocation_mb": "4096" }' --service-endpoints="private"
    

    提供一个具有相同 "members_host_flavor" -p 参数的 Databases for Elasticsearch 隔离实例,并将其设置为所需的隔离大小。 表 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-elasticsearch enterprise us-south -p '{"members_host_flavor": "b3c.4x16.encrypted"}' --service-endpoints="private"
    

    下面的表中描述了该命令中的字段。

    基本命令格式字段
    字段 描述 标志
    INSTANCE_NAME 需要 实例名称可以是任何字符串,并且是 Web 和 CLI 中用于标识新部署的名称。
    SERVICE_NAME 需要 服务的名称或标识。 对于 Databases for Elasticsearch,请使用 databases-for-elasticsearch
    SERVICE_PLAN_NAME 需要 enterpriseplatinum。 请注意,platinum 需要 isolated 主机味道。
    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 需要 配置部署的 服务端点publicprivatepublic-and-private 均可。

    在 CLI 中,service-endpoints 是一个标志,而不是参数。

members 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

您将看到类似如下的响应:

```text {: codeblock}
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-elasticsearch:us-south: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
```
- To check provisioning status, use the following command:

  ```sh {: pre}
  ibmcloud resource service-instance <INSTANCE_NAME>
  ```
  When complete, you will see a response like:

  ```text {: codeblock}
  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-elasticsearch:us-south:a/40ddc34a953a8c02f109835656860e:dd13152c-fe15-4bb6-af94-fde0af5303f4::
  GUID:                  dd13152c-fe15-4bb6-af94-fde5654765
  Location:              <LOCATION>
  Service Name:          databases-for-elasticsearch
  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 elasticsearch with version 7.17 (100%)
  ```
- Optional: To delete a service instance, run the following command:

  ```sh {: pre}
  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-elasticsearch <INSTANCE_NAME> enterprise us-south \
-p \ '{
  "backup_id": "crn:v1:blue:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "members_memory_allocation_mb": "4096"
}' --service-endpoints="private"

通过资源控制器 API 进行供应

请按照以下步骤使用 Resource Controller API 进行调配。

  1. 获取 来自 API 令牌的 IAM 令牌

  2. 您需要知道要部署到的资源组的标识。 此信息可通过 IBM Cloud CLI 获取。

    使用类似如下的命令:

    ibmcloud resource groups
    
  3. 您需要知道要部署到哪个地区。

    要列出可从当前区域供应部署的所有区域,请使用 Cloud Databases CLI 插件

    该命令如下所示:

    ibmcloud cdb regions --json
    
  4. 选择要在其中供应数据库的 托管模型。 您可以稍后更改此内容。

    主机类型模板表示保证资源分配的固定大小。 要查看区域中可用的主机类型模板,请调用 主机类型模板功能端点,如下所示:

    curl -X POST  https://api.{region}.databases.cloud.ibm.com/v5/ibm/capability/flavors  \
      -H 'Authorization: Bearer <>' \
      -H 'ContentType: application/json' \
      -d '{
        "deployment": {
          "type": "elasticsearch",
          "location": "us-south"
        }
      }'
    

    这将返回:

    {
      "deployment": {
        "type": "elasticsearch",
        "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 Elasticsearch区域中的 us-south 实例可用的隔离计算主机风味有

    • b3c.4x16.encrypted
    • b3c.8x32.encrypted
    • m3c.8x64.encrypted
    • b3c.16x64.encrypted
    • b3c.32x128.encrypted
    • m3c.30x240.encrypted

    要供应实例或将实例扩展至 4 CPU 以及 16384 兆字节或 RAM,请提交以下命令:

    {
      "parameters": {
        "members_host_flavor": "`b3c.4x16.encrypted`"
      }
    }
    

    要将实例扩展至 8 个 CPU 和 32768 兆字节 RAM,请提交以下命令:

    {
      "parameters": {
        "members_host_flavor": "b3c.8x32.encrypted"
      }
    }
    
  5. 获取所有信息后,使用 IBM Cloud 资源控制器 供应新的资源实例

    curl -X POST \
      https://resource-controller.cloud.ibm.com/v2/resource_instances \
      -H "Authorization: Bearer <TOKEN>" \
      -H 'Content-Type: application/json' \
        -d '{
        "name": "<INSTANCE_NAME>",
        "target": "<targeted-region>",
        "resource_group": "RESOURCE_GROUP_ID",
        "resource_plan_id": "<SERVICE_PLAN_NAME>"
        "parameters": {
            "members_host_flavor": "<members_host_flavor_value>",
            "service_endpoints":" <ENDPOINT>",
            "version":"<VERSION>"
        }
      }'
    

    要创建共享计算实例,请遵循以下示例。 请注意,Elasticsearch的高级版本不适用于共享计算。

    curl -X POST \
      https://resource-controller.cloud.ibm.com/v2/resource_instances \
      -H "Authorization: Bearer <TOKEN>" \
      -H 'Content-Type: application/json' \
        -d '{ \
        "name": "my-instance", \
        "target": "us-south", \
        "resource_group": "<RESOURCE_GROUP_ID>", \
        "resource_plan_id": "<SERVICE_PLAN_NAME>", \
        "parameters": {
          "members_host_flavor": "multitenant",
          "service_endpoints": "private",
          "members_memory_allocation_mb": 16384,
          "members_cpu_allocation_count": 4
        } \
      }' \
    

    供应 Databases for Elasticsearch 具有相同 "members_host_flavor" 参数的隔离实例,将其设置为所需的隔离大小。 表 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 <TOKEN>" \
      -H 'Content-Type: application/json' \
        -d '{ \
        "name": "my-instance", \
        "target": "us-south", \
        "resource_group": "5g9f447903254bb58972a2f3f5a4c711", \
        "resource_plan_id": "<SERVICE_PLAN_NAME>", \
        "parameters": {
        "members_host_flavor": "b3c.4x16.encrypted",
        "service_endpoints": "private"
        } \
      }' \
    

    参数 nametargetresource_groupresource_plan_idservice_endpoints 都是必填项。

    下面的表中描述了该命令中的字段。

    基本命令格式字段
    字段 描述 标志
    NAME 需要 实例名称可以是任何字符串,并且是 Web 和 CLI 中用于标识新部署的名称。
    SERVICE_NAME 需要 服务的名称或标识。 对于 Databases for Elasticsearch,请使用 databases-for-elasticsearch
    SERVICE_PLAN_NAME 需要 enterpriseplatinum
    TARGET 需要 您希望部署的区域。 要检索区域列表,请使用 ibmcloud regions 命令。
    SERVICE_ENDPOINTS_TYPE 配置部署的 服务端点publicprivate 均可。 默认值为 public
    RESOURCE_GROUP 资源组名称。 默认值为 default -g
    --parameters 用于创建服务实例的参数的 JSON 文件或 JSON 字符串 -p
    members_host_flavor 要供应隔离式或共享计算实例,请使用 {"members_host_flavor": "<members_host_flavor value>"}。 对于共享计算,请指定 multitenant 值。 对于隔离计算,请选择所需的 CPU 和 RAM 配置。 有关详细信息,请参阅下表或 托管模式
    service-endpoints 需要 配置部署的 服务端点publicprivatepublic-and-private 均可。

members 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 利用率指标。 要向实例添加资源,请手动缩放部署。

附加参数列表

--parameters 对象中,您可以提供创建服务实例的其他信息,包括

  • 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- 数据库内数据库成员共享的内存总量。 例如,如果值为 "12288",并且有三个数据库成员,那么部署总共获得 12 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 Terraform 资源 管理基础架构,支持调配 Cloud Databases 部署。 另外,也可以使用 Terraform IBM 模块,通过 Terraform IBM 模块用于 Databases for Elasticsearch 管理基础设施。

选择要在其中供应数据库的 托管模型。 您可以稍后更改此内容。

使用 Terraform 配置共享计算

供应 Databases for Elasticsearch 共享托管模型实例,并将 "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-elasticsearch"
  resource_group_id = data.ibm_resource_group.group.id
  service_endpoints = "private"
  tags              = ["tag1", "tag2"]
  adminpassword     = "password12"
  # Pin the database version at provision time.
  # If omitted, the newest available major/minor is selected (per service behavior).
  version = "<VERSION_STRING>"                  # e.g. "8.19" for Elasticsearch preferred major
  group {
    group_id = "member"
    host_flavor {
      id = "multitenant"
    },
    cpu {
      allocation_count = 6
    }
    memory {
      allocation_mb = 24576
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD Elasticsearch database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

使用 Terraform 配置隔离计算

供应 Databases for Elasticsearch 具有相同 "host_flavor" 参数的隔离实例,将其设置为所需的隔离大小。 表 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-elasticsearch"
  resource_group_id = data.ibm_resource_group.group.id
  service_endpoints = "private"
  tags              = ["tag1", "tag2"]
  adminpassword     = "password12"
  # Pin the database version at provision time.
  # If omitted, the newest available major/minor is selected (per service behavior).
  version = "<VERSION_STRING>"                  # e.g. "8.19" for Elasticsearch preferred major
  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 Elasticsearch database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

host flavor 参数

host_flavor 参数定义计算大小。

  • Shared compute- 要配置共享计算实例,请指定 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 利用率指标。 要向实例添加资源,请手动缩放部署。