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

Sim*_*n I 5 kubernetes kubernetes-helm

我有两个服务,tea并且coffee,每一个在自己的命名空间,我希望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
Run Code Online (Sandbox Code Playgroud)

和咖啡:

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
Run Code Online (Sandbox Code Playgroud)

Jav*_*ron -5

根据https://github.com/kubernetes/kubernetes/issues/17088, voyager 入口控制器可以做到这一点。示例(取自链接):

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'
Run Code Online (Sandbox Code Playgroud)