【问题标题】:How to get kubernetes components metric data in kubernetes?如何在 Kubernetes 中获取 Kubernetes 组件指标数据?
【发布时间】:2017-11-08 11:05:15
【问题描述】:

我正在尝试获取网络输入和输出字节数、磁盘读写速度等指标数据。在 kubernetes 仪表板上,我只获取内存和 CPU 数据。我什至在 kube-system 命名空间中安装了 heapster、influx db 和 grafana。当我运行命令 kubectl cluster-info 时,它显示“无法访问此站点”。因此,仪表板似乎正在运行,但其他 API 没有。还有其他方法可以获取此指标数据吗?

【问题讨论】:

  • 我建议您查看 cAdvisor。它提供了在 K8s 集群中运行容器的资源使用和性能特征。
  • 语法更正

标签: kubernetes influxdb grafana kubernetes-health-check heapster


【解决方案1】:

因为你已经安装了 heapster、influxdb 和 grafana。因此,您可以使用以下命令访问 CPU、内存和存储资源。

kubectl top pods --all-namespaces.

此命令允许您访问 Pod 的资源消耗。

另外,如果你想访问节点的资源消耗。那么,你可以拍这个命令

kubectl top nodes 

【讨论】:

  • 上述命令似乎有效,但只给我内存和 cpu 数据,而不是网络或磁盘信息。我能做些什么来获得这些指标值吗?。
  • 命令“kubectl top pods -all-namespaces”之前应该有一个破折号,全部是“kubectl top pods --all-namespaces”
【解决方案2】:

是的,您可以从 heapster api 获取这些数据。

只需在 heapster.yaml 文件中添加一个新条目即可。
在规范(服务)下添加

type: NodePort 

(实际上你这样做是在暴露 heapster API)。

现在您的 heapster.yaml 文件部分应该如下所示

spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 8082
  selector:
    k8s-app: heapster

现在再次部署您的 heapster.yaml。

现在使用 followng 命令从您的 kubernetes 集群中获取服务列表。

kubectl get services -n kube-system

在那里你可以看到 heapster 的端口是这样的:

80:31637/TCP 

现在尝试使用集群 IP 和端口访问 heapster API。
像这样:

http://192.168.99.100:31637/api/v1/model/metrics

您现在应该可以看到指标了。
更多信息请参考https://github.com/kubernetes/heapster/blob/master/docs/model.md。

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 2019-05-01
    • 2019-12-11
    • 2020-06-13
    • 2019-02-12
    • 2020-02-05
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多