argoproj/gateway-controller本镜像为轻量级网关控制器Docker镜像,旨在简化网关服务的部署、配置与生命周期管理。通过集成动态路由、流量控制、安全策略等核心能力,实现对网关服务的集中化管控,适用于各类微服务架构及云原生环境。
通过docker run命令快速部署网关控制器:
bashdocker run -d \ -p 8080:8080 \ # 控制器API端口 -p 9090:9090 \ # 监控指标端口 -e GATEWAY_ENDPOINT=[***] \ # 目标网关服务地址 -e ADMIN_USER=admin \ # 管理员用户名 -e ADMIN_PASSWORD=securepass \ # 管理员密码 -v ./routes:/app/config/routes \ # 挂载路由配置文件目录 --name gateway-controller \ my-gateway-controller:latest
| 环境变量名 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
GATEWAY_ENDPOINT | 目标网关服务的HTTP/HTTPS端点 | 是 | - |
ADMIN_USER | 控制器管理界面用户名 | 否 | admin |
ADMIN_PASSWORD | 控制器管理界面密码 | 否 | 随机生成 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | 否 | info |
METRICS_PORT | 监控指标暴露端口 | 否 | 9090 |
API_PORT | 控制器API端口 | 否 | 8080 |
ROUTE_REFRESH_INTERVAL | 路由规则自动刷新间隔(秒) | 否 | 30 |
通过挂载配置文件目录(如./routes)实现路由规则持久化,配置文件采用YAML格式:
yaml# ./routes/service-routes.yaml routes: - id: service-user uri: [***] predicates: - Path=/api/users/**filters: - name: RequestRateLimiter args: redis-rate-limiter.replenishRate: 10 redis-rate-limiter.burstCapacity: 20 - id: service-order uri: [***] predicates: - Path=/api/orders/** filters: - name: CircuitBreaker args: name: orderServiceCircuitBreaker fallbackUri: forward:/fallback/orders
yamlversion: '3.8' services: gateway-controller: image: my-gateway-controller:latest ports: - "8080:8080" - "9090:9090" environment: - GATEWAY_ENDPOINT=[***] - ADMIN_USER=admin - ADMIN_PASSWORD=securepass - LOG_LEVEL=debug volumes: - ./routes:/app/config/routes - ./tls:/app/config/tls # TLS证书目录 depends_on: - gateway - redis # 用于限流、熔断等状态存储 gateway: image: my-gateway:latest ports: - "8000:8000" redis: image: redis:alpine ports: - "6379:6379"
-v挂载配置文件与证书,避免敏感信息通过环境变量暴露manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务