我在 Kubernetes 中使用 Traefik IngressRoute。
我的目标是在访问 https://kubernetes_host.com/my_api/... 时将请求代理到http://10.139.158.30:5000/api/v1/
我会在 Nginx 中这样做:
location /my_api {
proxy_pass http://10.139.158.30:5000/api/v1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme http;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
但我不知道如何在 Traefik IngressRoute 中做到这一点。在文档中,仅代理内部 Kubernetes 服务的请求。例子:
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: route-proxy
namespace: xxx
spec:
entryPoints:
- xxx
routes:
- kind: Rule
match: PathPrefix(`/my_api`)
services:
- kind: Service
name: some-service
port: 80