如何在 GCP GKE Autopilot 上部署 Elasticsearch。

了解如何通过 GKE Autopilot 与 ECK 在 GCP 上部署 Elasticsearch 集群,实现部分托管的 Elasticsearch 设置配置。

刚接触 Elasticsearch 吗?欢迎参加我们的 Elasticsearch 入门网络研讨会。您也可以开始免费云服务试用,或立即在您的计算机上试用 Elastic。

在本文中,我们将学习如何使用 Autopilot 在 Google Cloud Kubernetes (GKE) 上部署 Elasticsearch。

对于 Elasticsearch,我们将使用 Elastic Cloud on Kubernetes (ECK),这是正式的 Elasticsearch Kubernetes 运维工具,简化了所有 Elastic Stack 组件的 Kubernetes 部署协调。

要了解更多关于如何在不同 GCP 基础架构上部署 Elasticsearch 集群的信息,您可以阅读我们关于 Google Cloud ComputeGoogle Cloud Marketplace 的入门文章。

Elasticsearch 部署步骤

什么是 GKE Autopilot?

Google Kubernetes Engine (GKE) Autopilot 提供完全托管的 Kubernetes 体验,由 Google 负责集群配置、节点管理、安全与扩展,而开发人员只需专注于应用程序部署,使团队能够凭借内置的最佳实践在几分钟内完成从代码到生产环境的转化。

何时在 Google Cloud 中使用 ECK?

Elastic Cloud on Kubernetes (ECK) 最适合那些拥有现有 Kubernetes 基础架构并希望部署具有高级功能(如专用节点角色、高可用性和自动化)的 Elasticsearch 的组织。

如何在 Google Cloud 中设置 ECK?

1. 登录 Google Cloud Console

2. 在右上角点击Cloud Shell”按钮进入控制台,并从那里部署 GKE 集群。或者,您也可以使用 gcloud CLI

操作过程中记得将项目 ID 替换为您自己的项目 ID。

3. 启用 Google Kubernetes Engine API

点击下一步

现在,搜索 Kubernetes Engine API 时,应该显示 Kubernetes Engine API 已启用。

4. 在 Cloud Shell 中创建一个 Autopilot 集群。我们将其命名为 autopilot-cluster-1,并请将 autopilot-test 替换为您的项目 ID。

5. 等待集群就绪。创建过程大约需要 10 分钟。

正确设置集群后,将显示一条确认消息。

6. 配置 kubectl 命令行访问。

您应该看到:

已为 autopilot-cluster-1 生成 kubeconfig 条目。

7. 安装 Elastic Cloud on Kubernetes(ECK) 运维工具。

8. 让我们创建一个具有默认值的单节点 Elasticsearch 实例。

如果您想查看不同设置的配方,可以访问此链接

请注意,如果未指定 storageClass,ECK 将使用默认设置,GKE 的默认设置为 standard-rwo,该配置使用 Compute Engine 持久化磁盘 CSI 驱动)并创建 1GB 的卷。

我们禁用nmap,是因为默认 GKE 机器的 vm.max_map_count 值过低。不建议在生产环境中禁用它,但建议增加 vm.max_map_count 的值。您可以在这里阅读更多关于如何做到这一点的信息。

9. 我们还要部署一个 Kibana 单节点集群。对于 Kibana,我们将添加一个 LoadBalancer,它将为我们提供一个外部 IP,我们可以使用该 IP 从我们的设备访问 Kibana。

请注意注释:

cloud.google.com/l4-rbs: "enabled"

该注释非常重要,因为它指示 Autopilot 提供一个面向公众的 LoadBalancer。如果未设置,LoadBalancer 将为内部类型。

10. 检查您的 pod 是否正在运行

11. 您还可以使用 run kubectl get elasticsearchkubectl get kibana 来获取更具体的统计信息,例如 Elasticsearch 版本、节点和健康状况。

12. 获取您的服务。

这将显示 Kibana 在 EXTERNAL-IP 下的外部 URL。可能需要几分钟时间来配置 LoadBalancer。复制 EXTERNAL-IP 的值。

13. 获取“elastic”用户的 Elasticsearch 密码:

14. 通过浏览器访问 Kibana

  • URL: https://<EXTERNAL_IP>:5601
  • 用户名:elastic
  • 密码:28Pao50lr2GpyguX470L2uj5(来自上一步)

15. 通过浏览器访问时,您将看到欢迎界面。

如果您想更改 Elasticsearch 集群规格,例如更改或调整节点大小,可重新应用包含新设置的 yml 配置文件:

在此示例中,我们将再添加一个节点,并修改 RAM 和 CPU。如您所见,现在 kubectl get elasticsearch 显示 2 个节点:

这同样适用于 Kibana:

我们可以调整容器 CPU/RAM 以及 Node.js 的内存使用量(max-old-space-size)。

请注意,现有的卷声明无法缩小容量。应用更新后,运维工具将在最短中断时间内完成更改。

请记得在测试结束后删除集群,以避免产生不必要的成本。

后续步骤

如果您想了解更多关于 Kubernetes 和 Google Kubernetes Engine 的信息,请查看以下文章:

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用