配置Elasticsearch集群终端节点服务
终端节点服务(VPC Endpoint Service)通过专属网关,可以将VPC中的服务方便的提供给其他VPC中的资源使用,实现跨VPC的访问,而不必暴露服务端相关的网络信息,使您的访问更加安全、可靠。在开启终端节点服务时,系统会默认给用户创建一个终端节点,内网域名由用户自己选择是否创建,通过节点IP或者是内网域名,用户可以跨VPC访问该集群。
终端节点服务通过共享型负载均衡器实现内网访问,共享型负载均衡器资源与其他实例共享资源,如果业务追求更优的负载均衡体验,推荐使用独享型负载均衡器接入集群,配置方案请参见配置Elasticsearch集群独享型负载均衡。
约束限制
- 集群开启终端节点服务之后,终端节点将按需进行收费,终端节点的费用将由用户进行支付,详细的计费方式请参考终端节点计费说明。
- 当集群的网络配置中,“虚拟私有云”选择的是共享VPC,“子网”选择的是共享VPC下的子网,则该集群不支持配置终端节点服务。
- 创建终端节点需要有相关的权限,请参考VPC终端节点权限管理。
- 公网访问和终端节点服务使用的是同一个负载均衡。当集群开启了公网访问白名单,由于白名单是作用在负载均衡上面,将会同时限制公网访问集群和内网通过VPCEP访问集群的IP地址。此时需要在公网访问白名单中添加一个网络白名单“198.19.128.0/17”,通过该白名单用来放通经过VPCEP的流量。
- 终端节点服务开通后,在内网通过终端节点IP或内网域名访问CSS将不受集群安全组规则限制,需要配合终端节点本身的白名单功能进行访问控制,操作指导请参见设置终端节点的访问控制。
创建集群时开启终端节点服务
- 登录云搜索服务管理控制台。
- 在右上方单击“创建集群”。
- 在创建集群页面,“高级配置”选择“自定义”后,开启终端节点服务。
图1 开启终端节点服务
表1 配置终端节点服务 参数
说明
创建内网域名
勾选“创建内网域名”,系统除了生成一个“节点IP”还会自动创建一个“内网域名”,通过这个域名可以在同一个VPC内访问该集群。不勾选的话只会生成一个“节点IP”。
创建专业型终端节点
选择是否创建专业型终端节点。
- 不勾选,则创建基础型终端节点。
- 勾选,则创建专业型终端节点。
说明:当集群所在区域不支持创建专业型终端节点时,该选项将置灰不可选。默认创建的是基础型终端节点。
IPv4/IPv6双栈网络
选择是否开启IPv4/IPv6双栈网络。仅当集群的VPC“子网”已开启IPv6,且已勾选“创建专业型终端节点”时,才支持选择开启IPv4/IPv6双栈网络。
终端节点服务白名单
在“终端节点服务白名单”中添加允许通过节点IP或内网域名访问集群的账号。
- 单击“添加”输入授权账号ID。授权账号ID配置成“*”,则表示允许全部用户访问该集群。
- 单击操作列的“删除”,可以删除不允许访问的账号ID。
说明:“授权账号ID”可以在“我的凭证”中进行查看“账号ID”获取。
已有集群的终端节点服务管理
如果创建集群时未开启终端节点服务,集群创建成功后,可以通过如下步骤进行开启。
- 登录云搜索服务管理控制台。
- 在集群管理页面,单击需要开启终端节点服务的集群名称,进入集群基本信息页面。
- 选择“终端节点服务”,在“终端节点服务”右侧单击开关,打开集群的终端节点服务功能。
表2 配置终端节点服务 参数
说明
创建内网域名
勾选“创建内网域名”,系统除了生成一个“节点IP”还会自动创建一个“内网域名”,通过这个域名可以在同一个VPC内访问该集群。不勾选的话只会生成一个“节点IP”。
创建专业型终端节点
选择是否创建专业型终端节点。
- 不勾选,则创建基础型终端节点。
- 勾选,则创建专业型终端节点。
说明:当集群所在区域不支持创建专业型终端节点时,该选项将置灰不可选。默认创建的是基础型终端节点。
IPv4/IPv6双栈网络
选择是否开启IPv4/IPv6双栈网络。仅当集群的VPC“子网”已开启IPv6,且已勾选“创建专业型终端节点”时,才支持选择开启IPv4/IPv6双栈网络。
终端节点服务白名单
在“终端节点服务白名单”中添加允许通过节点IP或内网域名访问集群的账号。
- 单击“添加”输入授权账号ID。授权账号ID配置成“*”,则表示允许全部用户访问该集群。
- 单击操作列的“删除”,可以删除不允许访问的账号ID。
说明:“授权账号ID”可以在“我的凭证”中进行查看“账号ID”获取。
- 管理终端节点。
在终端节点服务页面下,显示所有连接当前集群的终端节点。此处可以获取终端节点的“服务地址”和“内网域名”。
图2 管理终端节点
单击操作列的“接受”或者“拒绝”可以修改节点的“状态”。如果对某个终端节点“拒绝”操作之后,其生成的内网域名将不能再访问到当前集群。
通过节点IP地址或内网域名访问集群
- 获取集群的内网域名或者节点IP地址。
登录云搜索服务控制台,进入集群列表,单击集群名称,进入集群“基本信息”页面,选择“终端节点服务”,查看“服务地址”或“内网域名”。
图3 查看终端节点服务地址或内网域名
- 在弹性云服务器中,直接通过Curl命令调用Elasticsearch API即可使用集群。
弹性云服务器需要满足如下要求:
- 为弹性云服务分配足够的磁盘空间。
- 此弹性云服务器的VPC需要与集群在同一个VPC中,开通终端节点服务后,可以实现跨VPC访问。
- 此弹性云服务器的安全组需要和集群的安全组相同。
如果不同,请修改弹性云服务器安全组或配置弹性云服务器安全组的出入规则允许集群所有安全组的访问。修改操作请参见配置安全组规则。
- 待接入的CSS集群,其安全组的出方向和入方向需允许TCP协议及9200端口,或者允许端口范围包含9200端口。
例如,执行如下Curl命令,查看集群中的索引信息,集群中的内网访问地址为“vpcep-7439f7f6-2c66-47d4-b5f3-790db4204b8d.region01.huaweicloud.com”,端口为“9200”。
- 如果接入集群未启用安全模式,接入方式为:
curl 'http://vpcep-7439f7f6-2c66-47d4-b5f3-790db4204b8d.region01.huaweicloud.com:9200/_cat/indices'
- 如果接入集群已启用安全模式,则需要使用https方式访问,并附加用户名和密码,在curl命令中添加-u选项。
curl -u username:password -k 'https://vpcep-7439f7f6-2c66-47d4-b5f3-790db4204b8d.region01.huaweicloud.com:9200/_cat/indices'