我有一个使用 TLS 设置运行并正常工作的功能性 Ingress。我可以访问http://whoami.domain.com和https://whoami.domain.com,并且在 https 域上使用了正确的证书。
我在谷歌上运行,我知道谷歌入口控制器不允许设置强制 ssl 以确保流量通过 https。我知道我可以使用kubernetes.io/ingress.allow-http: "false"禁用 http,但我们不希望用户知道他们需要使用 https://
我对如何解决这个问题的想法是有一个“重定向”后端,我将其定义为所有 port=80 请求的默认后端,只有 301 到 https ......但是,我找不到一种方法来定义尊重的入口规则传入端口。
这是我目前的想法,但它当然不起作用:)
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
spec:
tls:
- hosts:
- whoami.domain.com
secretName: tls-whoami
rules:
- host: whoami.domain.com
port: 443 # my wish :)
http:
paths:
- backend:
serviceName: whoami-service
servicePort: 80
- host: whoami.domain.com
port: 80 # my wish :)
http:
paths:
- backend:
serviceName: http-redirect-service
servicePort: 80
我一直在试图找到一个可以提供的规则键,但找不到任何列表,只是它们都是关于主机和路径的示例。