簡體   English   中英

Kubernetes 入口將 http 重定向到 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

現在您有以下選擇:

  • ingress-nginx替換 GKE 原生 Ingress
  • 自己實現重定向。 請參閱此處的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM