配置实例私网连接

阿里云Elasticsearch(简称ES)实例部分功能受新网络架构限制无法应用,可通过PrivateLink+负载均衡实现阿里云ES与云资源(ECS、ENI、ECI类型等)或某IP地址下的网络资源打通,解决云ES网络私网互通问题。本文分别介绍通过CLB和PrivateLink实现阿里云ES与阿里云服务器资源私网互通,及通过阿里云NLB和PrivateLink实现阿里云ES集群间私网互通,您也可按照PrivateLink和负载均衡支持的场景自行应用。

说明
  • 实例私网连接是解决新网络架构下X-Pack Watcher、reindex、LDAP和AD(Active Directory)身份认证等功能受限的唯一方案。

  • 2020年10月及之后创建的实例处于新网络架构下,支持实例私网连接。2020年10月之前创建的实例(包括金融云和政务云)处于旧网络架构下,不支持实例私网连接。

阿里云ES PrivateLink应用场景

名词解释

通过PrivateLink实现私网访问,您需要创建终端节点服务和终端节点。

名词

描述

终端节点服务

终端节点服务是可以被其他VPC通过创建终端节点建立私网连接的服务,需要您手动创建相关的服务资源。

终端节点

终端节点与终端节点服务相关联,可以建立通过VPC私网访问外部服务的网络连接,阿里云ES配置实例私网连接将自动在ES所处的网络环境下创建终端节点。

通过CLB和PrivateLink实现阿里云ES与ECS私网连接

前提条件

  • 已在VPC_1下创建阿里云ES实例,且ES实例须为2020年10月及之后创建。创建阿里云ES实例,请参见创建阿里云ES实例

  • 已在用户VPC_2下创建ECS实例,并部署了相关应用,详细信息请参见自定义购买实例

    说明
    • ECS实例即后端服务器,主要接收通过负载均衡实例所转发的请求。创建ECS时需要选择支持PrivateLink的地域和可用区。PrivateLink支持的地域,请参见支持私网连接的地域和可用区

    • 阿里云ES、ECS、负载均衡实例需部署在同一地域下的同可用区中。

步骤一:创建并配置负载均衡实例

  1. 登录传统型负载均衡CLB控制台

  2. 创建支持PrivateLink功能的负载均衡实例。

    1. 实例管理页面,单击创建传统型负载均衡

    2. 负载均衡SLB购买页面配置实例,地域选择阿里云ES实例所在地域,实例类型选择私网,然后单击立即购买,购买CLB实例。

    更多信息,请参见创建和管理CLB实例

  3. 配置负载均衡实例。

    1. 实例管理页面,单击目标实例操作列下的监听配置向导

    2. 负载均衡业务配置向导页面,按需配置监听信息和后端服务器信息,并进行健康检查和配置审核。

    更多详细信息,请参见配置负载均衡实例CLB监听概述

步骤二:创建终端节点服务

说明

实例私网连接功能将自动在ES所处的网络环境下创建终端节点,仅需您在ECS所处的环境下手动创建终端节点服务。

  1. 登录终端节点服务控制台

  2. 在顶部菜单栏处,选择要创建终端节点服务的地域。

    终端节点服务需要与负载均衡实例在同一地域。

  3. 单击创建终端节点服务

  4. 创建终端节点服务页面,服务资源选择已创建的负载均衡实例,按需配置其他参数,单击确定创建,创建终端节点服务。

更多详细信息,请参见创建终端节点服务

步骤三:配置阿里云ES私网连接

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理 > 安全配置

  5. 集群网络设置区域,单击配置实例私网连接右侧的修改

  6. 配置实例私网连接面板,单击添加私网连接

  7. 在弹出的对话框中,选择已创建的终端节点服务,完成其他配置后单击确认

  8. 在终端节点的操作列,单击允许连接

    终端节点与终端节点服务连接成功后,终端节点连接状态会变为已连接,表明您已经打通了ES集群VPC_1与用户VPC_2。

  9. (可选)查看终端节点域名。

    您可以获取终端节点域名用于其他服务的配置,例如Watcher、单点登录和LDAP等。

    1. 配置实例私网连接面板中,单击目标终端节点ID

    2. 终端节点连接页签,单击目标终端节点ID前的展开符图标,可查看终端节点对应的域名。

通过NLB和PrivateLink实现阿里云ES实例间私网互通

以下介绍通过NLB挂载ES_2实例的域名IP,将阿里云ES_1实例通过私网连接到阿里云ES_2实例,该场景常应用于因网络架构限制导致网络无法互通的两个阿里云ES实例。

说明
  • 两个ES实例连通后,您可以将ES_2中的数据迁移到了ES_1实例中。

  • 阿里云NLB支持IP挂载,更多信息,请参见NLB功能特性

前提条件

已创建相同地域和可用区下的两个阿里云ES实例。

说明

创建ES时需要选择支持PrivateLink的地域和可用区。PrivateLink支持的地域,请参见支持私网连接的地域和可用区

步骤一:创建网络型负载均衡服务NLB

网络型负载均衡NLB(Network Load Balancer)实例可以接收来自客户端的请求,并按照监听规则将请求分发至后端服务器。使用NLB服务,您需要创建一个NLB实例,并在实例中添加监听和后端服务器。

  1. 创建NLB实例。

    1. 登录网络型负载均衡NLB控制台

    2. 实例页面,单击创建网络型负载均衡

    3. 在购买页面配置实例信息。

      地域选择阿里云ES_2实例所在地域,实例网络类型选择私网,可用区选择阿里云ES_2实例所在的可用区。

      更多信息,请参见创建和管理NLB实例

  2. 创建NLB服务器组。

    每个服务器组均用于将客户端的请求路由到一个或多个后端服务器。NLB会通过健康检查来判断后端服务器的业务可用性。在为NLB实例添加监听时需要指定服务器组,监听会使用已配置的协议和端口检查客户端的连接请求,并将流量转发至相应的服务器组。

    1. 进入负载均衡NLB服务器组

    2. 服务器组页面,单击创建服务器组

    3. 在弹出的对话框中,配置服务器组。

      服务器组类型选择IP类型,自定义服务器组名称,ES_2实例对应的VPC。

  3. NLB上添加ES_2实例作为后端服务。

    在已经创建的服务器组中添加ES_2实例私网IP地址和端口。

    1. 通过终端ping获取ES_2实例私网IP地址。

      image.png

    2. 在目标服务器组的操作列上,单击编辑后端服务器

    3. 后端服务器页签下,单击添加IP

    4. 将获取的ES_2实例私网IP地址添加到后端服务器IP地址中,单击下一步

    5. 添加操作使用的ES端口,例如reindex需要使用9200端口通信。

    6. 单击确定

  4. 添加监听。

    1. 登录网络型负载均衡NLB控制台

    2. 在实例页面,在目标NLB实例的操作列单击创建监听

    3. 监听协议选择TCP,监听端口输入9200,单击下一步

    4. 服务器组选择IP类型,并选择已添加的后端服务器组,单击下一步

    5. 单击提交

步骤二:创建终端节点服务

说明

实例私网连接功能将自动在ES所处的环境下创建终端节点,仅需您在另一个ES所处的环境下手动创建终端节点服务。

  1. 登录终端节点服务控制台

  2. 单击创建终端节点服务

  3. 创建终端节点服务页面,配置终端节点服务。

    部分参数说明如下。更多信息,请参见创建NLB实例

    配置

    说明

    所属地域

    选择与ES相同的地域。

    服务资源类型

    选择网络型负载均衡NLB。

    选择服务资源

    已创建的NLB实例。

    服务付费者

    两者都可以选择。

  4. 单击确定创建

    创建成功后可以在服务资源区域,看到创建的终端节点服务已经和NLB绑定了。

    image

步骤三:阿里云ES实例上配置私网连接

在阿里云ES_1实例上配置私网连接,系统将自动在ES_1实例所处的网络环境下创建与终端节点服务相连接的终端节点。

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理 > 安全配置

  5. 集群网络设置区域,单击配置实例私网连接右侧的修改

  6. 配置实例私网连接面板,单击添加私网连接

  7. 在弹出的对话框中,选择已创建的终端节点服务,完成其他配置后单击确认

  8. 在终端节点的操作列,单击允许连接

    终端节点与终端节点服务连接成功后,终端节点连接状态会变为已连接,表明您已经打通了ES_1实例和ES_2实例。

  9. (可选)查看终端节点域名。

    您可以获取终端节点域名后添加到白名单,用于其他服务的配置,例如Watcher、单点登录和LDAP等。

    1. 配置实例私网连接面板中,单击目标终端节点ID

    2. 终端节点连接页签,单击目标终端节点ID前的展开符图标,可查看终端节点对应的域名。

(可选)步骤四:通过reindex测试ES实例间的连通性

通过reindex将阿里云ES_2实例中的索引迁移到阿里云ES_1实例中,验证ES_2实例和ES_1实例的网络连通性。

  1. 在ES_1实例的YML文件中配置reindex白名单。

    1. 在ES_1实例详情页的左侧导航栏,选择配置与管理 > ES集群配置

    2. YML文件配置区域的右上角,单击修改配置

      reindex.remote.whitelist: ["终端节点域名:9200"]
  2. ES_2实例中已经准备了待迁移数据,在ES_1实例中创建索引后进行reindex迁移。

    POST _reindex
    {
     "source": {
     "remote": {
     "host": "http://ep-bp1i4db71e6adaa29718-cn-hangzhou-i.epsrv-bp1fm3v8kc2qr2td6lrm.cn-hangzhou.privatelink.aliyuncs.com:9200",
     "username": "账号",
     "password": "密码"
     },
     "index": "myindex"
     },
     "dest": {
     "index": "myindex2"
     }
    }

    类别

    参数

    说明

    source

    host

    privatelink终端节点服务访问地址,必须包含支持协议、终端节点域名和端口信息,例如https://终端节点域名:9200

    username

    可选参数。阿里云Elasticsearch实例的默认用户名为elastic。

    password

    用户对应的密码。阿里云Elasticsearch实例的elastic用户的密码在创建实例时设定,如果忘记可进行重置。重置密码的注意事项及具体操作,请参见重置实例访问密码

    index

    远程集群中的源索引。

    query

    通过查询语法,指定待迁移的数据。详细信息,请参见Reindex API

    dest

    index

    本地集群中的目标索引。

  3. 在ES_1实例中查看是否成功将ES_2实例中的数据迁移到了ES_1实例中。

相关文档