【问题标题】:Kubernetes ingress rules: How to use wildcard and specific subdomain togetherKubernetes入口规则:如何一起使用通配符和特定子域
【发布时间】:2018-09-14 09:01:54
【问题描述】:

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

如果子域是foo.bar.com,则转到s1,对于所有其他子域,请转到s2

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

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

但是,当我将 *.bar.com 更改为 demo.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

有人知道这是否可能吗?

【问题讨论】:

    标签: kubernetes traefik kubernetes-ingress traefik-ingress


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。
    • 好吧,我希望这里的 GKE 人员之一插话并证明我错了;)
    【解决方案2】:

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

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

    你可以试试 Traefik v1.7 看看是否启用了通配符支持。

    【讨论】:

      【解决方案3】:

      您可以使用默认后端 -

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-01
        • 1970-01-01
        • 2014-06-09
        • 1970-01-01
        • 1970-01-01
        • 2020-10-07
        • 2016-08-26
        • 2020-12-15
        相关资源
        最近更新 更多