
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Nomad Autoscaler是面向Nomad的自动扩缩容守护进程,旨在为Nomad工作负载提供自动扩缩容能力。其基于插件架构设计,支持灵活扩展指标源、扩缩容目标及扩缩容算法,可根据配置的策略动态调整工作负载数量。
注意:该项目处于早期开发阶段,不提供任何保证,且可能会无预警地变更。更多信息请参见官方文档:https://github.com/hashicorp/nomad-autoscaler%E3%80%82
通过Nomad的Docker驱动将Autoscaler部署为集群内任务,利用Nomad的调度和资源管理能力。
示例Job配置(HCL格式)
hcljob "autoscaler" { datacenters = ["dc1"] # 目标数据中心 group "autoscaler" { count = 1 # 部署实例数量 task "autoscaler" { driver = "docker" # 使用Docker驱动 config { image = "hashicorp/nomad-autoscaler:0.3.5" # 镜像及版本 command = "nomad-autoscaler" # 启动命令 args = ["agent", "-config", "${NOMAD_TASK_DIR}/config.hcl"] # 启动参数:agent模式,指定配置文件路径 } template { data = <<EOF plugin_dir = "/plugins" # 插件存放目录 nomad { address = "http://{{env "attr.unique.network.ip-address" }}:4646" # Nomad API地址(通过环境变量获取任务IP) } # Nomad指标源配置 apm "nomad" { driver = "nomad-apm" # 驱动名称 config = { address = "http://{{env "attr.unique.network.ip-address" }}:4646" # Nomad API地址 } } # Prometheus指标源配置 apm "prometheus" { driver = "prometheus" # 驱动名称 config = { address = "http://{{env "attr.unique.network.ip-address" }}:9090" # Prometheus服务地址 } } EOF destination = "${NOMAD_TASK_DIR}/config.hcl" # 渲染后的配置文件路径 } } } }
配置参数说明
image指定为hashicorp/nomad-autoscaler:0.3.5,需使用具体版本标签。agent表示以守护进程模式运行;-config指定配置文件路径。plugin_dir:插件存放目录,用于加载扩展插件。nomad.address:Nomad API地址,通过{{env "attr.unique.network.ip-address"}}动态获取任务所在节点IP。apm块:定义指标源,支持多指标源配置(如nomad和prometheus),每个块需指定driver(驱动名称)和config(驱动配置,如服务地址)。在Nomad集群外部部署时,可通过docker run直接启动独立容器。
示例命令
bashdocker run \ --volume /usr/bin/nomad-autoscaler/plugins:/plugins \ # 挂载插件目录(宿主机:容器) --volume /opt/nomad-autoscaler/config:/config \ # 挂载配置目录(宿主机:容器) hashicorp/nomad-autoscaler:0.3.5 \ # 镜像及版本 nomad-autoscaler agent -config /config # 启动命令:agent模式,从/config目录加载配置
参数说明
--volume:挂载宿主机目录到容器,/plugins存放扩展插件,/config存放配置文件。agent -config /config表示以守护进程模式运行,并从/config目录加载配置文件。如需集成自定义插件或配置,可基于官方镜像构建自定义镜像,预打包插件和配置。
示例Dockerfile
dockerfileFROM hashicorp/nomad-autoscaler:v0.3.5 # 基于官方0.3.5版本镜像 # 添加自定义插件(从CI地址下载) ADD http://my-ci/build-num/my-plugin /plugin-dir/my-plugin # 添加自定义插件配置(合并到配置目录) ADD http://my-ci/build-num/my-plugin-conf.hcl /config-dir/my-plugin.hcl # (可选)设置插件执行权限 RUN chmod +x /plugin-dir/my-plugin
说明
ADD命令从外部源(如CI构建地址)下载自定义插件和配置,分别存放于/plugin-dir(插件目录)和/config-dir(配置目录)。| 配置项 | 说明 | 示例值 |
|---|---|---|
plugin_dir | 插件存放目录 | /plugins |
nomad.address | Nomad API地址(集群连接点) | http://10.0.0.1:4646 |
APM配置块格式:apm "<名称>" { ... },<名称>为自定义指标源标识。
Nomad内置指标源(nomad-apm)
hclapm "nomad" { driver = "nomad-apm" # 驱动名称(固定值) config = { address = "http://10.0.0.1:4646" # Nomad API地址 } }
Prometheus指标源
hclapm "prometheus" { driver = "prometheus" # 驱动名称(固定值) config = { address = "http://10.0.0.2:9090" # Prometheus服务地址 } }
在Nomad任务模板中,可使用以下Nomad环境变量动态注入配置:
{{env "attr.unique.network.ip-address"}}:任务所在节点的IP地址,用于配置Nomad API或Prometheus地址。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务