
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是基于官方Istio Proxy构建的定制化版本,通过集成自定义Envoy过滤器与Open Policy Agent(OPA)实现细粒度授权控制。它扩展了Istio服务网格的默认能力,允许用户利用OPA的声明式策略语言(Rego)定义复杂的授权规则,适用于需要精细化访问控制的服务网格环境。
bashdocker pull [镜像仓库地址]/istio-proxy-opa:latest
注:请将
[镜像仓库地址]替换为实际的镜像仓库路径(如私有仓库或公共镜像服务)
独立运行(Docker)
bashdocker run -d \ --name istio-proxy-opa \ --network=istio-network \ # 建议使用与Istio控制平面相同的网络 -p 15001:15001 \ # Envoy入站流量端口 -p 15090:15090 \ # Envoy管理接口端口 -e OPA_SERVICE_URL=http://opa:8181 \ # OPA服务地址 -e AUTHZ_POLICY_PATH=/v1/data/istio/authz \ # OPA策略查询路径 -e LOG_LEVEL=info \ # 日志级别(debug/info/warn/error) -v /path/to/local/config:/etc/istio/proxy \ # 挂载自定义配置(可选) [镜像仓库地址]/istio-proxy-opa:latest
容器编排(Docker Compose)
yamlversion: '3.8' services: istio-proxy-opa: image: [镜像仓库地址]/istio-proxy-opa:latest container_name: istio-proxy-opa ports: - "15001:15001" # 入站流量端口 - "15090:15090" # 管理接口端口 environment: - OPA_SERVICE_URL=http://opa:8181 - AUTHZ_POLICY_PATH=/v1/data/istio/authz - LOG_LEVEL=info - ENVOY_CONFIG_PATH=/etc/istio/proxy/envoy.json # Envoy配置文件路径 volumes: - ./envoy-config:/etc/istio/proxy # 挂载自定义Envoy配置 depends_on: - opa networks: - istio-network opa: image: openpolicyagent/opa:latest container_name: opa ports: - "8181:8181" command: run --server --log-level=info /policies volumes: - ./policies:/policies # 挂载OPA策略文件 networks: - istio-network networks: istio-network: driver: bridge
| 参数名 | 环境变量 | 描述 | 默认值 |
|---|---|---|---|
| OPA服务地址 | OPA_SERVICE_URL | OPA服务的HTTP/HTTPS端点 | http://localhost:8181 |
| 策略查询路径 | AUTHZ_POLICY_PATH | OPA策略评估的Rego包路径 | /v1/data/istio/authz |
| 连接超时 | OPA_CONNECT_TIMEOUT_MS | 与OPA建立连接的超时时间(毫秒) | 500 |
| 请求超时 | OPA_REQUEST_TIMEOUT_MS | OPA策略查询的超时时间(毫秒) | 1000 |
| 日志级别 | LOG_LEVEL | 代理日志级别 | info |
| Envoy配置路径 | ENVOY_CONFIG_PATH | Envoy配置文件路径 | /etc/istio/proxy/envoy-rev0.json |
| 失败开放模式 | FAIL_OPEN | 当OPA不可用时是否允许请求通过(true/false) | false |
policy.rego):regopackage istio.authz # 允许GET请求访问/products路径 allow { input.attributes.request.http.method == "GET" input.attributes.request.http.path == "/products" } # 允许带有有效JWT的POST请求 allow { input.attributes.request.http.method == "POST" input.attributes.request.http.path == "/orders" input.attributes.request.http.headers["authorization"] exists }
bash# 假设OPA服务运行在localhost:8181 curl -X PUT http://localhost:8181/v1/policies/istio/authz \ --data-binary @policy.rego
bashcurl http://localhost:15090/config_dump | grep -A 20 "envoy.filters.http.ext_authz"
应能看到指向OPA服务的外部授权过滤器配置。
bash# 允许的请求 curl -X GET http://localhost:15001/products -v # 拒绝的请求(无权限) curl -X POST http://localhost:15001/orders -v
docker logs istio-proxy-opa您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务