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

5

我有两个服务,teacoffee,它们分别位于自己的命名空间中,我想让 domain.com 访问 tea 服务,而 domain.com/coffee 则访问 coffee 服务。

由于每个服务都在命名空间中,我不得不创建两个不同的 Ingress,但是当我尝试应用它们时,我会收到错误提示:MAPPING Path '/coffee' already defined in another Ingress rule

我的两个 Ingress 片段如下:

Tea:

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
2个回答

1

-5
根据https://github.com/kubernetes/kubernetes/issues/17088,Voyager Ingress控制器可以解决这个问题。以下是一个示例(摘自链接):
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'

应用程序必须与入口控制器在同一命名空间中吗? - user4889345
错误:无法更新Ingress default/prebid-server,因为:Ingress.extensions "prebid-server" 无效:spec.rules[0].http.backend.serviceName:无效值:"prebid-server.prebid":DNS-1035标签必须由小写字母数字字符或'-'组成,以字母字符开头,并以字母数字字符结尾(例如'my-name'或'abc-123',用于验证的正则表达式是'a-z?') - holms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接