更新时间:2025-08-22 GMT+08:00
分享

配置OpenSearch集群独享型负载均衡

云搜索服务集成了共享型负载均衡器的能力,支持绑定公网访问和开启终端节点服务。相比共享型负载均衡器,独享型负载均衡器功能更丰富、性能更强,本章主要介绍如何配置集群的独享型负载均衡。

场景描述

使用独享型负载均衡器接入集群具有如下优点:
  • 非安全模式集群也支持集成弹性负载均衡服务的能力。
  • 支持用户使用自定义证书进行HTTPS双向认证。
  • 支持7层流量监控及告警配置,方便用户随时查看监控情况。

不同安全模式的集群对接独享型负载均衡器共有8种不同的服务形态,不同服务形态对应的ELB能力如表1所示,8种组合的配置概览如表2所示。

表1 不同集群对应的ELB能力

集群安全模式

ELB最终对外提供的服务形态

ELB负载均衡

ELB流量监控

ELB双向认证

非安全

无认证

支持

支持

不支持

单向认证

双向认证

支持

支持

支持

安全+HTTP

密码认证

支持

支持

不支持

单向认证+密码认证

双向认证+密码认证

支持

支持

支持

安全+HTTPS

单向认证+密码认证

双向认证+密码认证

支持

支持

支持

表2 不同集群对接ELB的配置概览

集群安全模式

ELB最终对外提供的服务形态

ELB监听器

ELB监听器

ELB监听器

后端服务器组

后端服务器组

后端服务器组

前端协议

前端端口

SSL解析方式

后端协议

健康检查端口

健康检查路径

非安全

无认证

HTTP

9200

无认证

HTTP

9200

/

单向认证

HTTPS

9200

单向认证

HTTP

9200

双向认证

HTTPS

9200

双向认证

HTTP

9200

安全+HTTP

密码认证

HTTP

9200

无认证

HTTP

9200

/_opendistro/_security/health

单向认证+密码认证

HTTPS

9200

单向认证

HTTP

9200

双向认证+密码认证

HTTPS

9200

双向认证

HTTP

9200

安全+HTTPS

单向认证+密码认证

HTTPS

9200

单向认证

HTTPS

9200

双向认证+密码认证

HTTPS

9200

双向认证

HTTPS

9200

约束限制

  • 如果ELB绑定了公网,则不推荐接入非安全模式的集群。由于非安全模式的集群使用HTTP协议通信,且不需要安全认证即可访问,如果对接公网访问会存在安全风险。
  • 开启了HTTPS访问的安全模式的集群不支持HTTP类型的前端协议认证,如果需要使用HTTP类型的前端协议,需要将集群的“安全模式”变更为“非安全模式”,具体操作请参见更改OpenSearch集群安全模式。在变更安全模式前,请先关闭“负载均衡”,安全模式变更完成后再开启“负载均衡”

前提条件

  • 已经创建独享型负载均衡器,操作指导请参见创建独享型负载均衡器。负载均衡器需要满足如下条件:
    • “所属VPC”和CSS集群的虚拟私有云保持一致。确保两者之间网络互通。
    • 开启“IP类型后端”。只有开启IP类型后端,独享型负载均衡器才支持接入CSS集群。
    • 根据业务需求,选择是否配置“弹性公网IP”。只有配置了弹性公网IP,CSS集群对接的负载均衡实例才会显示“公网IP”,才支持通过负载均衡实现公网访问CSS集群。
  • 如果规划ELB监听器的前端协议是HTTPS,则需要将服务器证书或CA证书上传至ELB管理控制台。操作指导请参见创建证书
    • 监听器的SSL解析方式是单向认证,则需要上传服务器证书。
    • 监听器的SSL解析方式是双向认证,则需要上传服务器证书和CA证书。

