
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
k8s-pod-count-checker是一个用于在Kubernetes集群中监控Pod数量的Docker镜像。该镜像能够根据指定的命名空间、标签或Pod名筛选出处于Running状态的Pod并进行计数,当Pod数量低于设定的阈值时,可通过RHEMS BADGES服务发送Slack通知,适用于Kubernetes集群中Pod数量的监控与异常告警场景。
创建必要文件
需创建以下文件结构:
bash. ├── clusterrolebinding.yaml # 集群角色绑定配置 ├── serviceaccount.yaml # 服务账户配置 ├── cron-pod-counter.yaml # CronJob配置 ├── dockerhub.yaml # 私有镜像仓库密钥(如需) ├── kustomization.yaml # Kustomize配置 └── pod-counter-env # 环境变量配置文件
文件详细配置
1. ClusterRoleBinding (clusterrolebinding.yaml)
用于授予pod-count-checker查看其他命名空间Pod的权限,需与后续创建的ServiceAccount名称匹配。
yamlapiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-clusterrolebinding-batch roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: {SA_NAME} # 服务账户名称,需与serviceaccount.yaml中一致 namespace: {NS_NAME} # 命名空间名称
2. ServiceAccount (serviceaccount.yaml)
定义用于运行pod-count-checker的服务账户,名称需与ClusterRoleBinding中配置一致。
yamlapiVersion: v1 kind: ServiceAccount metadata: name: {SA_NAME} # 服务账户名称
3. 环境变量配置文件 (pod-counter-env)
通过环境变量配置pod-count-checker的运行参数,后续将通过此文件生成ConfigMap。
iniTARGET_NS=NS_NAME # 目标命名空间 THRESHOLD=THRESHOLD_NUM # 阈值数量 API_TOKEN=xxxxxxxx-0123-4567-8901-234567890123 # RHEMS BADGES项目API令牌 ORG=organization_name # RHEMS BADGES组织名 REPO=repo_name # RHEMS BADGES仓库名 BRANCH=branch_name # RHEMS BADGES分支名 APP_NAME=app_name # 应用名称 CRONJOB=* * * * * # CronJob调度规则 MEMO=memo # 备注信息 SLACK_SUCCESS=slack_channnel_setting_name # 成功时通知的Slack频道配置名 SLACK_FAILED=slack_channnel_setting_name # 失败时通知的Slack频道配置名 # LABEL_KEY=KEY # 可选,Pod标签键(需与LABEL_VALUE同时设置) # LABEL_VALUE=VALUE # 可选,Pod标签值(需与LABEL_KEY同时设置) GREP_POD_NAME=GREP_STRING # 可选,Pod名关键字匹配
4. CronJob (cron-pod-counter.yaml)
定义定期执行Pod数量检查的CronJob,需指定正确的ServiceAccount。
yamlapiVersion: batch/v1 kind: CronJob metadata: name: cron-pod-counter labels: app: cron-pod-counter spec: schedule: "* * * * *" # Cron调度规则,可根据env文件中的CRONJOB参数调整 jobTemplate: spec: template: spec: serviceAccount: {SA_NAME} # 服务账户名称,需与前面配置一致 containers: - name: cron-pod-counter image: rhemsjapan/k8s-pod-count-checker imagePullPolicy: IfNotPresent envFrom: - configMapRef: name: pod-counter-env # 从ConfigMap加载环境变量
5. Secret (dockerhub.yaml) - 私有仓库时需配置
当从私有Docker仓库拉取镜像时,需配置镜像拉取密钥,详情参考Kubernetes文档。
yamlapiVersion: v1 kind: Secret metadata: name: regcred type: kubernetes.io/dockerconfigjson data: .dockerconfigjson: UmVhbGx5IHJlYWxseSByZWVlZWVlZWVlZWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGx5eXl5eXl5eXl5eXl5eXl5eXl5eSBsbGxsbGxsbGxsbGxsbG9vb29vb29vb29vb29vb29vb29vb29vb29vb25ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cgYXV0aCBrZXlzCg== # 需替换为实际的base64编码的dockerconfigjson
6. Kustomization配置 (kustomization.yaml)
Kustomize配置文件,用于集中管理资源和配置。
yamlnamespace: {NS_NAME} # 目标命名空间 resources: - clusterrolebinding.yaml - serviceaccount.yaml - dockerhub.yaml # 私有仓库时需包含 - cron-pod-counter.yaml configMapGenerator: - name: pod-counter-env envs: - pod-counter-env # 从环境变量文件生成ConfigMap
使用Kustomize应用配置:
bashkubectl apply -k .
| 环境变量名 | 是否必填 | 描述 |
|---|---|---|
| TARGET_NS | true | 需统计Pod的目标命名空间名称 |
| LABEL_KEY | false | 用于筛选Pod的标签键(必须与LABEL_VALUE同时设置,否则会报错) |
| LABEL_VALUE | false | 用于筛选Pod的标签值(必须与LABEL_KEY同时设置,否则会报错) |
| GREP_POD_NAME | false | 用于按Pod名关键字筛选的字符串 |
| THRESHOLD | true | 判定为异常的Pod数量阈值(低于此值触发告警) |
| API_TOKEN | true | RHEMS BADGES项目的API令牌 |
| ORG | true | RHEMS BADGES项目的组织名称 |
| REPO | true | RHEMS BADGES项目的仓库名称 |
| BRANCH | true | RHEMS BADGES项目的分支名称 |
| APP_NAME | true | 应用名称 |
| URL | false | RHEMS BADGES服务URL(默认:[***] |
| CONFIG_FILE_DIR | false | 配置文件目录(默认:/etc/badge-tool/) |
| CRONJOB | false | CronJob调度规则 |
| MEMO | false | 备注信息 |
| SLACK_SUCCESS | false | CronJob执行成功时通知的Slack频道配置名 |
| SLACK_FAILED | false | CronJob执行失败时通知的Slack频道配置名 |
| GRACE_TIME | false | 宽限期 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务