微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kubernetes,GCE,负载均衡,SSL

为了序言,我正在研究GCE和Kuberenetes.我的目标只是通过SSL公开我的集群上的所有微服务.理想情况下,它与通过type =’LoadBalancer’公开部署并获得单个外部IP时的工作方式相同.这是我的目标,但SSL不适用于那些基本负载均衡器.

根据我的研究,目前最好的解决方案是建立一个Nginx入口控制器,使用入口资源和服务来公开我的微服务.下面是我对这个过程的理解所绘制的图表.

enter image description here

我已经把这一切都成功地通过HTTP工作了.我从这里部署了认的Nginx控制器:https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx.以及认后端的认后端和服务.我自己的微服务的入口有规则设置为我的域名和路径:/.

这是成功的,但有两件事让我感到困惑.

>当我为后端(微服务)公开服务资源时,我使用的一个指南使用了type =’NodePort’而另一个只是放了一个端口来访问服务.两者都将目标端口设置为后端应用程序端口.我尝试了这两种方式,它们似乎都有效.指南一来自上面的链接.指南2:http://blog.kubernetes.io/2016/03/Kubernetes-1.2-and-simplifying-advanced-networking-with-Ingress.html.这有什么区别?
>另一个困惑点是我的入口总是有两个IP.我最初的思考过程是应该只有一个外部ip,这将击中我的入口,然后由Nginx指导路由.或者是ip直接到Nginx?无论如何,创建的第一个IP地址似乎给了我预期的结果,因为访问第二个IP失败了.

尽管我的困惑,似乎在HTTP上工作得很好.通过HTTPS而不是那么多.起初,当我通过https发出Web请求时,事情就会挂起.我在我的防火墙规则上打开了443,这似乎有效但我会打到我的认后端而不是我的微服务.

阅读引导我从Kubernetes docs:目前Ingress资源只支持http规则.
这可以解释为什么我要使用认后端,因为我的规则仅适用于HTTP.但是,如果是这样,我应该如何使用这种方法进行SSL?

我注意到的另一件事是,如果我编写一个没有规则的入口资源并给它我想要的后端,我仍然会被定向到我原来的认后端.这更奇怪,因为kubectl描述更新并声明我的认后端是我想要的后端…

任何帮助或指导将不胜感激.谢谢!

解决方法:

因此,对于#2,您可能最终配置了一个Google HTTP(S)LoadBalancer,可能是因为您缺少kubernetes.io/ingress.class:“Nginx”注释,如下所述:https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx#running-multiple-ingress-controllers.

GKE拥有自己的入口控制器,您需要通过在Nginx部署上粘贴该注释来覆盖它. This article对这些东西有一个很好的解释.

kubernetes docs非常好地描述了NodePort的含义 – 基本上,该服务将在群集中的每个节点上从高范围分配端口,并且节点将从该端口转发流量到您的服务.这是在不同环境中设置负载平衡器的一种方法,但对于您的方法,这不是必需的.您可以省略微服务服务的类型字段,并为其分配认类型,即ClusterIP.

至于SSL,它可能是一些不同的东西.我会确保你已经按照他们在nginx controller docs中描述的那样设置了Secret,例如使用tls.cert和tls.key字段.

我还要查看Nginx控制器的日志 – 找出它运行的pod与kubectl get pods一样,然后尾随它的日志:kubectl logs Nginx-pod-< some-random-hash> -F.这将有助于确定您是否错误配置了任何内容,例如服务是否配置了任何端点.大多数时候我搞砸了入口的东西,这是由于服务/部署的一些非常基本的错误配置.

您还需要为指向LoadBalancer的静态IP的主机名设置DNS记录,或者使用cURL的-H 070​​04 ping您的服务,否则您最终可能会被路由到认的后端404.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