5

我希望 Ingress 将特定子域重定向到一个后端,并将所有其他子域重定向到另一个后端。基本上,我想定义如下规则:

如果子域foo.bar.com然后转到s1,对于所有其他子域转到s2

当我在 Ingress 规范中定义如下所示的规则时,我在部署时遇到了这个异常:

Error: UPGRADE FAILED: cannot re-use a name that is still in use

但是,当我更改*.bar.comdemo.bar.com它时。

这是我的 Ingress 资源规范:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: s1
          servicePort: 80
  - host: *.bar.com
    http:
      paths:
      - backend:
          serviceName: s2
          servicePort: 80

任何人都知道是否可能?

4

3 回答 3

3

在查看 Issue 41881 时,我很确定这目前是不可能的但我可能在最新版本的 Kubernetes 中遗漏了一些东西——我们即将发布 1.12

于 2018-09-14T09:20:48.613 回答
2

已经有一个 PR 用于支持入口规则中的通配符域。请参考以下链接

https://github.com/containous/traefik/issues/3884

您可以尝试 Traefik v1.7 并查看是否启用了通配符支持。

于 2019-04-16T08:48:43.263 回答
0

您可以使用默认后端 -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  - backend:
      serviceName: s2
      servicePort: 80
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: s1
          servicePort: 80
于 2020-08-09T04:47:10.347 回答