GCP GCE Ingress没有重定向http

时间:2018-02-23 13:26:05

标签: ssl kubernetes google-cloud-platform google-compute-engine

我使用Kubernetes Engine来提供服务。我想使用带有自定义证书的gce入口控制器(到现在为止,我只测试)。我的问题是我的入口控制器没有将http重定向到https。我知道使用nginx ingress,重定向工作,但我需要使用GCE。

我的入口是这样的:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  namespace: project-dev
  annotations:
    name: project-ingress
    kubernetes.io/ingress.class: "gce"
    kubernetes.io/ingress.allow-http: "false"  
    ingress.kubernetes.io/force-ssl-redirect: "true
spec:
  tls:
   - secretName: mycert
  backend:
    serviceName: testingservice
    servicePort: 3000

kubectl描述了入侵我的入口

Name:             my-ingress
Namespace:        project-dev
Address:          <publicIP>
Default backend:  service:Port (PrivateIP:3000)
TLS:
 mycert terminates 
Rules:
  Host  Path  Backends
  ----  ----  --------
  *     *     service:Port (PrivateIP:3000)
Annotations:
  https-target-proxy:     ****
  ssl-cert:               ****
  static-ip:              ****
  url-map:                ****
  target-proxy:           ****
  backends:               {"k8s-be-30120--0ad2e277d383b39d":"HEALTHY"}
  force-ssl-redirect:     true
  forwarding-rule:        ****
  https-forwarding-rule:  ****
Events:
  Type    Reason   Age               From                     Message
  ----    ------   ----              ----                     -------
  Normal  Service  6m (x12 over 1h)  loadbalancer-controller  default backend set to <backend>

我做错了什么?

2 个答案:

答案 0 :(得分:-1)

您可以尝试通过GCP Load Balance进行设置,如下所示:

gcloud compute addresses create myexternalip --region europe-west1
gcloud compute target-pools create kubernetes --region europe-west1
gcloud compute target-pools add-instances kubernetes --instances your_kubernetes_cluster --instances-zone europe-west1-d
gcloud compute forwarding-rules create kubernetes-forward --address myexternalip --region europe-west1 --ports 1-65535 --target-pool kubernetes
gcloud compute forwarding-rules describe kubernetes-forward

答案 1 :(得分:-1)

当我创建一个GCE Ingress时,它会被创建并且静态外部IP,负载均衡器和它被分配k8s集群。所以,就像我按照你的步骤。在负载均衡器中,我可以在HTTPS中看到允许的HTTP和HTTPS协议以及我的SSL证书。

也许我必须创建从HTTP到HTTPS的转发规则?我的意思是,在GCP级别,因为在k8s它没有工作。