如何解决Kubernetes入口将http重定向到https
我需要社区的一些帮助,我是kubernetes的新手。
我需要使用“ deployment.yaml”文件中定义的主机的URL,以使用任何技术从http重定向到https。接下来,我将把基础结构保留为我拥有的代码。
Deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: default
spec:
selector:
matchLabels:
run: web
template:
metadata:
labels:
run: web
spec:
containers:
- image: gcr.io/google-samples/hello-app:1.0
imagePullPolicy: Always
name: web
ports:
- containerPort: 8080
protocol: TCP
service.yaml:
apiVersion: v1
kind: Service
metadata:
name: web
namespace: default
spec:
ports:
- port: 8080
protocol: TCP
targetPort: 8080
name: web
selector:
run: web
type: NodePort
显然,我还为https创建了ssl证书。为此,我创建了由Google管理的证书,其文件为“ managedcertificate.yaml ”:
apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
name: certificate-test
spec:
domains:
- test.host.com
最后,我创建了一个静态ip以便稍后在入口中分配它。 命令:“ gcloud计算地址创建ip-test --global”
ingress.yaml:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: basic-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: ip-test
networking.gke.io/managed-certificates: certificate-test
spec:
rules:
- host: test.host.com
http:
paths:
- backend:
serviceName: web
servicePort: 8080
就是这样。该服务适用于URL“ http://test.host.com”和“ https://test.host.com”,但是我想要的是当我进入端口80时(即“ http:/ /test.host.com“)自动将我重定向到443(使用https)。
我已尝试在入口中放入以下配置:'ingress.kubernetes.io/force-ssl-redirect:“ true”',但仍然无法正常工作。
我希望一个比我了解更多的人能帮助我。 在此先向社区表示感谢,
解决方法
不幸的是,尽管GKE Ingress实现尚在实现中,但尚不支持HTTP到HTTPS重定向。参见ingress-gce #1075。
目前,您有以下选择:
- 用ingress-nginx代替GKE本机Ingress
- 自行实现重定向。请参见示例here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。