不同命名空间中同一主机的 Kubernetes 入口



我有两个服务,teacoffee,每个都在自己的命名空间中,我想domain.comtea服务,domain.com/coffeecoffee

由于每个都在命名空间中,我不得不进行两段入口,但是当我尝试应用它们时,我得到错误MAPPING Path '/coffee' already defined in another Ingress rule

我的两个入口如下所示:

茶:

kind: Ingress
apiVersion: extensions/v1beta1
spec:
tls:
- hosts:
- domain.com
secretName: tea-tls
rules:
- host: domain.com
http:
paths:
- path: /
backend:
serviceName: tea
servicePort: 80

和咖啡:

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: coffee
namespace: coffee
spec:
tls:
- hosts:
- domain.com
secretName: coffee}-tls
rules:
- host: domain.com
http:
paths:
- path: /coffee
backend:
serviceName: coffee
servicePort: 80
- path: /coffee/*
backend:
serviceName: coffee
servicePort: 80

我想问题不在于喝茶和咖啡,而是在咖啡入口中两次定义coffee路径。根据 https://kubernetes.io/docs/concepts/services-networking/ingress/#simple-fanout,我假设您只需要/coffee路径,并且可以删除/coffee/*路径。

根据 https://github.com/kubernetes/kubernetes/issues/17088 的说法,旅行者号入口控制器可以做到这一点。示例(取自链接(:

apiVersion: voyager.appscode.com/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: foo
spec:
rules:
- host: foo.bar.com
http:
paths:
- backend:
serviceName: s1.bar # serviceName.Namespace
servicePort: '80'

最新更新