让我们在Cloud Insights中试试对Kubernetes进行监控

关于这篇文章

当我们谈到Kubernetes的监控时,Prometheus(+Grafana)是非常著名的解决方案。然而,我们公司的监控解决方案Cloud Insights(以下简称CI)也集成了对Kubernetes的监控功能。
在本文中,我们将专注于CI对Kubernetes的监控,并检查实际使用体验等方面。

总结

首先,我将总结通过后续的内容确认所得出的结果。

以下是Cloud Insights的k8s监控功能:

1. 在内置的仪表盘(Kubernetes Explorer)上可以俯瞰集群的状态。
2. 可以监控各种k8s资源的指标和日志。
3. 可以监控代表性的中间件的指标,如Nginx、Apache、MongoDB、PostgresSQL等。
4. 可以监控Cloud Insights独有的基于机器学习引擎的指标。
5. 可以指定警报输出条件,并通过电子邮件或Webhook进行通知。

关于Cloud Insights

スクリーンショット 2022-11-07 17.58.05.png

尝试使用Cloud Insights的Kubernetes监控功能。

在这里,我们将假设您已经完成了CI(身份验证)的注册,并继续进行下去。

部署NetApp Kubernetes Monitoring Operator(NKMO)。

为了监视各种产品,在CI上需要部署一种名为Data Collector的对象,在这个对象中专门针对监视目标的硬件和云资源进行监控。如果要监视ONTAP,就需要使用专为ONTAP设计的Data Collector;如果要监视AWS EC2,就需要使用专为EC2设计的Data Collector。

对于k8s监视的情况,Data Collector以符合k8s运营商模式的形式提供。其名为NetApp Kubernetes Monitoring Operator,简称NKMO。

スクリーンショット 2022-11-07 14.56.43.png

将显示NKMO的安装步骤。请按照英文说明进行以下操作。

    1. 输入集群名称、部署NKMO的命名空间

 

    1. 复制安装器代码片段

 

    1. 在拥有kubectl和curl的终端上粘贴并执行安装器代码片段

 

    完成
スクリーンショット 2022-11-07 15.02.58.png
# 2でコピーしたスニペットをペーストして実行
$ clustername="cluster1" && namespace=netapp-monitoring && token=xxxxxxx && key=xxxxxxxx && domain=ps1325.c01.cloudinsights.netapp.com && curl -X GET -H "Authorization: Bearer $token" -H "X-CloudInsights-Namespace: $namespace" -H "X-CloudInsights-ClusterName: $clustername" -H "X-CloudInsights-ApiKey-Id: $key" https://$domain/rest/v1/lake/telegraf/platforms/operator?name=operator.yaml | kubectl apply -f - && echo "Getting operator based installer config..." && curl -X GET -H "Authorization: Bearer $token" -H "X-CloudInsights-Namespace: $namespace" -H "X-CloudInsights-ClusterName: $clustername" -H "X-CloudInsights-ApiKey-Id: $key" https://$domain/rest/v1/lake/telegraf/platforms/operator?name=operator-cr.yaml | kubectl apply -f - 

在这个命令行中,我们将在k8s上部署NKMO并监视它,同时访问CI的API,并将目标k8s集群注册。当部署完成后,将展开以下内容:operator本体和另外两种类型的pod。

# デプロイされたリソースを確認
$ kubectl get pod -n netapp-monitoring
NAME                                   READY   STATUS    RESTARTS   AGE
kube-state-metrics-5cd9cf96c6-whtl4    1/1     Running   0          5d20h
monitoring-operator-68cf4c54db-6n7d9   2/2     Running   0          5d20h
telegraf-ds-n5pwz                      1/1     Running   0          5d20h
telegraf-ds-p2h2v                      1/1     Running   0          5d20h
telegraf-rs-dmxcq                      1/1     Running   0          5d20h

