argoproj/resource-gateway本镜像为Kubernetes集群提供资源网关功能,作为集群内资源的统一访问入口,实现对Kubernetes API资源、微服务及集群内其他资源的集中管理、路由转发和访问控制,简化集群资源访问流程并增强安全性。
bashdocker run -d \ --name k8-resource-gateway \ -p 8080:8080 \ -e KUBECONFIG=/etc/k8s/config \ -e PORT=8080 \ -e AUTH_MODE=rbac \ -v /path/to/kubeconfig:/etc/k8s/config \ k8-resource-gateway:latest
yamlversion: '3' services: resource-gateway: image: k8-resource-gateway:latest container_name: k8-resource-gateway ports: - "8080:8080" environment: - KUBECONFIG=/etc/k8s/config - PORT=8080 - AUTH_MODE=rbac - LOG_LEVEL=info - METRICS_PORT=9090 volumes: - /path/to/kubeconfig:/etc/k8s/config - /path/to/gateway-config:/etc/gateway/config.yaml restart: unless-stopped
| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
| KUBECONFIG | Kubernetes配置文件路径 | /root/.kube/config | 容器内可访问的文件路径 |
| PORT | 网关服务监听端口 | 8080 | 1-65535 |
| AUTH_MODE | 认证模式 | rbac | rbac, token, none |
| LOG_LEVEL | 日志级别 | info | debug, info, warn, error |
| METRICS_PORT | 监控指标暴露端口 | 9090 | 1-65535 |
| ROUTE_CONFIG | 路由规则配置文件路径 | /etc/gateway/routes.yaml | 容器内文件路径 |
路由规则配置文件(routes.yaml)示例:
yamlroutes: - name: "default-ns-pods" path: "/api/v1/namespaces/default/pods" destination: resource: "pods" namespace: "default" methods: ["GET", "POST"] auth: roles: ["pod-reader", "admin"] - name: "micro-service-route" path: "/services/*" destination: service: "micro-service" port: 8080 load***: strategy: "round_robin"
启动容器后,可通过以下方式验证网关服务:
bash# 检查服务状态 curl http://localhost:8080/health # 访问集群资源(需配置正确权限) curl http://localhost:8080/api/v1/namespaces/default/pods
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务