Background:
我对谷歌的 Cloud 平台很陌生,所以我想确保我没有遗漏任何明显的东西 .
我们希望通过https公开一些服务 . 我已经阅读了http(s) load-balancing的文档,这似乎表明您应该维护自己的nginx实例,该实例执行SSL终端和负载 balancer . 对我而言,这看起来相当复杂(我习惯于在AWS及其负载均衡器(ELB)上工作,该负载均衡器支持多年的SSL终端) .
Questions:
-
如果您只需要在GKE中进行SSL终止,那么创建和维护nginx实例是否可行?
-
如果是这样,这是怎么做到的? documentation似乎并没有真正传达这种观点 .
1 回答
Tl; Dr:为Kubernetes 1.2观看这个空间
到目前为止,Kubernetes仅支持L4负载均衡 . 这意味着GCE / GKE负载均衡器打开了一个tcp连接,只是将流量发送到后端,后端负责终止ssl . 从Kubernetes 1.1开始,Kubernetes有一个“Ingress”资源,但它目前处于Beta状态,只支持HTTP . 它将支持1.2中的不同SSL模式 .
那么,如何使用普通的Kubernetes服务终止SSL?
https://github.com/kubernetes/kubernetes/blob/release-1.0/examples/https-nginx/README.md
如何为此服务创建负载均衡器?
L4:将NodePort更改为LoadBalancer(https://github.com/kubernetes/kubernetes/blob/release-1.0/examples/https-nginx/nginx-app.yaml#L8)
L7:部署服务负载均衡器(https://github.com/kubernetes/contrib/tree/master/service-loadbalancer#https)
如何通过Kubernetes创建GCE HTTP负载均衡器? https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/ingress.md#simple-fanout
那么如何通过Kubernetes创建GCE HTTPS负载均衡器呢?
进入1.2,目前该过程是手动的 . 如果你不清楚确切的手动步骤回复这个,我会澄清(不确定我是否应该在这里列出所有这些并让你更加困惑) .