CSS集群对接负载均衡器

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > OpenSearch”
  3. 在集群列表,单击目标集群名称,进入集群详情页。
  4. 选择“访问配置 > 负载均衡”,在“OpenSearch”页签,打开“负载均衡开关”右侧的开关,在弹窗中完成基础配置。
    表3 负载均衡基础配置

    参数

    说明

    负载均衡器

    选择准备好的独享型负载均衡器。

    如果没有合适的ELB,可以单击创建负载均衡器前往创建页面,操作步骤请参见创建独享型负载均衡器

    委托

    配置负载均衡器需要当前账号具备ELB资源的使用权限。通过配置IAM委托,使当前账号授权CSS服务访问其拥有的ELB资源。
    • 当首次配置委托时,可以单击“自动创建委托”新建委托“css_elb_agency”直接使用。
    • 当已有自动创建的委托时,可以单击“委托一键授权”,自动删除委托中“ELB Administrator”系统角色或“ELB FullAccess”系统策略的权限,并自动新增如下自定义策略授权委托到最小化权限。
      "elb:loadbalancers:list",
      "elb:loadbalancers:get",
      "elb:certificates:list",
      "elb:healthmonitors:*",
      "elb:members:*",
      "elb:pools:*",
      "elb:listeners:*"
    • 执行“自动创建委托”“委托一键授权”的用户需要如下最小权限。
      "iam:agencies:listAgencies",
      "iam:roles:listRoles",
      "iam:agencies:getAgency",
      "iam:agencies:createAgency",
      "iam:permissions:listRolesForAgency",
      "iam:permissions:grantRoleToAgency",
      "iam:permissions:listRolesForAgencyOnProject",
      "iam:permissions:revokeRoleFromAgency",
      "iam:roles:createRole"
    • 使用委托的用户需要如下最小权限。
      "iam:agencies:listAgencies",
      "iam:agencies:getAgency",
      "iam:permissions:listRolesForAgencyOnProject",
      "iam:permissions:listRolesForAgency"
    图1 开启负载均衡
  5. 单击“确定”,开启负载均衡。

    开启后,页面会显示负载均衡实例的信息。

  6. “监听器配置”区域,您可以单击右侧配置监听器的相关信息。
    表4 配置监听器

    参数

    说明

    前端协议

    客户端与负载均衡监听器建立流量分发连接的协议。

    支持选择“HTTP”“HTTPS”

    建议根据实际业务需要选择协议。

    前端端口

    客户端与负载均衡监听器建立流量分发连接的端口。

    建议根据实际业务需要自定义。

    SSL解析方式

    客户端到服务器端认证方式。仅“前端协议”选择“HTTPS”才需要配置。

    支持“单项认证”“双向认证”

    建议根据实际业务需要选择解析方式。

    服务器证书

    服务器证书用于SSL握手协商,需提供证书内容和私钥。仅“前端协议”选择“HTTPS”才需要配置服务器证书。

    选择在ELB创建的服务器证书。

    CA证书

    CA证书又称客户端CA公钥证书,用于验证客户端证书的签发者。仅“SSL解析方式”选择“双向认证”时,才需要配置CA证书。

    选择在ELB创建的CA证书。

    在开启HTTPS双向认证功能时,只有当客户端能够出具指定CA签发的证书时,HTTPS连接才能成功。

    图2 配置监听器
  7. (可选)在监听器配置区域,单击“访问控制”后的“设置”跳转到负载均衡器的监听器列表,单击监听器访问控制列的“设置”,配置监听器的访问控制。设置访问控制的操作指导请参见访问控制策略

    不设置的话默认允许所有的IP地址通过负载均衡实例访问CSS集群,此时存在安全风险。

  8. 在健康检查区域,您可以查看各个节点IP的健康检查结果。
    表5 健康检查结果状态说明

    健康检查结果

    说明

    正常

    节点IP连接正常。

    异常

    节点IP连接,不可用

  9. 当集群无需使用负载均衡访问时,可以解绑独享型负载均衡器,释放资源。

    “负载均衡 > OpenSearch”页面,关闭“负载均衡开关”右侧的开关,在弹窗中单击“确定”,解绑ELB。

    关闭负载均衡后,监听器及后端服务器组配置将被删除,且不可恢复。

通过Curl命令使用负载均衡接入集群

  1. 在云搜索服务管理控制台,单击左侧导航栏的“集群管理”
  2. 登录云搜索服务管理控制台
  3. 在左侧导航栏,选择“集群管理 > OpenSearch”
  4. 在集群列表,单击目标集群名称,进入集群详情页。
  5. 选择“访问配置 > 负载均衡”,在“OpenSearch”页签,获取并记录负载均衡实例的“私有IP”“IPv6地址”“公网IP”,以及监听器配置的“前端协议/端口”

    如果ELB绑定了公网,则不推荐接入非安全模式的集群。非安全模式的集群使用HTTP通信且不需要安全认证即可访问,如果对接公网访问存在安全风险。

  6. 在ECS服务器中执行如下Curl命令测试能否通过独享型负载均衡实例接入集群。
    表6 不同集群的接入命令

    集群安全模式

    ELB最终对外提供的服务形态

    接入集群的Curl命令

    非安全

    无认证

    curl  http://IP:port

    单向认证

    curl --cacert ./ca.crt https://IP:port

    双向认证

    curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:port

    安全+HTTP

    密码认证

    curl  http://IP:port -u user:pwd

    单向认证+密码认证

    curl --cacert ./ca.crt https://IP:port -u user:pwd

    双向认证+密码认证

    curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:port -u user:pwd

    安全+HTTPS

    单向认证+密码认证

    curl --cacert ./ca.crt https://IP:port -u user:pwd

    双向认证+密码认证

    curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:port -u user:pwd
    表7 变量说明

    变量名

    说明

    IP

    负载均衡实例的IP地址。

    port

    监听器配置的“前端协议/端口”

    user

    集群的用户名,仅安全集群需要配置。

    pwd

    用户名对应的密码,仅安全集群需要配置。

    当可以正常返回集群信息时,表示连接成功。

本文还提供了通过独享型负载均衡实例接入集群的Java客户端代码示例:通过负载均衡器的HTTPS双向认证方式接入集群的代码示例(Java)

通过负载均衡器的HTTPS双向认证方式接入集群的代码示例(Java)

在Java客户端,通过负载均衡器的HTTPS双向认证方式接入集群的代码示例。

相关文档