【问题标题】:Is defaultBackend mandatory for Ingress (gce)?Ingress (gce) 是否需要 defaultBackend?
【发布时间】:2021-09-01 17:45:16
【问题描述】:

如果省略defaultBackend 部分,GKE 上的 Ingress 似乎返回 503,但我找不到任何支持该内容的文档。但是一旦我删除它,该 Ingress 上的所有服务都会返回 503 Server Error

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  #defaultBackend:
  #  service:
  #    name: test-nginx
  #    port:
  #      number: 80
  rules:
    - host: test.example.com
      http:
        paths:
            - path: /*
              pathType: ImplementationSpecific
              backend:
                service:
                  name: test-nginx
                  port:
                    number: 80
    - host: test2.example.com
      http:
        paths:
          - path: /*
            pathType: ImplementationSpecific
            backend:
              service:
                name: test2
                port:
                  number: 80

【问题讨论】:

  • 我假设您正在尝试访问http://test.example.comhttp://test2.example.com?如果你有 defaultBackend 并且当你省略它时两者都会失败?
  • 不,应该没有必要。

标签: google-kubernetes-engine kubernetes-ingress


【解决方案1】:

我想帮助您解决您对defaultBackend 以及您描述中提到的行为的疑虑。

definition defaultBackend 通常在 Ingress 控制器中配置,以服务与 spec 中的 path 不匹配的任何请求。

没有规则的 Ingress 将所有流量发送到单个默认后端。 defaultBackend 通常是 Ingress 控制器的配置选项,并未在 Ingress 资源中指定。

如果没有任何主机或路径与 Ingress 对象中的 HTTP 请求匹配,则流量将路由到您的默认后端。

由于没有与 HTTP 请求匹配的主机或路径,当您删除 defaultBackend 时,它会尝试到达 defaultBackend,请求会向您发送错误 503。

如果您想避免使用defaultBackend,请确保 HTTP 请求与主机或路径匹配

如果您想了解有关此主题的更多信息,我想与您分享参考Kubernetes Documentation > Concepts > Services, Load Balancing, and Networking > Ingress

在这个参考中有一些关于如何在没有defaultBackend的情况下配置入口的示例

祝你旅途愉快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2018-08-03
    • 2019-09-30
    • 2021-04-17
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多