
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像是一个Kubernetes事件导出工具,用于将Kubernetes集群中的事件(Events)实时转换为Prometheus可采集的指标,解决K8s事件默认无法直接集成到Prometheus监控体系的问题。K8s事件包含集群资源(如Pod、Node、Deployment)的状态变化信息(如创建、故障、调度),是集群运行状态诊断的关键依据。本镜像通过监听K8s API事件流,将事件转换为Prometheus指标并暴露,支持监控、告警及数据分析场景。
1. RBAC权限配置
需创建ServiceAccount及权限绑定,以允许访问K8s事件资源:
yamlapiVersion: v1 kind: ServiceAccount metadata: name: k8s-events-exporter namespace: monitoring # 建议部署在监控命名空间 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: k8s-events-exporter-role rules: - apiGroups: [""] resources: ["events"] verbs: ["list", "watch"] # 仅需列表和监听权限 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: k8s-events-exporter-binding subjects: - kind: ServiceAccount name: k8s-events-exporter namespace: monitoring roleRef: kind: ClusterRole name: k8s-events-exporter-role apiGroup: rbac.authorization.k8s.io
2. Deployment部署
创建Deployment部署 exporter:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: k8s-events-exporter namespace: monitoring spec: replicas: 1 selector: matchLabels: app: k8s-events-exporter template: metadata: labels: app: k8s-events-exporter spec: serviceAccountName: k8s-events-exporter containers: - name: k8s-events-exporter image: <image-name>:<tag> # 替换为实际镜像名称和标签 ports: - containerPort: 9202 # 默认指标端口 env: - name: METRICS_PORT value: "9202" # 指标暴露端口 - name: METRICS_PATH value: "/metrics" # 指标路径 - name: FILTER_NAMESPACES value: "default,monitoring" # 仅导出指定命名空间事件(为空则全部导出) - name: CUSTOM_LABELS value: "cluster=prod,env=production" # 自定义指标标签 resources: requests: cpu: 10m memory: 32Mi limits: cpu: 100m memory: 128Mi
3. 配置Prometheus采集
创建Service暴露指标,并配置Prometheus采集规则:
yaml# Service配置 apiVersion: v1 kind: Service metadata: name: k8s-events-exporter namespace: monitoring labels: app: k8s-events-exporter spec: selector: app: k8s-events-exporter ports: - port: 80 targetPort: 9202 name: metrics
Prometheus采集配置(添加至scrape_configs):
yaml- job_name: 'k8s-events-exporter' kubernetes_sd_configs: - role: service namespaces: names: ['monitoring'] relabel_configs: - source_labels: [__meta_kubernetes_service_label_app] regex: k8s-events-exporter action: keep
bashdocker run -d \ --name k8s-events-exporter \ -p 9202:9202 \ -v /path/to/local/kubeconfig:/etc/kubeconfig \ -e KUBECONFIG=/etc/kubeconfig \ # 指定kubeconfig路径 -e FILTER_EVENT_TYPES=Warning \ # 仅导出Warning类型事件 <image-name>:<tag>
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
METRICS_PORT | 指标暴露端口 | 9202 |
METRICS_PATH | 指标路径 | /metrics |
KUBECONFIG | 集群外部署时kubeconfig路径 | 空(集群内自动获取) |
FILTER_NAMESPACES | 导出指定命名空间事件(逗号分隔) | 空(导出所有) |
FILTER_EVENT_TYPES | 导出指定类型事件(Normal/Warning) | 空(导出所有) |
CUSTOM_LABELS | 自定义指标标签(key=value,key2=value2) | 空 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
k8s_events_total:按事件类型、资源类型、命名空间等维度统计的事件总数(计数器类型)。k8s_events_total{event_type="Warning",resource_type="Pod",namespace="default",reason="FailedMount"} 5k8s_events_latest_timestamp:最新事件的时间戳(Gauge类型),用于监控导出状态。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务