如何在 Azure AKS 上自动部署 Elasticsearch

了解如何使用 AKS Automatic 和 ECK 在 Azure 上部署带有 Kibana 的 Elasticsearch,以实现部分托管的 Elasticsearch 设置配置。

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

本文是系列文章的一部分,我们将学习如何使用不同的基础架构安装 Elasticsearch。

与基于 Marketplace 的弹性云解决方案相比,ECK 需要付出更多努力,但它比自己部署虚拟机更加自动化,因为 Kubernetes 操作员将负责系统协调和节点扩展。

这一次,我们将使用自动功能与 Azure Kubernetes 服务 (AKS) 配合工作。在其他文章中,您将学习如何使用Azure VMAzure Marketplace

什么是 AKS 自动系统?

Azure Kubernetes 服务(AKS)可自动 管理集群设置、动态分配资源并集成安全最佳实践,同时保持 Kubernetes 的灵活性,使开发人员能够在几分钟内从容器镜像转为部署应用程序。

AKS Automatic 消除了大部分集群管理开销,在简单性和灵活性之间取得了良好的平衡。正确的选择取决于您的使用情况,但如果您计划这样做,决定就会容易得多:

  • 部署测试环境: 部署快速而简单,是快速实验或短期集群的理想选择。
  • 无需严格的虚拟机、存储或网络要求即可工作: AKS Automatic 提供预定义的默认设置,因此,如果这些设置符合您的需求,就可以省去额外的配置。
  • 首次使用 Kubernetes: 通过处理集群的大部分设置工作,AKS Automatic 可降低学习曲线,让团队专注于自己的应用。

对于 Elasticsearch,我们将使用Elastic Cloud on Kubernetes (ECK),它是官方的 Elastic Kubernetes 操作员,可以简化 Elastic Stack 的 Kubernetes 部署协调。

如何设置 AKS 自动系统

1.登录Microsoft Azure 门户

2.在右上角, 单击 上的 Cloud Shell按钮访问控制台,并从那里部署 AKS 群集。或者,您也可以使用Azure 云外壳

请记住,在教程中将项目 ID 更新为您的项目 ID。

打开 AKS 时的样子应该如上截图所示。

3.安装 aks-preview Azure CLI 扩展。该预览版允许我们在创建群集时选择--sku automatic ,从而启用 AKS 自动功能。

如果看到此信息,说明 AKS 扩展已正确安装。

4.使用az feature register 命令注册 功能标志

您将看到我们刚刚创建的功能订阅的详细信息:

确认注册状态,直到从 "正在注册"变为 "已注册"。完成注册可能需要几分钟时间。

运行az provider register 以传播更改。

5.创建资源组

资源组是要管理和部署的 Azure 资源的逻辑组。

6.创建自动驾驶仪群集。我们将把它命名为myAKSAutomaticCluster ,并使用刚刚创建的资源组。确保以下任何一种虚拟机大小都有16 个可用vCPU:Standard_D4pds_v5Standard_D4lds_v5Standard_D4ads_v5Standard_D4ds_v5Standard_D4d_v5Standard_D4d_v4Standard_DS3_v2Standard_DS12_v2,以便 AKS 分配资源。

* 如果出现 MissingSubscriptionRegistration 错误,请带着缺失的订阅返回第 4 步。例如, The subscription is not registered to use namespace ' microsoft.insights ' 需要运行 az provider register --namespace Microsoft.Insights.

按照交互式登录:

此时会出现一条要求运行 "az login "的信息。您必须运行该命令,然后等待。

7.等待准备就绪。制作大约需要 10 分钟。

8.配置 kubectl 命令行访问权限。

请注意,我们安装的扩展正在启用 AKS Automatic。

9.确认节点已部署。

您将看到一条禁止的错误信息;请复制错误信息中的用户 ID。

10.将用户添加到 AKS 访问控制中。

获取 AKS ID。复制命令输出。

使用 AKS ID 和用户的主要 ID 创建角色分配。

11.尝试再次确认节点已部署。

12.安装 Kubernetes 上的弹性云(ECK)操作员。

13.让我们使用默认值创建一个单节点 Elasticsearch 实例。

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

14.我们也来部署一个 Kibana 单节点集群。对于 Kibana,我们将添加一个负载平衡器,它将为我们提供一个外部 IP,我们可以用它从我们的设备访问 Kibana。

默认情况下,AKS Automatic 会将负载平衡器配置为公共负载平衡器;您可以通过设置元数据注释来更改行为:

service.beta.kubernetes.io/azure-load-balancer-internal: "true"

15.检查 pod 是否正在运行。

16.您还可以运行kubectl get elasticsearchkubectl get kibana 获取更具体的统计信息,如 Elasticsearch 版本、节点和健康状况。

17.获取您的服务。

这将在 EXTERNAL-IP 下显示 Kibana 的外部 URL。负载平衡器的调配可能需要几分钟时间。复制 EXTERNAL-IP 的值。

18.获取 "elastic "用户的 Elasticsearch 密码:

19.通过浏览器访问 Kibana

a.url: https://<EXTERNAL_IP>:5601

b.用户名:elastic

c.密码:c44A295CaEt44D6xIzN6Zs5m(来自上一步)

20.从浏览器访问 Elastic Cloud 时,您将看到欢迎屏幕。

如果要更改 Elasticsearch 集群规格,如更改或调整节点大小,可以使用新设置再次应用 YML 清单:

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

Kibana 也是如此:

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

请记住,现有的批量索赔不能缩减。应用更新后,操作员将在最短的时间内完成更改。

测试完成后,请记住删除群集,以避免不必要的成本。

结论

使用 Azure AKS Automatic 和 ECK 可为部署 Elasticsearch 和 Kibana 提供一个平衡的解决方案:它降低了操作复杂性,确保了自动扩展和更新,并充分利用了 Kubernetes 的灵活性。这种方法非常适合需要可靠、可重复和可维护的部署流程,而无需手动管理每个基础架构细节的团队,使其成为测试和生产环境的实用选择。

后续步骤

如果您想了解有关 Kubernetes 的更多信息,可点击此处查看官方文档:

相关内容

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

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

亲自试用