在GKE上使用Ingress构造的HTTP-LoadBalancer在http-allowance和NOT HTTP-allowance之间不稳定

时间:2019-02-07 09:59:23

标签: https google-cloud-platform load-balancing kubernetes-ingress google-kubernetes-engine

我正在尝试在具有Ingress的GKE上设置HTTPS-LB,该HTTPS-LB不允许使用HTTP。

现在,如官方网站所述,我在私有集群上部署了一个简单的应用程序。该应用程序可以通过浏览器访问。 ※通过http-connection和https-connection

然后我通过在LB的设置中关闭(删除)前端的协议“ http”来禁止对该应用程序的http访问。 实际上,起初,通过浏览器进行的http连接出错,而不是连接错误。 5-10分钟后,http协议设置会自动恢复。

这是一个Yaml文件。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-name
  annotations:
    # kubernetes.io/ingress.allow-http: "false" 
    kubernetes.io/ingress.global-static-ip-name: "ip-name" 
spec:
  #tls:
  #This assumes tls-secret exists.
  #- hosts:
  #  - XXXXXXXX.XXX.XXX
  #  secretName: ip-secret ← no use because of google-managed-ssl
  rules:
  - http:
      paths:
      # to app
      - path: /*
        backend:
          serviceName: XXXXX-backend
          servicePort: 80
      # to DS Export
      - path: /backend/*
        backend:
          serviceName: XXXXX-be-backend
          servicePort: 80

是浏览器导致此问题吗?或内部设置(例如gce实例上的http-health-checker)?

1 个答案:

答案 0 :(得分:1)

如果您可以确认要遵循的教程,我们可以确认测试。这样说,我认为您所看到的行为是可以预期的。

根据GKE Ingress doc,它指出:

无论何时通过Ingress配置HTTP(S)负载平衡器,都不得手动更改或更新HTTP(S)负载平衡器的配置。即,不得编辑任何负载平衡器的配置。组件,包括目标代理,URL映射和后端服务。您所做的任何更改都会被GKE覆盖

您可以尝试删除入口,对YAML文件进行手动编辑,然后再次重新创建它,并查看删除HTTP是否可行。