[英]kubernetes nginx ingress fails to redirect HTTP to HTTPS
[英]Kubernetes ingress redirects http to https
我需要社區的一些幫助,我對 kubernetes 還很陌生。
我需要在“deployment.yaml”文件中定義的主機的 URL 使用任何技術從 http 重定向到 https。 接下來,我將把基礎設施保留為我擁有的代碼。
部署.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
服務.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”
入口.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
就是這樣。 該服務適用於網址“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 。
現在您有以下選擇:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.