我对Kubernetes几乎没有基本的疑问。
考虑以下部署。第7层负载均衡器将通过Kubernetes服务将请求路由到NGINX服务器,NGINX将路由到Tomcat,Kubernetes服务。
查询:
如果Kubernetes服务于单点故障,或者因为配置了kube-proxy且服务只是虚拟层的多个pod支持它,那么它不能被视为单点故障?
上图是单个Kubernetes集群,这是一个单点故障,还是我应该为系统规划多个Kubernetes集群,我需要支持HA,停机时间为零。
上图利用了Kubernetes服务,默认情况下仅支持L4负载均衡(仅限循环)。因此说tomcat服务器负载很重,循环不会根据使用情况均匀分配负载。如何根据系统资源消耗或使用情况实现负载分配或不实现。上述拓扑中的开放连接?
注意:没有。上图中的矩形框仅是代表性的。我将在每层部署10到20个pod以满足我的工作量。
答案 0 :(得分:0)
- 如果Kubernetes服务单点故障,或者因为配置了kube-proxy且服务只是虚拟层的多个pod支持它,那么它不能被视为单点故障?
醇>
我认为你的后一种解释是正确的。
- 上图是单个Kubernetes集群,这是单点故障,还是我应该为系统规划多个Kubernetes集群,我需要在零停机时间内支持HA。
醇>
k8s群集不是HA,因为主节点是单点故障。主节点上的重要组件包括apiserver和控制器管理器,如果没有它们,则无法创建更多的pod或服务。也就是说,即使主节点关闭,您部署的服务也应该继续工作。
有关如何在HA模式下设置k8s群集的指南,我还没有亲自尝试过:http://kubernetes.io/docs/admin/high-availability/。还有Ubernetes (WIP),它允许您在云提供商之间联合多个k8群集。
- 上图利用了Kubernetes服务,默认情况下仅支持L4负载均衡(仅限循环)。
醇>
事实并非如此,kubernetes拥有名为ingress的beta功能,它支持L7负载均衡,看看它是否有帮助http://kubernetes.io/docs/user-guide/ingress/:)
答案 1 :(得分:0)
在下面的Kubernetes已成功部署了50多个pods(计划在不久的将来扩展到250+)的内部部署,这是我从经验和我的团队聚集的观察结果:
- 如果Kubernetes服务于单点故障或因为它是 由配置了kube-proxy的多个pod支持 服务只是一个虚拟层,它不能被视为单一的 失败点?
醇>
如果负载均衡器(LB)映射到单个节点IP,那将是单点故障,因为该VM /物理服务器的故障将导致整个应用程序崩溃。因此,将LB指向至少2个不同的节点IP。
- 上图是单个Kubernetes集群,这是一个单点 失败或我应该为系统规划多个Kubernetes集群 我需要在没有停机的情况下支持HA。
醇>
使用负载均衡器配置HA中的Kubernetes
- 上图利用了Kubernetes服务,默认情况下仅支持L4负载均衡(仅限循环)。因此说一个tomcat 服务器负载很重,循环不会均匀分配负载 根据用途。如何实现基于系统的负载分配 资源消耗或使用或否。在上面的开放连接 拓扑结构?
醇>
是的,目前仅支持循环负载均衡。 Ingress处于测试阶段,在我上次检查时尚未准备好生产。 NGINX +可用于负载平衡,忽略Kubernetes负载平衡,并使用Kubernetes API,可以对其进行配置,以便在运行时在NGINX +中更新或删除Tomcat Pod,而不会出现任何停机。 (我还没有尝试过这个,但如果当前的设置会引发任何挑战,将来可能会考虑)
参考:https://www.nginx.com/blog/load-balancing-kubernetes-services-nginx-plus/