我使用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>
我做错了什么?
答案 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它没有工作。