
itzg/kube-metrics-reporter是一个轻量级应用,用于访问https://github.com/kubernetes/metrics%E5%B9%B6%E6%94%B6%E9%9B%86%E3%80%81%E6%8A%A5%E5%91%8APod%E5%AE%B9%E5%99%A8%E7%9A%84%E8%B5%84%E6%BA%90%E4%BD%BF%E7%94%A8%E6%8C%87%E6%A0%87%E3%80%82%E8%AF%A5%E9%95%9C%E5%83%8F%E6%94%AF%E6%8C%81%E5%B0%86%E6%8C%87%E6%A0%87%E8%BE%93%E5%87%BA%E5%88%B0%E6%8E%A7%E5%88%B6%E5%8F%B0%E6%88%96%E5%8F%91%E9%80%81%E8%87%B3Telegraf%EF%BC%8C%E4%BE%BF%E4%BA%8E%E8%BF%9B%E4%B8%80%E6%AD%A5%E7%9A%84%E7%9B%91%E6%8E%A7%E5%92%8C%E5%88%86%E6%9E%90%E3%80%82
kubectl top pods输出一致适用于Kubernetes集群环境中需要监控Pod容器资源使用情况的场景,尤其适合:
| 参数 | 环境变量 | 描述 | 默认值 |
|---|---|---|---|
-interval | INTERVAL | 指标收集间隔 | 1m0s |
-namespace | NAMESPACE | 要监控的Pod所在命名空间 | default |
-repeat | REPEAT | 是否按间隔重复报告指标 | 不启用 |
-telegraf-endpoint | TELEGRAF_ENDPOINT | Telegraf端点(格式host:port),配置后指标将发送至该端点 | 未配置 |
控制台报告(默认)
无需额外配置,启动后将直接在控制台输出指标,格式如下:
2019-12-27T22:39:36-06:00 pod=grafana-0, container=grafana, cpu=1m, mem=20Mi 2019-12-27T22:39:36-06:00 pod=nginx-ingress-controller-857f44797-gs92j, container=nginx-ingress-controller, cpu=6m, mem=111Mi 2019-12-27T22:39:36-06:00 pod=telegraf-mwrh9, container=telegraf, cpu=1m, mem=22Mi 2019-12-27T22:39:36-06:00 pod=influxdb-0, container=influxdb, cpu=2m, mem=37Mi
Telegraf报告
当配置TELEGRAF_ENDPOINT后,指标将以Influx行协议格式发送至指定的Telegraf端点。
Telegraf配置:需在Telegraf中启用socket_listener插件,示例配置:
toml[[inputs.socket_listener]] service_address = "tcp://:8094"
发送的指标格式:
kubernetes_pod_container,container_name=nginx-ingress-controller,host=dbc5f9812889,namespace=default,pod_name=nginx-ingress-controller-857f44797-gs92j cpu_usage_millicores=8i,memory_usage_mbytes=111i 1577507390268680300 kubernetes_pod_container,container_name=grafana,host=dbc5f9812889,namespace=default,pod_name=grafana-0 cpu_usage_millicores=1i,memory_usage_mbytes=20i 1577507390268680300
由于应用需要访问Kubernetes metrics API,需为其配置具有适当权限的服务账户。
创建服务账户、角色和角色绑定
yaml--- apiVersion: v1 kind: ServiceAccount metadata: name: kube-metrics-monitor --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: kube-metrics-monitor rules: - apiGroups: ["metrics.k8s.io"] resources: - pods verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: kube-metrics-monitor roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: kube-metrics-monitor subjects: - kind: ServiceAccount name: kube-metrics-monitor
以下是在Kubernetes中部署该应用的示例:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: kube-metrics-reporter labels: app: kube-metrics-reporter spec: replicas: 1 template: metadata: name: kube-metrics-reporter labels: app: kube-metrics-reporter spec: serviceAccountName: kube-metrics-monitor containers: - name: kube-metrics-reporter image: itzg/kube-metrics-reporter:v0.1.0 env: - name: TELEGRAF_ENDPOINT value: telegraf:8094 # 替换为实际的Telegraf服务地址 - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace # 使用当前命名空间 - name: INTERVAL value: "30s" # 设置30秒收集一次指标 - name: REPEAT value: "true" # 启用重复报告 resources: requests: cpu: 10m # 资源请求 restartPolicy: Always selector: matchLabels: app: kube-metrics-reporter
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务