
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该插件是一个POC(概念验证)实现,用于支持Gloo Platform API的https://argoproj.github.io/argo-rollouts/features/traffic-management/plugins/%E3%80%82**%E6%B3%A8%E6%84%8F%EF%BC%9A%E6%AD%A4%E6%8F%92%E4%BB%B6%E4%B8%BAPOC%E8%B4%A8%E9%87%8F%EF%BC%8C%E4%B8%94Argo Rollouts在1.5版本中刚发布alpha功能,使用时需谨慎!**
插件模式基于https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi%E5%AE%9E%E7%8E%B0%EF%BC%8C%E5%8F%AF%E7%94%A8%E4%BA%8E%E5%9C%A8Kubernetes%E9%9B%86%E7%BE%A4%E4%B8%AD%E9%80%9A%E8%BF%87Gloo Platform进行渐进式发布(如金丝雀、蓝绿部署)的流量路由管理。
Argo Rollout CR可视为Kubernetes Deployment CR的替代方案,主要包含两部分核心配置:
尽管可以引用Deployment获取Pod模板细节,但Rollouts不会直接管理被引用的Deployment。
Argo Rollouts使用Hashi的https://github.com/hashicorp/go-plugin%EF%BC%8C%E6%8F%92%E4%BB%B6%E6%98%AF%E9%81%B5%E5%BE%AAArgo Rollouts定义的RPC接口的Go二进制文件。插件可嵌入Argo Rollouts控制器镜像,或在容器启动时下载。
当前下载方式存在问题(参考社区讨论),推荐使用预嵌入插件的衍生镜像:
kodacd/argo-rollouts:latest(POC阶段,仅更新latest标签)yamltrafficRouterPlugins: "- name: \"solo-io/glooplatformAPI\"\n location: \"file://./plugin\" "
适用于在Kubernetes集群中已安装Gloo Platform,需要需要通过Argo Rollouts实现渐进式发布(如金丝雀部署、蓝绿部署)的场景,支持基于权重的流量分配和手动验证步骤。
1. 安装Argo Rollouts
bashkubectl create ns argo-rollouts kubectl apply -f ./examples/_install_rollouts/argo-rollouts.yaml -n argo-rollouts
此清单使用已嵌入Gloo Platform插件的镜像,并包含Argo Rollouts配置。
2. 创建初始工作负载状态
包含K8s服务、Gloo VirtualGateway和RouteTable(不含Deployment):
bashkubectl apply -f ./examples/demo-api-initial-state
3. 创建初始Rollout资源
首次部署时,将创建初始ReplicaSet:
bashkubectl apply -f ./examples/0-rollout-initial
4. 查看Rollout dashboard(可选)
bashkubectl argo rollouts dashboard & open http://localhost:3100/rollouts/gloo-rollout-demo
5. 验证API
通过端口转发访问API,应返回v1版本响应:
bashkubectl port-forward $(kubectl get pods -l istio=ingressgateway -n gloo-mesh-gateways -oname) -n gloo-mesh-gateways 8080:8080 curl localhost:8080/demo # 预期响应: {"image":"kodacd/argo-rollouts-demo-api","tag":"v1"}
6. 启动金丝雀部署
应用更新后的Rollout CR(镜像标签从v1改为v2):
bashkubectl apply -f ./examples/1-rollout-first-change
7. 监控与验证
Rollout资源中流量路由插件配置示例:
yamltrafficRouting: plugins: solo-io/glooplatformAPI: # 必选;需提供标签选择器或显式RouteTable名称 routeTableSelector: # 标签需精确匹配RouteTable # 若提供name,则忽略标签选择器 labels: app: demo # 默认为Rollout所在命名空间 namespace: gloo-mesh # 若提供name,标签选择器将被忽略 # name: my-rt-name # 可选;选择匹配RouteTable中的特定路由 # 适用于多个路由指向同一后端但无需全部参与金丝雀的场景 routeSelector: # 通过标签选择路由;若提供name则忽略标签 labels: route: demo-preview # 若提供name,标签选择器将被忽略 # name: route-name
github.com/solo-io/solo-apis/client-go/common.gloo.solo.io/v2 ObjectSelector支持按工作区过滤RouteTableforwardTo.destination.kinds您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务