
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于Ubuntu构建,用于根据AMQP队列的消息数量动态调整Kubernetes资源(如Deployment、ReplicaSet等)的副本数,帮助实现队列绑定型应用的自动扩缩容。若应用负载为CPU敏感型,建议使用Kubernetes原生的Horizontal Pod Autoscaling。
适用于消息处理服务、任务队列等队列绑定型应用,当队列消息堆积时自动增加副本数,消息减少时自动减少副本数,优化资源利用率。
docker pull mbogus/kube-amqp-autoscaledocker build -t="mbogus/kube-amqp-autoscale" github.com/mbogus/docker-kube-amqp-autoscale基础运行
bashdocker run -d \ -e AUTOSCALE_NAME=pod_to_scale \ -e AUTOSCALE_THRESHOLD=50 \ -e AUTOSCALE_MAX=10 \ -e RABBITMQ_URI=amqp://guest:guest@127.0.0.1:5672// \ -e RABBITMQ_QUEUE=queue_to_watch \ -e KUBERNETES_SERVICE_URL=http://127.0.0.1:8080 \ mbogus/kube-amqp-autoscale
带持久化目录运行
bashdocker run -d \ -v <db-dir>:/data/db \ -v <conf-dir>:/etc/default \ -e AUTOSCALE_NAME=pod_to_scale \ -e AUTOSCALE_THRESHOLD=50 \ -e AUTOSCALE_MAX=10 \ -e RABBITMQ_URI=amqp://guest:guest@127.0.0.1:5672// \ -e RABBITMQ_QUEUE=queue_to_watch \ -e KUBERNETES_SERVICE_URL=http://127.0.0.1:8080 \ mbogus/kube-amqp-autoscale
扩缩容服务参数
AUTOSCALE_NS:K8s命名空间(默认default)AUTOSCALE_KIND:扩缩容资源类型(可选Deployment/ReplicationController/ReplicaSet,默认Deployment)AUTOSCALE_NAME:目标资源名称(必填)AUTOSCALE_THRESHOLD:队列消息阈值(触发扩缩容的最大消息数,必填)AUTOSCALE_MIN:最小副本数(默认1)AUTOSCALE_MAX:最大副本数(必填)AUTOSCALE_INTERVAL:扩缩容检查间隔(秒,默认30)AUTOSCALE_INCREASE_LIMIT:单次扩容最大副本数(默认无限制)AUTOSCALE_DECREASE_LIMIT:单次缩容最大副本数(默认无限制)统计参数
AUTOSCALE_STATS_COVERAGE:统计覆盖率阈值(默认0.75)AUTOSCALE_STATS_INTERVAL: metrics收集间隔(秒,默认5)AUTOSCALE_EVAL_INTERVALS:计算平均队列长度的间隔数(默认2)AUTOSCALE_DB:统计数据存储的SQLite文件名(默认:memory:)RabbitMQ参数
RABBITMQ_URI:RabbitMQ连接URI(必填,如amqp://guest:guest@127.0.0.1:5672//)RABBITMQ_HOST:主机名(默认127.0.0.1)RABBITMQ_PORT:端口(默认5672)KUBERNETES_RABBITMQ_SERVICE_NAME:K8s服务名RABBITMQ_PROTO:协议(amqp/amqps,默认amqp)RABBITMQ_USER:用户名(默认guest)RABBITMQ_PASS:密码(默认guest)RABBITMQ_VHOST:虚拟主机(默认/)RABBITMQ_QUEUE:监控的队列名称(必填)K8s集群访问参数
KUBERNETES_SERVICE_URL:K8s API地址(如http://127.0.0.1:8080)KUBERNETES_SERVICE_PROTO:协议(默认https)KUBERNETES_SERVICE_HOST:主机(默认127.0.0.1)KUBERNETES_SERVICE_PORT:端口(默认443)KUBERNETES_SERVICE_INSECURE:是否跳过TLS验证(默认false,仅开发使用)KUBERNETES_SERVICE_USERNAME/KUBERNETES_SERVICE_PASSWORD/var/run/secrets/kubernetes.io/serviceaccount/token/var/run/secrets/kubernetes.io/serviceaccount/ca.crt以下是包含RabbitMQ broker、worker节点和autoscaler的完整部署示例:
yaml--- apiVersion: v1 kind: Service metadata: labels: app: autoscale-example component: broker name: rabbitmq-broker spec: ports: - port: 5672 name: main-port nodePort: 30672 - port: *** name: admin-port nodePort: 30080 type: NodePort selector: app: autoscale-example component: broker --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: rabbitmq-broker spec: replicas: 1 template: metadata: labels: app: autoscale-example component: broker spec: containers: - name: rabbitmq image: rabbitmq:3-management imagePullPolicy: Always env: - name: RABBITMQ_HIPE_COMPILE value: "1" resources: requests: cpu: 200m memory: 200Mi limits: cpu: 500m memory: 500Mi ports: - containerPort: 5672 hostPort: 5672 - containerPort: *** hostPort: *** --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: echo-node spec: replicas: 1 template: metadata: labels: app: autoscale-example component: worker spec: containers: - name: echo image: mbogus/amqp-echo imagePullPolicy: Always env: - name: KUBERNETES_RABBITMQ_SERVICE_NAME value: RABBITMQ_BROKER - name: RABBITMQ_QUEUE value: EchoQueue - name: ECHO_DELAY value: "15" resources: requests: cpu: 100m memory: 100Mi limits: cpu: 200m memory: 200Mi --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: autoscaler spec: replicas: 1 template: metadata: labels: app: autoscale-example component: scaler spec: containers: - name: autoscale image: mbogus/kube-amqp-autoscale imagePullPolicy: Always env: - name: AUTOSCALE_NAME value: echo-node - name: AUTOSCALE_THRESHOLD value: "1" - name: AUTOSCALE_MAX value: "5" - name: RABBITMQ_QUEUE value: EchoQueue - name: KUBERNETES_RABBITMQ_SERVICE_NAME value: RABBITMQ_BROKER resources: requests: cpu: 100m memory: 100Mi limits: cpu: 200m memory: 200Mi
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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