Google Cloud (GCP) 使用基于 Elastic Cloud 的 ElasticSearch 托管服务,配置Google Cloud PSC方式进行数据访问

Google Cloud 自身只提供有少部分的 SaaS 托管服务,其他包括 ElasticSearch、MongoDB、Kafka 等服务都是基于合作伙伴公有云的方式,直接打通与全球各区域的 GCP 实例以提供云上服务。

背景

使用者希望数据通过类似于 VPC Peering 或者 Private Service Connect(PSC) 的方式进行数据传输到 Elastic Cloud 中,保证数据的安全性,而且对于业务访问也可以做到无感知直接访问,在全球各相同区域能保证数据传输的效率。

解决思路

可以通过 PSC (Private Service Connect) 的方式,进行数据传输,大体步骤如下:

  • 配置 PSC 的 endpoint
  • 在 Elastic Cloud 添加基于 PSC 的流量过滤器,仅对 PSC 的访问流量进行授权
  • 配置 非公开dns域解析

下面,我们来手把手介绍在 GCP 上使用和创建 Elastic Cloud 服务实例。

1. 开通服务权限

首先需要联系销售伙伴开通使用 Elastic Cloud 云服务的权限,并且订阅该服务。

使用 GCP 账户身份登录 Elastic Cloud

2. 回到 GCP 配置 PSC

找到网络服务->Private Service Connect

添加连接端点

目标(target)选择发布的服务(Published Service)
此处,目标服务是固定的一堆值,需要根据自己的GCP业务所属区域,在 Elastic Cloud PSC 上选择对应区域的 PSC uri,官方文档uri列表见 https://www.elastic.co/guide/en/cloud/current/ec-traffic-filtering-psc.html#ec-private-service-connect-uris


此处我就选择 asia-southeast1 新加坡区域的 Service Attachment URI https://www.elastic.co/guide/en/cloud/current/ec-traffic-filtering-psc.html#ec-private-service-connect-uris

端点名称取一个明了好记的名称,我这里就取名为 endpoint-es-gcp


选择对应的 VPC 网络,选择子网,并在该子网内部创建一个预留IP,我这里取名 example-es-resaved-ip


最后,点击添加端点,完成GCP侧 PSC endpoint 的创建。


3. 获取 PSC endpoint 的 PSC 连接ID


4. 在 Elastic Cloud 侧创建 ElasticSearch deployment 实例


点击 Create Deployment


取名,然后选择云服务商提供者为 GCP,选择和自己GCP侧相同地域的 region,选择合适的硬件规格Hardware profile,选择合适的 ES 版本

下方还有更高级的配置,ES实例的资源大小,是否启动 Kibana 和 APM 等周边组件


创建成功。

这里会生成默认的 elastic 管理员账户密码,记得妥善保存。


5. 在 Elastic Cloud 侧添加基于 PSC 的流量过滤器


依次点击Deployment->Features->Traffic filters

开始创建一个 filter 过滤器


过滤类型选择PSC endpoint,这里就需要填入第二步创建PSC时生成的PSC Connect ID

回到 Deployments 的主面板,点击 Security


在该实例上应用刚才创建的 filter 配置。


6. 在 GCP 侧创建专用非公开DNS域


这里为psc.asia-southeast1.gcp.elastic-cloud.com创建一个专用域,且仅对于自己的某个 VPC网络可见
选择可见的项目以及 VPC 网络


添加一个泛域名A记录,主机名为 *,对应 record IP地址,选择前面创建 PSC endpoint时预留的的IP地址。


7. 验证测试

我们在 GKE 集群里面使用 curl 进行访问测试,那么我们得首先拿到链接端点URL

在 Elastic Cloud 主面板,选择copy Cluster ID,然后和我们刚才创建的专用DNS域进行拼接。

格式:https://[ClusterID].[private-domain]:9243
例如: curl -v https://2lq8lalo4uo0j362516px.psc.asia-southeast1.gcp.elastic-cloud.com:9243

测试访问通过



看到这里,恭喜你,已经成功创建和使用PSC连接到 Elastic Cloud 上的 ES 实例。

测试访问失败

ks-installer-758d459599-x9zjg:/kubesphere$ curl -u "elastic:CFxxxxxxxxxxxxxx1" https://[elasticsearch-endpoint-name].es.asia-southeast1.gcp.elastic-cloud.com:9243
{"ok":false,"message":"Forbidden"}

在非授权的 VPC 进行访问,提示 Forbidden 访问受限。
并且,在授权VPC网络内部,使用错误的账户密码访问,也提示错误。

posted @ 2023-08-31 16:26  Professor哥  阅读(6)  评论(0编辑  收藏  举报