问题标签 [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.
kubernetes - _condition_ 在公制中是什么意思?
在kube-state-metrics中有一个 pod 的指标 -kube_pod_status_ready
它有 3 个属性
condition
属性代表什么?我在文档中的任何地方都找不到它的定义。我可以猜到它的含义,但最好能得到它是如何计算的定义或解释。
kubernetes - Prometheus kube_pod_container_status_waiting_reason 未捕获 pod CrashLoopBackOff 原因
根据定义,kube_pod_container_status_waiting_reason
应该捕获 Pod 处于 Waiting 状态的原因。
我的 kubernetes 集群中有几个 pod,它们位于 CrashLoopBackOff 中,但我没有看到kube_pod_container_status_waiting_reason
. 它只捕获了两个原因 - ErrImagePull 和 ContainerCreating。
sum by (reason) (kube_pod_container_status_waiting_reason)
在 prometheus 中运行会产生结果:
我正在运行quay.io/coreos/kube-state-metrics:v1.2.0
kube-state-metrics 的图像。
我错过了什么?为什么 CrashLoopBackOff 原因没有出现在查询中?我想设置一个警报,查找处于等待状态的 pod 并说明原因。所以考虑合并kube_pod_container_status_waiting
以找到处于等待状态的 pod 并kube_pod_container_status_waiting_reason
找到确切的原因。
请协助。谢谢!
kubernetes - kube cronjobs 的 Prometheus 多对多问题
嘿那里,
我正在尝试使用 Prometheus 配置 Kubernetes Cronjobs 监控和警报。我发现这个有用的指南
但是我总是得到一个不允许的多对多匹配:匹配标签必须在一侧是唯一的错误。
例如,这是触发此错误的 PromQL 查询:
max(
kube_job_status_start_time
* ON(job_name) GROUP_RIGHT()
kube_job_labels{label_cronjob!=""}
) BY (job_name, label_cronjob)
查询本身会导致例如这些指标
kube_job_status_start_time:
kube_job_status_start_time{app="kube-state-metrics",chart="kube-state-metrics-0.12.1",heritage="Tiller",instance="REDACTED",job="kubernetes-service-endpoints",job_name="test-1546295400",kubernetes_name="kube-state-metrics",kubernetes_namespace="monitoring",kubernetes_node="REDACTED",namespace="test-develop",release="kube-state-metrics"}
kube_job_labels{label_cronjob!=""}:
kube_job_labels{app="kube-state-metrics",chart="kube-state-metrics-0.12.1",heritage="Tiller",instance="REDACTED",job="kubernetes-service-endpoints",job_name="test-1546295400",kubernetes_name="kube-state-metrics",kubernetes_namespace="monitoring",kubernetes_node="REDACTED",label_cronjob="test",label_environment="test-develop",namespace="test-develop",release="kube-state-metrics"}
我在这里缺少什么吗?我从指南中尝试的每个查询都会发生相同的多对多错误。即使我自己从头开始构建它也会导致同样的错误。希望你能在这里帮助我:)
kubernetes - 重新启动 Pod 时发出警报:Windows 容器上的 Prometheus
我为 Windows 容器设置了 Prometheus,它会抓取 wmi_exporter 支持的指标。但我想要一些跟踪 pod 重启等的指标,这些指标不是其中的一部分。我相信 kube-state-metrics 提供了这个功能。但我找不到任何方法将它安装在 Windows 容器上。我在网上找到的所有 helm 图表都有只适用于 Linux 容器的图像。那么,有没有办法将它安装在 Windows 容器上?
有没有其他更好的方法来发出 pod/container 重启的警报?
kubernetes - Kube-state-metrics 错误:无法创建客户端:... i/o 超时
我正在虚拟机中运行 Kubernetes 并阅读基本教程,目前将日志记录和指标添加到 PHP / Redis 留言簿示例。我正在尝试安装 kube-state-metrics:
但它失败了。
...
警告 Unhealthy 28m (x8 over 30m) kubelet, kubernetes-node1 Readiness probe failed: Get http://192.168.129.102:8080/healthz : dial tcp 192.168.129.102:8080: connect: connection denied
I0514 17:29:26.980707 1 main.go:85] 使用默认收集器
I0514 17:29:26.980774 1 main.go:93] 使用所有命名空间
I0514 17:29:26.980780 1 main.go:129] 指标白黑名单:将以下项目列入黑名单:
W0514 17:29:26.980800 1 client_config.go:549] 既没有指定 --kubeconfig 也没有指定 --master。使用 inClusterConfig。这可能行不通。
I0514 17:29:26.983504 1 main.go:169] 测试与服务器的通信
F0514 17:29:56.984025 1 main.go:137] 无法创建客户端:与 apiserver 通信时出错:获取https://10.96.0.1:443 /version?timeout=32s : dial tcp 10.96.0.1:443: i/o timeout
我不确定这个 10.96.0.1 IP 是否正确。我的虚拟机位于桥接网络 10.10.10.0/24 和仅主机网络 192.168.59.0/24 中。在初始化 Kubernetes 时,我使用了参数--pod-network-cidr=192.168.0.0/16
,所以这是我期望的另一个 IP 范围。但是 10.96.0.1 看起来很陌生。
我是 Kubernetes 新手,只是在做基础教程,所以我现在不知道该做什么。如何修复它或进一步调查?
编辑 - 附加信息:
kubectl get nodes -o wide
我用来初始化集群的命令:
kubernetes - 如何在 kube 状态指标中计算 pod 的 cpu 使用率?
我使用 kubernetes api 和 kube 状态指标使用 prometheus 远程监控 eks 集群。在 Kubernetes api 中,我们有一个指标container_cpu_usage_seconds_total
,它给出了 pod 的 cpu 使用率。kube-state-metrics 中是否有类似的指标可以提供 cpu 使用率。实际上,我正在尝试获取与 kubernetes api 和 kube-state-metrics 完全不同的集群 cpu 使用情况,以下是计算。
kube-state-metrics:
sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores) * 100
- 这给了 101%
而 kube-state-metrics 给出12%
的对我来说看起来很准确。
kubernetes-api:
sum (rate (container_cpu_usage_seconds_total{id="/",kubernetes_io_hostname=~"^$Node$", job=~"$job$"}[5m])) / sum (machine_cpu_cores{kubernetes_io_hostname=~"^$Node$", job=~"$job$"}) * 100
与 kubernetes-api 相比,我认为 kube-state-metric 中没有任何指标可以提供 cpu 使用率
提前致谢。
kubernetes - kubernetes_sd_config(在prometheus内)与metrics-server和kube-state-metrics有什么区别?
我已经阅读了一些关于监控 k8s 的页面,我发现了 kubernetes_sd_config(在 prometheus 中)、metrics-server(代替了heapster)和kube-state-metrics。它们都可以提供指标,但有什么区别?
- kubernetes_sd_config(在 prometheus 内)是否提供了我可以使用 metrics-server 和 kube-state-metrics 获得的所有数据?
- kubernetes_sd_config 是否足以用于监控?
- metrics-server 是否仅用于向内部组件(例如 hpa 控制器)提供数据(小于 kubernetes_sd_config)?
- kube-state-metrics 是否仅适用于 k8s 中的对象(pod、deployment...)?
- 他们各自的目标是什么?
prometheus - 如何为外部 prometheus 服务器安装和配置 kube-state-metrics 以监控 kubernetes
如何安装和配置 kube-state-metrics 以监控外部/独立/集中式 prometheus 服务器上的 kubernetes。
我遇到了一些将我指向 kube-state-metrics 的文章,但不确定我需要在哪里运行 kube-state-metrics
我有 2 个 kubernetes 集群,我想监控 Prometheus 和 grafana 上的 kubernetes 集群指标(用于可视化。如何使用一台 prometheus 服务器来实现。
kubernetes - PromQL 以图表形式每小时创建的 Kubernetes POD 数量
我将 Kubernetes 与 kube-state-metrics 和 Prometheus/grafana 一起使用来绘制 Kubernetes 集群的各种指标。
现在,我想绘制图表,随着时间的推移,每小时创建了多少新POD。
Metrickube_pod_created
包含 Creation-Timestamp 作为值,但由于每个 Time-Slot 中都有一个 Value,因此以下查询还为未创建新 POD 的 Time-Slot 返回 Results >0:
我可以在某种标准中使用 Value 来仅计算 Value 是否在“当前”时间段内吗?
kubernetes - Kube-state-metrics 是新的还是格式良好的指标?
我对 Kubernetes 还很陌生,并且有一个关于 kube-state-metrics 的问题。当我使用 Prometheus 简单地监控 Kubernetes 时,我从 cAdvisor、节点(节点导出器)、pod 等获得一组指标。当我包含 kube-state-metrics 时,我似乎获得了更多“相关”指标。kube-state-metrics 是否允许从 Kubernetes 抓取“新”信息,或者它们是否使用初始 Kubernetes 指标(来自节点等,我之前提到的)进行“格式化”指标。