我正在创建一个两个节点的Kubernetes集群(1个主节点和2个从属节点),该集群将托管Netflix eureka。我将为需要在Eureka服务器上注册自己的应用程序创建微服务,并会从Eureka的服务注册表中找到其他微服务进行通信。我想要一个场景,如果任何节点出现故障,那么我们如何在其中实现高可用性?另外,应该进行负载平衡,以便将请求同时定向到群集中的其他节点。
有人可以让我知道解决方案吗?
答案 0 :(得分:0)
我想要一个场景,如果任何节点出现故障,那么我们如何在此实现高可用性
不建议直接创建Pod。假设运行Pod的节点崩溃,则Pod不会重新安排时间,并且该服务不可访问。
对于HA(高可用性),应使用更高级别的抽象,例如Deployments。部署将创建一个ReplicaSet,它将具有与其关联的多个Pod。因此,如果运行Pod的节点崩溃,则ReplicaSet将自动在运行状况良好的节点上重新调度Pod,您将获得HA。
此外,还应该进行负载平衡,以使请求同时定向到集群中的其他节点。
为展开创建type LoadBalancer服务,传入的请求将自动重定向到不同节点上的Pod。在这种情况下,将自动创建负载均衡器。并且有与负载均衡器相关的费用。
如果您不想使用负载均衡器,那么另一种更为复杂和强大的方法是使用Ingress。这还将在多个节点之间平衡请求的负载。
Here是一篇不错的文章,解释了负载均衡器和Ingress之间的区别。
在K8S文档here中直接或间接解决了上述所有查询。