”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用 Kubernetes、Helm 和 Ingress 部署监控堆栈

使用 Kubernetes、Helm 和 Ingress 部署监控堆栈

发布于2024-11-08
浏览:705

Deploying a Monitoring Stack with Kubernetes, Helm, and Ingress

观察和管理 Kubernetes 集群的性能对于维护应用程序运行状况、识别问题和确保高可用性至关重要。我将引导您使用 kubectl 和 Helm 设置全面的监控解决方案,将 Grafana、Loki 和 Prometheus 部署到集群,以及设置 Ingress 以进行外部访问。

我们将介绍以下关键步骤:

  1. 应用 Kubernetes 命名空间进行监控。
  2. 安装 Helm 并设置必要的存储库。
  3. 使用 Helm 部署 Loki、Prometheus 和 Grafana。
  4. 应用 Ingress 规则向外部公开服务。

先决条件
在开始之前,请确保您具备以下条件:

  1. 配置了 kubectl 的 Kubernetes 集群。
  2. Helm 安装在您的本地计算机上。
  3. 应用 YAML 配置和安装图表的正确访问权限。

第 1 步:创建监控命名空间

命名空间可帮助您逻辑地划分和组织 Kubernetes 资源。为了避免冲突并保持监控资源独立,我们将为监控工具创建专用的命名空间。

1。应用监控命名空间:将以下内容保存到monitoring-namespace.yml文件中:

api版本:v1
种类:命名空间
元数据:
名称:监控
标签:
app.kubernetes.io/name: 监控
app.kubernetes.io/instance:监控

2.使用 kubectl 应用命名空间:

kubectl apply -f reporting-namespace.yml

此命令在 Kubernetes 集群中创建一个名为“monitoring”的新命名空间。

第 2 步:安装 Helm 并添加 Grafana 存储库
Helm 是 Kubernetes 包管理器,可以更轻松地部署 Grafana、Loki 和 Prometheus 等复杂应用程序。以下是如何安装 Helm 并设置必要的存储库。

  1. 安装 Helm(如果尚未安装):

sudo snap install helm --classic

此命令使用 Snap(Linux 的包管理系统)安装 Helm。

  1. 添加 Grafana Helm 图表存储库:

helm 仓库添加 grafana https://grafana.github.io/helm-charts

  1. 更新 Helm 存储库:

helm 仓库更新

这可确保 Helm 拥有 Grafana 存储库中的最新图表。

第 3 步:使用 Helm 部署 Loki、Prometheus 和 Grafana

现在 Helm 已安装并配置完毕,我们将使用 Grafana Helm 图表部署 Loki、Prometheus 和 Grafana。

1。运行Helm安装命令:

helm 升级 --install loki --namespace=monitoring grafana/loki-stack \
--set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false,loki.persistence.enabled=true,loki.persistence.storageClassName=gp2 ,loki.persistence.size=100Gi --set nodeSelector.name=node.kubernetes.io/description=all_product

A:Grafana:**这将在 Helm 图表中启用监控仪表板工具 Grafana。
**B:Prometheus:**启用 Prometheus 来收集指标,同时禁用 Alertmanager 和 Prometheus 服务器的持久卷以简化存储配置。
**C: Loki:
Loki,日志聚合工具,使用 gp2 存储类启用 100Gi 的持久卷存储。

--install 标志确保在之前未部署堆栈的情况下安装该堆栈。 --upgrade 标志将堆栈更新到最新版本(如果已安装)。

2.验证安装:安装成功后,检查监控命名空间中运行的pod的状态:

kubectl get pods -n 监控

您应该会看到 Grafana、Prometheus、Loki 和 Promtail(将日志发送到 Loki)的 pod。

第 4 步:设置外部访问的入口

要从集群外部访问 Grafana、Prometheus 或 Loki,您需要配置 Ingress 资源。这允许外部 HTTP/S 访问监控服务。

*1。创建 Ingress 资源:将以下示例保存到 monitoring-ingress.yml 文件:
*

api版本:networking.k8s.io/v1
种类:入口
元数据:
名称:监控入口
命名空间:监控
注释:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer:letencrypt
规格:
tls:
- 主持人:

- your-domain.com
秘密名称:证书名称
规则:
- 主机:your-domain.com
http:
路径:
- 小路: /
路径类型:前缀
后端:
服务:
名称:loki-grafana
港口:
数量:80

此 Ingress 配置在域名 {your-domain.com} 下为 Grafana、Prometheus 和 Loki 设置路由。您需要将 your-domain.com 替换为您的实际域,并配置 DNS 以指向集群的外部 IP。

2.申请Ingress资源:

kubectl apply -f reporting-ingress.yml

一旦应用,入口控制器将根据主机名将流量路由到适当的服务。

  1. 验证 Ingress 设置:检查 Ingress 资源的状态以确保其配置正确:

kubectl get ingress -n 监控

确保您的 ADDRESS 列具有外部 IP,以便外部可以访问服务。

第 5 步:访问监控仪表板

正确配置 Ingress 并且 DNS 指向您的集群后,您就可以访问 Grafana、Prometheus 和 Loki。

结论

只需几个命令,您就可以在 Kubernetes 集群上使用 Helm 成功部署完整的监控堆栈。通过利用 Helm 图表,您可以简化 Grafana、Loki 和 Prometheus 等复杂应用程序的部署,同时还集成 Ingress 以方便访问。您现在拥有强大的可观察性设置,可让您实时监控日志和指标,帮助您更有效地管理和优化 Kubernetes 应用程序。

这种基于 Helm 的部署可确保可扩展性并简化升级或配置更改,从而更轻松地管理生产环境中的可观察性。

版本声明 本文转载于:https://dev.to/seewhy/deploying-a-monitoring-stack-with-kubernetes-helm-and-ingress-cp5?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3