本镜像封装了一个轻量级应用,旨在监控Kubernetes集群中的对象(如Pod、Deployment、Service等),并在这些对象发生创建、更新或删除等变更时,自动捕获并记录变更前后的差异信息。主要用途包括跟踪Kubernetes资源的变更历史、支持配置审计、辅助故障排查及检测配置漂移等场景。
集群内部署(推荐)
在Kubernetes集群内通过Pod部署,利用ServiceAccount获取API访问权限:
yamlapiVersion: v1 kind: Pod metadata: name: k8s-object-diff-watcher namespace: default spec: serviceAccountName: diff-watcher-sa # 需提前创建具有适当权限的ServiceAccount containers: - name: diff-watcher image: [镜像名称] # 替换为实际镜像地址 env: - name: WATCH_OBJECT_TYPES value: "pod,deployment,configmap" # 监控的对象类型,逗号分隔 - name: WATCH_NAMESPACES value: "default,kube-system" # 监控的命名空间,逗号分隔(留空表示所有命名空间) - name: LOG_FORMAT value: "json" # 日志格式,可选json或text - name: LOG_LEVEL value: "info" # 日志级别,可选debug/info/warn/error
集群外部署
通过本地Docker运行,使用kubeconfig文件访问远程Kubernetes集群:
bashdocker run -d \ --name k8s-diff-watcher \ -v /path/to/local/kubeconfig:/app/kubeconfig \ # 挂载本地kubeconfig文件 -e KUBE_CONFIG_PATH=/app/kubeconfig \ # 指定kubeconfig路径 -e WATCH_OBJECT_TYPES="deployment,statefulset" \ -e WATCH_NAMESPACES="prod" \ -e LOG_FORMAT="text" \ [镜像名称] # 替换为实际镜像地址
环境变量配置
| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
WATCH_OBJECT_TYPES | 需监控的Kubernetes对象类型,逗号分隔 | pod,deployment | pod,configmap,secret |
WATCH_NAMESPACES | 需监控的命名空间,逗号分隔;留空表示所有命名空间 | (空) | default,prod,staging |
LABEL_SELECTOR | 按标签筛选监控对象(格式:key1=value1,key2=value2) | (空) | app=backend,env=prod |
LOG_FORMAT | 日志输出格式,支持json或text | json | text |
LOG_LEVEL | 日志级别,支持debug/info/warn/error | info | debug |
KUBE_CONFIG_PATH | 集群外部署时,本地kubeconfig文件路径(集群内部署无需设置) | (空) | /app/config/kubeconfig |
DIFF_OUTPUT_DETAIL | 差异日志详细程度,支持full(完整差异)或summary(仅变更字段) | full | summary |
JSON格式日志(默认)
json{ "timestamp": "2023-10-01T12:34:56Z", "event_type": "update", "object_type": "deployment", "object_name": "nginx-deploy", "namespace": "default", "diff": { "spec.replicas": { "old_value": 2, "new_value": 3 } }, "resource_version": "123456" }
文本格式日志
2023-10-01T12:34:56Z [INFO] Update event detected: deployment/nginx-deploy (namespace: default) Diff: spec.replicas: 2 → 3 Resource version: 123456
在Kubernetes集群内部署时,需为应用的ServiceAccount绑定以下最小权限的ClusterRole:
yamlapiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: k8s-diff-watcher-role rules: - apiGroups: ["*"] resources: ["pods", "deployments", "statefulsets", "configmaps", "secrets", "services"] # 根据监控对象类型调整 verbs: ["get", "watch", "list"] # 仅需读取权限
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务