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

与基于 Marketplace 的弹性云解决方案相比,ECK 需要付出更多努力,但它比自己部署虚拟机更加自动化,因为 Kubernetes 操作员将负责系统协调和节点扩展。
这一次,我们将使用自动功能与 Azure Kubernetes 服务 (AKS) 配合工作。在其他文章中,您将学习如何使用Azure VM和Azure 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_v5、Standard_D4lds_v5、Standard_D4ads_v5、Standard_D4ds_v5、Standard_D4d_v5、Standard_D4d_v4、Standard_DS3_v2、Standard_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 elasticsearch 和kubectl 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 的更多信息,可点击此处查看官方文档:





