【发布时间】:2021-10-25 04:33:05
【问题描述】:
我有在 kubernetes 集群上运行的 tomcat 后端服务尝试使用带有路径的入口重写 /blob/api/v1/test-backend > /api/v1/test-backend 所以 配置现在正在运行,因此可以访问 xx.somedomain.com/blob/api/v1/test-backend,我想通过重写更改为 xx.somedomain.com/api/v1/test-backend
我的基本入口
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-blob
namespace: blob-test
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 50m
spec:
tls:
- hosts:
- xx.somedomain.com
secretName: cert-key
rules:
- host: xx.somedomain.com
http:
paths:
- path: /blob/
backend:
serviceName: blob-service
servicePort: 8080
- path: /
backend:
serviceName: web-service
servicePort: 80
这是用于重写/blob/的yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-blob
namespace: blob-test
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 50m
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- hosts:
- xx.somedomain.com
secretName: cert-key
rules:
- host: xx.somedomain.com
http:
paths:
- path: /blob/api/v1/some-backend
backend:
serviceName: blob-service
servicePort: 8080
当我使用 talend 之类的 api 测试器进行测试时,出现 405 错误
【问题讨论】:
标签: kubernetes google-cloud-platform url-rewriting kubernetes-ingress nginx-ingress