我正在设置一些运行在Google容器引擎上的服务,使用路径映射通过Google HTTP负载均衡器传输流量 .
有一个很好的Google教程可以设置基于内容的负载均衡here,但它完全取决于普通的Google Compute对象,例如实例组和后端服务 . 然而,我有Kubernetes服务,pods和集群 .
Kubernetes对象与Google Compute资源之间的关系是什么?如何以编程方式在两者之间进行映射?
(我知道我可以使用Kubernetes web ingress对象进行 balancer ,如here所述,但看起来Kubernetes Ingress还不支持HTTPS,这需要 . )
1 回答
https://github.com/kubernetes/contrib/tree/master/Ingress/controllers/gce#overview
Ingress将在1.2中支持HTTPS . 这就是资源的样子:https://github.com/kubernetes/kubernetes/issues/19497#issuecomment-174112834 . 同时,您可以使用Ingress设置HTTP负载 balancer ,并手动修改它以支持https . 事先道歉,这是令人费解的,它会很快好起来的 .
首先创建一个HTTP Ingress:
创建Type=NodePort的服务
确保你有BackendService quota
创建HTTP Ingress
在防火墙中公开服务的节点端口(也在https://cloud.google.com/container-engine/docs/tutorials/http-balancer中提到)
等到kubect描述显示HEALTHY for you backends .
此时,您应该能够卷曲Ingress负载均衡器IP并点击nginx服务(或您在步骤1中创建的任何服务) .
然后通过GCE console手动执行以下操作:
将Ingress资源的IP从"Ephmermal"更改为"Static"(在"External IP addresses"选项卡中查找
kubectl get ing
中的IP)创建您的ssl证书 . 如果您只想要自签名证书,您可以:
此时你应该能够卷曲https://loadbalancer-ip -k