本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Nomad Autoscaler 是 HashiCorp 推出的自动扩缩容工具,专为与 Nomad 调度器集成设计,用于根据预定义策略动态调整 Nomad 作业(Jobs)或客户端节点(Client Nodes)的数量。本镜像为开发(dev)版本,适用于开发、测试环境验证功能;生产环境应使用官方稳定镜像([***]
主要用途:
job:read、job:update、node:read、node:update# 拉取开发版本(本镜像) docker pull hashicorp/nomad-autoscaler:dev # 生产环境建议使用稳定版 # docker pull hashicorp/nomad-autoscaler:latest
docker run -d \ --name nomad-autoscaler-dev \ -e NOMAD_ADDR=[***] \ # Nomad API 地址(宿主机地址) -v $(pwd)/policies:/etc/nomad-autoscaler/policies # 挂载扩缩策略文件目录 hashicorp/nomad-autoscaler:dev
docker run -d \ --name nomad-autoscaler-dev \ -e NOMAD_ADDR=[***] \ # Nomad 集群 HTTPS 地址 -e NOMAD_TOKEN=your-nomad-acl-token \ # Nomad ACL Token -e NOMAD_TLS_INSECURE=false \ # 启用 TLS 证书验证 -e NOMAD_CACERT=/etc/nomad/tls/ca.pem \ # TLS CA 证书路径 -v $(pwd)/tls:/etc/nomad/tls \ # 挂载 TLS 证书目录(包含 ca.pem、client.pem、client-key.pem) -v $(pwd)/policies:/etc/nomad-autoscaler/policies \ # 挂载策略文件目录 -v $(pwd)/plugins:/etc/nomad-autoscaler/plugins \ # 挂载外部插件目录(如 Prometheus 插件) hashicorp/nomad-autoscaler:dev \ --config /etc/nomad-autoscaler/config.hcl # 自定义配置文件路径
version: '3.8' services: nomad-autoscaler: image: hashicorp/nomad-autoscaler:dev container_name: nomad-autoscaler-dev restart: unless-stopped environment: - NOMAD_ADDR=[***] # Nomad 集群 API 地址 - NOMAD_TOKEN=${NOMAD_TOKEN} # 从环境变量注入 Nomad ACL Token - LOG_LEVEL=info # 日志级别(trace/debug/info/warn/error) - EVALUATION_INTERVAL=10s # 策略评估间隔(默认 10s) volumes: - ./policies:/etc/nomad-autoscaler/policies:ro # 只读挂载策略文件目录 - ./config.hcl:/etc/nomad-autoscaler/config.hcl:ro # 自定义配置文件 - ./plugins:/etc/nomad-autoscaler/plugins:ro # 插件目录 networks: - nomad-network # 连接到 Nomad 集群所在网络 networks: nomad-network: external: true # 假设 Nomad 集群使用外部网络
| 变量名 | 描述 | 默认值 |
|---|---|---|
NOMAD_ADDR | Nomad 集群 API 地址 | [***] |
NOMAD_TOKEN | Nomad ACL Token(若集群启用 ACL) | 空 |
NOMAD_TLS_INSECURE | 是否禁用 TLS 证书验证(开发环境临时使用,生产环境需设为 false) | false |
NOMAD_CACERT | TLS CA 证书文件路径 | 空 |
NOMAD_CLIENT_CERT | TLS 客户端证书文件路径 | 空 |
NOMAD_CLIENT_KEY | TLS 客户端密钥文件路径 | 空 |
LOG_LEVEL | 日志级别 | info |
AUTOSCALER_CONFIG | 配置文件路径(覆盖默认配置) | /etc/nomad-autoscaler/config.hcl |
配置文件使用 HCL 格式,支持详细参数定义,示例:
# 全局配置 log_level = "debug" # 日志级别 plugin_dir = "/etc/nomad-autoscaler/plugins" # 插件目录 evaluation_interval = "10s" # 策略评估间隔 # Nomad 连接配置 nomad { address = "[***]" token = "your-nomad-acl-token" tls { ca_cert = "/etc/nomad/tls/ca.pem" # CA 证书路径 cert = "/etc/nomad/tls/client.pem" # 客户端证书路径 key = "/etc/nomad/tls/client-key.pem" # 客户端密钥路径 insecure = false # 启用证书验证 } } # 指标采集器配置(Prometheus 示例) metrics "prometheus" { driver = "prometheus" config = { address = "[***]" # Prometheus 地址 timeout = "10s" # 超时时间 } } # 扩缩目标配置(Nomad 作业) target "nomad_job" { driver = "nomad_job" } # 扩缩目标配置(节点池) target "nomad_node_pool" { driver = "nomad_node_pool" }
策略文件定义具体扩缩规则,存放于挂载的 policies 目录(如 /etc/nomad-autoscaler/policies/example-job.hcl),示例:
# Nomad 作业水平扩缩策略示例 scaling "job" { enabled = true min = 2 # 最小实例数 max = 10 # 最大实例数 policy { cooldown = "2m" # 扩缩后冷却时间(避免抖动) evaluation_interval = "30s" # 策略评估间隔 # 基于 Nomad 原生 CPU 指标的检查规则 check "cpu_usage" { source = "nomad" # 指标源(nomad/prometheus/etc.) query = <<EOF sum(nomad_client_allocation_cpu_usage_percent{job_id=~"^example-job$"}) / count(nomad_client_allocation_cpu_usage_percent{job_id=~"^example-job$"}) EOF strategy "target" { target_value = 70.0 # 目标 CPU 使用率(70%) } } # 基于 Prometheus 自定义指标的检查规则(如请求量) check "request_count" { source = "prometheus" query = "sum(rate(http_requests_total{job=\"example-job\"}[5m]))" strategy "threshold" { upper_bound = 1000 # 上限阈值(超过则扩容) lower_bound = 200 # 下限阈值(低于则缩容) step_up = 1 # 每次扩容增加实例数 step_down = 1 # 每次缩容减少实例数 } } } }
docker logs -f nomad-autoscaler-devnomad-autoscaler policy list(需配置 Nomad 连接)policies 目录下的策略文件,Autoscaler 会自动加载(默认每 60s 检查更新)免费版仅支持 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