在GKE Ingress负载平衡器中创建的重复规则

时间:2019-08-10 04:12:20

标签: kubernetes google-kubernetes-engine kubernetes-ingress

每次我向入口添加新规则时,它都会在负载均衡器中创建多个规则。规则基本相同,指向相同的后端

这是我的入口文件:

apiVersion: networking.gke.io/v1beta1
kind: ManagedCertificate
metadata:
  name: ingress-test.wpspeedmatters.com
spec:
  domains:
    - ingress-test.wpspeedmatters.com
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: wordpress-ip
    networking.gke.io/managed-certificates: ingress-test.wpspeedmatters.com
spec:
  backend:
    serviceName: wordpress
    servicePort: 8080
  rules:
    - host: ingress-test.wpspeedmatters.com
      http:
        paths:
          - path: /*
            backend:
              serviceName: wordpress
              servicePort: 8080

以下是在负载均衡器中创建的重复规则: enter image description here

2 个答案:

答案 0 :(得分:1)

默认情况下,HTTP(S) Load Balancer将创建两个默认规则:一个匹配所有主机和路径,另一个匹配当前主机ingress-test.wpspeedmatters.com和所有路径。

然后,将添加Ingress YAML(/*)中定义的自定义路径。在这种情况下,恰好与上述第二条规则相同,这使得它们看起来好像在重复。

如果将其更改为/something而不是/*,您仍然会得到3条路径规则。但是,这次您需要将Host作为ingress-test.wpspeedmatters.com,将Path作为/something,以及负载均衡器中的其他2个默认规则。

因此,基本上,这是默认的负载平衡器规则以及您的入口自定义规则。

答案 1 :(得分:0)

如果您尝试手动编辑负载均衡器,这将变得更加明显。当然,您实际上不应存储任何更改,而应尝试使用编辑模式来检查规则: enter image description here

我还使用Ingress进行Wordpress部署,而且,我尝试将相同的Load Balancer / Ingress重复用于登台和产品环境。起初,我看到duplucates时感到震惊,特别是因为本例中的默认服务是prod,因此默认情况下暂存似乎也指向prod。 但是,尽管UI笨拙,但一切都能按预期进行。