
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
此计费流程使用Python 3.8编写,主要执行以下步骤:
由于依赖要求,建议构建容器镜像并通过容器执行。构建步骤如下:
bashgit clone https://github.com/kalenpeterson/dgx-chargeback.git cd dgx-chargeback
更新build/build.sh文件,设置本地仓库的期望镜像标签
运行构建命令。确保事先已登录到仓库:
bashpodman login <your.repo> ./build/build.sh
构建完成后,可参考本文档其余部分的示例进行使用
快速简单的运行方式,主要用于开发和测试。
使用podman以一次性容器方式运行计费流程:
bashpodman run --rm \ -e SLURM_JOB_PREV_DAYS=5 \ -e SLURM_CLUSTER_NAME='' \ -e SLURM_DB_HOST='' \ -e SLURM_DB_PORT=3306 \ -e SLURM_DB_USERNAME='' \ -e SLURM_DB_PASSWORD='' \ -e CHARGEBACK_DB_HOST='' \ -e CHARGEBACK_DB_PORT=3306 \ -e CHARGEBACK_DB_SCHEMA_NAME='' \ -e CHARGEBACK_DB_TABLE_NAME='' \ -e CHARGEBACK_DB_USERNAME='' \ -e CHARGEBACK_DB_PASSWORD='' \ -e SSH_HOST='' \ -e SSH_PORT=22 \ -e SSH_USERNAME='' \ -e SSH_PASSWORD='' \ -e EMAIL_SMTP_HOST='' \ -e EMAIL_SMTP_PORT=25 \ -e EMAIL_SMTP_USERNAME='' \ -e EMAIL_SMTP_PASSWORD='' \ -e EMAIL_TO_ADDRESS='用户 <user.name@example.com>' \ -e EMAIL_FROM_ADDRESS='DGX计费 <no-reply@example.com>' \ docker.io/kalenpeterson/dgx-chargeback:latest
不创建容器直接运行Python代码:
bashcd src pip install -r requirements.txt python main.py \ --slurm-job-prev-day 5 \ --slurm-cluster-name '' \ --slurm-db-host '' \ --slurm-db-port 3306 \ --slurm-db-username '' \ --slurm-db-password '' \ --chargeback-db-host '' \ --chargeback-db-port 3306 \ --chargeback-db-schema-name '' \ --chargeback-db-table-name '' \ --chargeback-db-username '' \ --chargeback-db-password '' \ --ssh-host '' \ --ssh-port 22 \ --ssh-username '' \ --ssh-password '' \ --email-smtp-host '' \ --email-smtp-port 25 \ --email-smtp-username '' \ --email-smtp-password '' \ --email-to-address '用户 <user.name@example.com>' \ --email-from-address 'DGX计费 <no-reply@example.com>'
将此流程部署为Kubernetes CronJob,更适用于长期可靠执行的场景。
编辑./build/kubernetes-config.yml文件,设置环境变量:
bashecho -n 'mypassword' | base64 --wrap=0
编辑./build/kubernetes-cronjob.yml文件,设置构建的镜像名称和所需的cron调度时间。
最后,运行部署脚本进行安装:
bash./build/deploy.sh
以下是管理作业的常用命令:
检查CronJob调度状态
bashkubectl get cronjob dgx-chargeback -o wide
列出当前和最近几次作业运行
bashkubectl get jobs -o wide
打印特定作业运行的日志
bashkubectl logs $(kubectl get pods --selector=job-name=dgx-chargeback-xxxxxxx --output=jsonpath={.items[*].metadata.name})
随时运行临时作业
bashkubectl create job --from=cronjob/dgx-chargeback dgx-chargeback-ad-hok-$(date "+%s")
暂停CronJob
bashkubectl patch cronjobs dgx-chargeback -p '{"spec" : {"suspend" : true }}'
恢复CronJob
bashkubectl patch cronjobs dgx-chargeback -p '{"spec" : {"suspend" : false }}'
修改作业配置
bashkubectl edit secret env-secret-dgx-chargeback kubectl edit configmap env-config-dgx-chargeback kubectl edit cronjob dgx-chargeback
删除作业配置
bashkubectl delete secret env-secret-dgx-chargeback kubectl delete configmap env-config-dgx-chargeback kubectl delete cronjob dgx-chargeback
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务