gpt4 book ai didi

kubernetes - 按端口的入口后端规则?

转载 作者:行者123 更新时间:2023-12-02 11:48:58 27 4
gpt4 key购买 nike

我有一个使用 TLS 设置运行且工作正常的功能性 Ingress。我可以访问 http://whoami.domain.comhttps://whoami.domain.com ,并且在 https 域上使用了正确的证书。

我在 Google 上运行,我知道 Google 的 Ingress Controller 不允许设置 force ssl 以确保流量通过 https。我知道我可以使用 禁用 http kubernetes.io/ingress.allow-http: "false"但我们不希望用户知道他们需要使用 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

我一直在试图找到一个人可以提供的规则键,但找不到任何列表,只是一些关于主机和路径的例子。

最佳答案

当前无法从 http:// 设置重定向至 https://在 Google Cloud 负载均衡器中。因此,您不能在 GKE Ingress 中执行此操作。 https://issuetracker.google.com/35904733

我个人建议运行一个简单的服务,比如 nginx 容器,它只是重写了 http://请求 https://并将其放在应用程序的 80 端口版本之后。

编辑:我不确定如何实现这一目标。您可能需要两个具有相同主机名的独立 Ingress 对象,但其中一个带有 tls:一个没有。但是我仍然不确定它是否会起作用,因为 Ingress Controller 可以创建多个转发规则,并且您可能无法实现这一点。

这里最好的解决方案可能只是使用 TCP/IP 负载均衡器(服务类型:LoadBalancer)监听 :80 和 :443 并自己终止 TLS。

看看这个问题,它和你的很相似:Implementing workaround for missing http->https redirection in ingress-gce with GLBC

关于kubernetes - 按端口的入口后端规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49831195/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com