kube-state-metrics是一个应用程序,用于生成与Kubernetes各种资源相关的指标,并在包括Prometheus在内的各种监控解决方案中使用。
通过daemonSet部署在每个节点上的telegraf是一个应用程序,用于在云上的CI实例之间进行指标传递。
如果这些资源成功部署,各种指标/日志将被传送到云上的CI实例,从而启用k8s监控。

关于在Kubernetes上监控中间件/应用程序
虽然上述步骤可以有效监控Kubernetes资源,但是如果要监控在Kubernetes基础设施上部署的应用程序,如Nginx、MongoDB等,则需要额外安装针对每个应用程序适用的数据收集器。

使用 Kubernetes Explorer

スクリーンショット 2022-11-07 16.15.17.png

Kubernetes Explorer中可以查看的内容(例子):

集群列表
总Pod数
Pod的调度情况

每个节点上调度的Pod数、发生错误的Pod、无法调度而处于Pending状态的Pod等

CPU使用率/MEM使用率/Disk使用率

可以以整个集群或命名空间为单位以不同的粒度查看。

创建查询

您可以通过使用查询来查看Kubernetes Explorer无法显示的详细指标和日志。请从屏幕左侧菜单选择查询 -> + 创建新的度量查询(如果要查看日志,请选择查询 -> + 创建新的日志查询)。

スクリーンショット 2022-11-07 16.55.04.png
关于可在CI上使用的与k8s相关的指标,
为了生成k8s上各种资源(pod、deployment、service等)的指标,CI内置了kube-state-metrics工具。您可以参考kube-state-metrics文档中的指标列表。ConfigMap指标
DaemonSet指标
Deployment指标
Ingress指标
命名空间指标
节点指标
持久卷指标
持久卷声明指标
Pod指标
ReplicaSet指标
Secret指标
Service指标
StatefulSet指标

另外,除了kube-state-metrics的标准指标外,CI还提供了自己的指标。在这里,我们将介绍一个代表性的例子,即kubernetes.pv对象的指标之一,称为timeToFull。

スクリーンショット 2022-11-07 17.08.09.png

根据机器学习引擎预测,timeToFull.total表示PV容量耗尽的剩余天数。看图上方名为“nfsapp”的PV,预计大约在95天后PV容量将降为零。

在“nfsapp”这个例子中,timeToFull.confidenceInterval表示timeToFull.total的预测准确度。这意味着显示在timeToFull.total中的预测(PV在95天后耗尽)可能存在约12天左右的误差。

如果是每天都会发生固定规律访问模式的PV,每天写入100GB的数据,那么预测就很容易,timeToFull.confidenceInterval的值会接近于0。
然而,如果是不规律地进行写入和删除操作的PV,预测就很困难,timeToFull.confidenceInterval的值会更大。

設定警報通知

当然也可以设置条件,并发送警报到指定的通知接收方。请点击屏幕左侧的菜单,选择Alerts -> Manage Monitors -> + Monitor。

スクリーンショット 2022-11-07 15.43.59.png
スクリーンショット 2022-11-07 16.43.16.png
スクリーンショット 2022-11-07 16.43.26.png
スクリーンショット 2022-11-07 16.43.40.png

因为选项4和选项5是可选的,所以这次省略它们。
只需点击屏幕右上角的保存,警报设置即可生效。

总之

我已经通过Cloud Insights对Kubernetes监控功能进行了验证。如果想更详细了解Cloud Insights,请阅读以下文章。

公式ドキュメント
https://docs.netapp.com/us-en/cloudinsights/

ITインフラのコストを最適化したいのでITインフラを可視化してみた
https://qiita.com/seijitanabe/items/9969d7b9504122e0e4a7

NetApp Cloud Insights – Cloud Secureを使ってみた(導入編)
https://dev.classmethod.jp/articles/introduce-netapp-cloud-insights-cloud-secure/

广告
将在 10 秒后关闭
bannerAds