首页 文章

Kubernetes负载均衡和代理

提问于
浏览
0

我对Kubernetes很新,我有一些关于REST API请求代理和负载 balancer 的问题 .

我有一个Master节点和两个Worker节点,一个Worker节点上有一些Services,另一个Worker节点上有一些 .

一开始我只有一个工作节点,我使用工作节点IP和服务NodePort访问我的pod . 将另一个Worker节点添加到集群后,Kubernetes已将“mu pod”“重新分配”到两个Working节点 .

现在,我可以再次使用Worker节点IP和Service NodePorts访问我的pod . 这让我有点困惑:我怎样才能为不在工作节点上使用IP地址的pod获取我的pod REST API?

此外,由于我现在有2个工作节点,如何在两个工作节点上以适当的方式完成负载 balancer ?我知道我可以将serviceType设置为LoadBalancer for Service,但这还够吗?

谢谢您的回答!

1 回答

  • 1

    如何为不在使用IP地址的工作节点上的pod访问我的pod REST API?

    • 最好考虑将服务暴露给外部世界而不是pod,从而避免考虑运行pod的节点的IP地址 . 这个问题的答案取决于您的设置 . 根据实际复杂性和速度/可用性要求,可能有许多配置,但基本设置可归结为:

    • 如果您在某些受支持的 Cloud 环境中运行,那么设置负载均衡的入口会将其暴露给外部世界,而不用大惊小怪 .

    • 但是,如果你是在裸机上运行,那么你必须创建自己的入口(简单的nginx或apache代理pod就足够了)并指向服务名称的上游(或者在另一个命名空间的情况下指向fqdn),从而暴露所有服务中的pod,无论它们运行到外部世界的实际节点如何,并将负载 balancer 留给kubernetes服务 .

    如何在两个Worker节点上以适当的方式完成负载均衡?

    • 这是一个更复杂的主题,因为在整个节点上均匀分布您的pod,您可以使用不考虑pod分发的外部负载均衡器 . 对我们来说,将负载 balancer 留给kubernetes服务证明更准确,因为通常情况下,您可以在同一节点上运行两个pod(如果pod的数量大于节点数),在这种情况下,外部负载均衡器将不会能够均衡和kubernetes服务层将是 balancer .

相关问题