【发布时间】:2018-10-16 21:09:37
【问题描述】:
我有一个 Kubernetes 入口,我想成为一组主机上所有路径的默认入口,前提是没有更具体的匹配:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: default-ing
spec:
rules:
- host: host1.sub.example.com
http:
paths:
- backend:
serviceName: my-default-service
servicePort: http
# Note: here we specify the root path intended as a default
path: /
- backend:
serviceName: my-default-service
servicePort: http
path: /route/path/to/default
第二个入口为特定路径定义自定义服务:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: special-ing
spec:
rules:
- host: host1.sub.example.com
http:
paths:
- backend:
serviceName: special-service
servicePort: http
path: /special
我希望添加/删除入口的顺序无关紧要,或者至少我可以通过某种方式表明default-ing 中的path: / 始终排在最后。
当我尝试上述方法时,只要我在default-ing 之前添加special-ing,路由就可以了(或者,添加default-ing,然后添加special-ing,然后删除default-ing 并重新添加它再次)。当我将它们添加为default-ing,然后是special-ing 时,对/special are 的请求被路由到my-default-service 而不是special-service。
我希望添加/删除的顺序独立于 nginx-ingress-controller 生成的路由,以便我的 kubectl 操作更加健壮,并且如果重新创建其中一个入口,则不会中断。
我正在使用nginx-ingress-controller:0.19.0
感谢您提供的任何帮助!
【问题讨论】: