问题标签 [kube-state-metrics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
680 浏览

kubernetes - 一旦最近的作业通过,如何清理失败的 CronJob 生成的作业

我正在使用 Kubernetes CronJobs 运行管理任务,并且当使用kube-state-metrics生成的作业之一失败时,Prometheus 会发出警报:

我想拥有它,以便当最近的作业通过时,清理失败的作业,以便警报停止触发。

CronJob 资源本身是否支持这种行为?

解决方法是让作业清理失败的作业作为最后一步,或者创建一个更复杂的警报规则以将最近的作业作为最终状态,但它们不是 IMO 最好的解决方案。

Kubernetes 版本:v1.15.1

0 投票
2 回答
9720 浏览

prometheus - 从系列结果 PromQL 中省略标签

假设我写了一个这样的基本 PromQL 查询

询问: kube_deployment_spec_replicas{}

结果: kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",instance="myinstance",job="myjob",namespace="default",pod="mypod",service="myservice"}

有没有一种干净的方法可以从结果时间序列中省略instancepod删除?

期望: kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",job="myjob",namespace="default",service="myservice"}

0 投票
1 回答
754 浏览

kubernetes - kube-state-metrics 的错误“没有与所有谓词匹配的节点:MatchNodeSelector (7), PodToleratesNodeTaints (1)”

对于 kube-state-metrics,我收到错误消息“没有可用的节点与所有谓词匹配:MatchNodeSelector (7)、PodToleratesNodeTaints (1)”。请指导我如何解决此问题

admin@ip-172-20-58-79:~/kubernetes-prometheus$ kubectl describe po -n kube-system kube-state-metrics-747bcc4d7d-kfn7t

这个问题与节点上的内存有关吗?如果是,我该如何确认?我检查了所有节点,只有一个节点似乎在 80% 以上,剩余的内存使用率在 45% 到 70% 之间

内存使用率为 44% 的节点: 内存使用率为 44% 的节点:

集群内存使用总量:
集群内存使用总量:

以下屏幕截图显示了 kube-state-metrics (0/1 up):

在此处输入图像描述

此外,Prometheus 显示 kubernetes-pods (0/0 up) 是由于 kube-state-metrics 不起作用还是其他原因?和上面截图中看到的 kubernetes-apiservers (0/1 up) 为什么不起来?如何解决它?

在此处输入图像描述

admin@ip-172-20-58-79:~/kubernetes-prometheus$ sudo tail -f /var/log/kube-apiserver.log | grep 错误

MaggieO 回复后更新:

此外,我想将此命令添加到上面的 deployment.yaml 但出现缩进错误。显示请帮助我应该在哪里添加它。

更新 2:@MaggieO 即使在添加了命令/参数后,它仍显示相同的错误并且 pod 处于挂起状态:

更新 deployment.yaml :

更新 3:如下图所示,无法获取节点,请告诉我如何解决此问题

在此处输入图像描述

0 投票
1 回答
1558 浏览

kubernetes - 具有多个 kube-state-metrics 实例的重复指标

问题

从 prometheus 查询来自kube-state-metrics 的指标时重复数据。

运行 3 个kube-state-metrics实例的示例查询和结果:

询问:

指标

观察

当 N 个 Pod 运行kube-state-metrics时,每个指标都会出现 Nx 。如果它是单个 pod 运行,我们会得到正确的信息。

可能的解决方案

  1. 缩小到 kube-state-metrics 的单个实例。(可用性降低是一个问题)
  2. 启用分片。(解决重复问题,仍然较少可用)

根据文档,对于水平缩放,我们必须将分片参数传递给 pod。

分片是零索引的。所以我们必须为每个 pod 传递索引和分片总数。

我们正在使用Helm 图表,它被部署为部署。

问题

  1. 如果可能的话,在这种情况下,我们如何将不同的参数传递给不同的 pod?
  2. 考虑到 k8s 工作负载的自我修复特性,我们是否应该担心kube-state-metrics的可用性?
  3. 我们什么时候应该真正将它扩展到多个实例以及如何?
0 投票
2 回答
3756 浏览

amazon-web-services - 将 YAML 转换为 JSON 时出错:yaml:第 21 行:找到违反缩进的制表符

以下 deployment.yaml 出现错误:

admin@ip-172-20-58-79:~/kubernetes-prometheus/kube-state-metrics-configs$ kubectl apply -f deployment.yaml

admin@ip-172-20-58-79:~/kubernetes-prometheus/kube-state-metrics-configs$ cat deployment.yaml

更新 1:admin@ip-172-20-58-79:~$ kubectl describe nodes

https://pastebin.com/bectdNes

更新 2:根据 Arghya Sadhu 的建议,添加了 nodeSelector

收到以下错误:

更改端口后,现在得到:

0 投票
0 回答
84 浏览

kubernetes - 当集群中只有主节点运行时,kube-stat-metrics 不起作用

我正在使用 grafana 和 Prometheus 监控 Kubernetes 集群(使用 kubeadm 部署)。

我在使用 kube-state-metrics 时遇到了一些困难,即当我启动唯一的主节点时,我在 Prometheus 目标中看到 kube-state-metrics 下降,但是当我启动一个节点时,kube-state-metrics 在 Prometheus 中启动目标。

另一个有趣的部分是,当我只启动主节点时,我看到一个 kube-state-meterics pod 已启动并在 kube-system 命名空间中运行,但我无法访问指标。

我在理解 kube-state-metrics 方面遗漏了什么吗?

请帮帮我。

0 投票
0 回答
820 浏览

kubernetes - 在 prometheus 中使用 Kube-state-metrics 获取节点上运行的容器总数

kube-state-metrics 允许我通过运行来查找每个节点上运行的 pod 数量

我可以通过运行获取每个 pod 中的容器数量

但是,kube_pod_container_info 并没有告诉我容器正在运行的节点。

但是,我找不到通过将这两个查询链接在一起来获取每个节点上的容器总数的方法。是否存在已经为我执行此操作的现有查询?

0 投票
1 回答
193 浏览

google-cloud-platform - 无法了解 Stackdriver Monitoring 使用情况的 GCP 帐单

我们已经在 GCP 上的一个 kubernetes 集群上实现了 kube-state 指标(按照本文第4.4.1 节中提到的步骤安装监控组件)。所以基本上它在我们的集群上创建了 3 个新的部署 node-exporter、prometheus-k8s 和 kube-state 指标。之后,我们能够在 Metric Explorer 中看到所有带有前缀“external/prometheus/”的指标。

为了检查外部指标定价,我们参考了这个链接。因此,我们相应地计算了价格,但当我们收到账单时,这是一个令人震惊的数字。GCP 收取了很多费用,但我们没有在仪表板中添加任何单一指标,也没有设置任何监控。从摄取量(大约 1.38GB/天)来看,这些监控工具似乎做了一些后台工作(在特定时间读取一些指标左右),消耗了这个量,我们收到了这个账单。

我们想了解这些 kube-state 指标监控组件是如何工作的。它会自动获取指标数据并以这种方式增加摄取量和计费,还是其设置中存在任何错误配置?

对此的任何指导将不胜感激!

谢谢你。

0 投票
0 回答
122 浏览

kubernetes - 在命名空间之间拆分 Kubernetes 集群成本

我们正在运行一个在 EKS(在 AWS 中)上运行的多租户 Kubernetes 集群,我需要想出一种适当的方式来向所有使用该集群的团队收费。我们有 EC2 工作节点的成本,但我不知道如何根据普罗米修斯的指标将这些成本分开。为了使它更棘手,我还需要给出过去一周和过去一个月每个团队(或 pod/命名空间)的成本。

每个团队使用不同的命名空间,但这很快就会改变,因此每个 pod 都会有一个带有团队名称的标签。

环顾四周,我可以看到我需要使用 container_spec_cpu_shares 和 container_memory_working_set_bytes 指标,但是如何将这两个指标结合起来使用,以便我们获得工作节点成本的百分比?

另外,我对 promql 的了解还不够,不知道如何获取过去一周和过去一个月的范围向量指标的统计信息。

如果有人可以分享解决方案,如果他们已经这样做了,或者甚至可以为我指出正确的方向,我将不胜感激。

谢谢

0 投票
0 回答
337 浏览

kubernetes - 如何使用入口控制器访问自定义 URL 上的 Kube 状态指标服务指标

我有一个中央集群,在上面配置了我的 promethus 和 grafana Dashboard。这个想法是使用这个中央集群并从不同的集群中导出指标并在中央集群上查看它。每个应用程序都有自己的 grafana 仪表板。所以我的想法是在我的 kubernetes 集群上安装 kube-state-metrics 和 node_exporter 并使用入口控制器导出指标。

如果我一次使用一个出口商,我就能做到。但我的想法是同时使用这两个出口商。问题是 Kube 状态指标服务公开了 /metrics URI 上的所有指标,而 node_exporter 也公开了 /metrics URI 上的所有指标。

现在是我可以自定义 kube-state-metrics 端点以在我的入口控制器中使用它的一种方式。

例如