本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Nomad Autoscaler是面向Nomad的自动扩缩容守护进程,旨在为Nomad工作负载提供自动扩缩容能力。其基于插件架构设计,支持灵活扩展指标源、扩缩容目标及扩缩容算法,可根据配置的策略动态调整工作负载数量。
注意:该项目处于早期开发阶段,不提供任何保证,且可能会无预警地变更。更多信息请参见官方文档:[***]
通过Nomad的Docker驱动将Autoscaler部署为集群内任务,利用Nomad的调度和资源管理能力。
job "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直接启动独立容器。
docker 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目录加载配置文件。如需集成自定义插件或配置,可基于官方镜像构建自定义镜像,预打包插件和配置。
FROM hashicorp/nomad-autoscaler:v0.3.5 # 基于官方0.3.5版本镜像 # 添加自定义插件(从CI地址下载) ADD [***] /plugin-dir/my-plugin # 添加自定义插件配置(合并到配置目录) ADD [***] /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地址(集群连接点) | [***] |
APM配置块格式:apm "<名称>" { ... },<名称>为自定义指标源标识。
apm "nomad" { driver = "nomad-apm" # 驱动名称(固定值) config = { address = "[***]" # Nomad API地址 } }
apm "prometheus" { driver = "prometheus" # 驱动名称(固定值) config = { address = "[***]" # Prometheus服务地址 } }
在Nomad任务模板中,可使用以下Nomad环境变量动态注入配置:
{{env "attr.unique.network.ip-address"}}:任务所在节点的IP地址,用于配置Nomad API或Prometheus地址。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429