我在kubernetes中部署了名为"test“的服务。服务名称:测试端口: 80
存在名为"/abc“的终结点
ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: load-balancer
spec:
rules:
- http:
paths:
- path: /test/*
backend:
serviceName: test
servicePort: 80接口调用"http://ip-address/test/abc“给出了404错误。但是终结点"/test/abc“工作正常。
路由时需要跳过"/test“。我是怎么做的。
发布于 2018-10-25 12:36:33
您正在寻找url重写功能。目前仅支持nginx-ingress (不支持GKE入口)。https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/rewrite/README.md。
但是如果你愿意,你可以在GKE上安装nginx-ingress控制器,这里有关于如何做到这一点的documentation。
发布于 2021-01-15 02:40:43
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)在这个入口定义中,(.*)捕获的任何字符都将分配给占位符$2,然后将其用作重写目标注释中的参数。
例如:
rewrite.bar.com/something重写到rewrite.bar.com/来源:https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/rewrite/README.md。
https://stackoverflow.com/questions/52923298
复制相似问题