我正在尝试在具有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)?
答案 0 :(得分:1)
如果您可以确认要遵循的教程,我们可以确认测试。这样说,我认为您所看到的行为是可以预期的。
根据GKE Ingress doc,它指出:
“ 无论何时通过Ingress配置HTTP(S)负载平衡器,都不得手动更改或更新HTTP(S)负载平衡器的配置。即,不得编辑任何负载平衡器的配置。组件,包括目标代理,URL映射和后端服务。您所做的任何更改都会被GKE覆盖。“
您可以尝试删除入口,对YAML文件进行手动编辑,然后再次重新创建它,并查看删除HTTP是否可行。