无停机的Kubernetes负载平衡器
关于负载平衡器服务,我缺少一些东西。无停机的Kubernetes负载平衡器,kubernetes,Kubernetes,关于负载平衡器服务,我缺少一些东西。 如果我运行一个负载平衡器,并且我的负载分布在3个pod上,您是否可以保证在多个节点的情况下,相同的“类型”pod将均匀分布在集群内的节点上 如果我理解正确,Kubernetes将尝试在节点上散布不同类型的吊舱,以实现资源的最佳利用。 但这是否也能保证公开同一应用程序的pod分布均匀 复制控制器将确保一定数量的POD始终在运行,但在节点发生故障时会发生什么情况;假设一个节点的网络接口关闭,在该节点上安排了3个相同类型的POD。在这种情况下,rc将注意它们在不同
如果我运行一个负载平衡器,并且我的负载分布在3个pod上,您是否可以保证在多个节点的情况下,相同的“类型”pod将均匀分布在集群内的节点上 如果我理解正确,Kubernetes将尝试在节点上散布不同类型的吊舱,以实现资源的最佳利用。
但这是否也能保证公开同一应用程序的pod分布均匀 复制控制器将确保一定数量的POD始终在运行,但在节点发生故障时会发生什么情况;假设一个节点的网络接口关闭,在该节点上安排了3个相同类型的POD。在这种情况下,rc将注意它们在不同的节点上再次启动,但是您如何知道该api不会出现临时中断?我想,当使用负载平衡器时,这是可以防止的吗 是和否 Kube scheduler将尝试在尽最大努力的基础上扩展您的POD,但有些情况会导致在同一节点上进行调度。所以“不”
但是,您可以使用kubernetes的多种功能来实现这一点,如pod反亲和力、守护程序集、主机端口、descheduler等。因此,如果您确切知道需要什么以及如何实现它,请选择“是”。kubernetes尝试分配其所有节点的负载。因此,您可以在同一个节点中部署所有吊舱。 正如您所说,如果节点发生故障,它将使您的所有pod无法访问 作为一名开发人员,如果您需要在不同的节点之间分布POD,您可以使用以下工具:
- 守护程序集:确保所有(或某些)节点运行pod的副本
- 节点选择器:您可以使用标签定义要部署POD的节点
这里有kubernetes在文档中提供的所有解决方案:我可能错了,但我认为任何想要负载平衡2吊舱的人都会优先考虑冗余而不是最小的资源优化。根据您的经验,您是否经常遇到节点故障,并且您是否觉得Kubernetes至少尝试在不同的节点上传播相同类型的吊舱?在权衡方面,如果不需要增加额外的复杂性,api很少不可用是可以接受的。至少在最常用的平台(AWS、IBM Cloud、Google Cloud或Azure)中,节点不可用并不常见。但是,如果发生这种情况,您可以使用工具防止POD部署在该节点上(例如,cordon或drain),稍后我将检查亲和性和反亲和性。我对此有点反感。守护进程集将在每个节点上至少创建一个pod,我可能也不希望这样。另一方面,不建议在生产中使用节点选择器。最后,我觉得在所需数量的节点上进行负载平衡应该是一个内置选项。