Kubernetes负载均衡和代理

时间:2018-05-08 16:01:52

标签: kubernetes

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

我有一个Master节点和两个Worker节点,其中一个Worker节点上有一些Services,另一个Worker节点上有一些。

一开始我只有一个工作节点,我使用工作节点IP和服务NodePort访问我的pod。将另一个Worker节点添加到集群后,Kubernetes已经重新分配了#34; mu pods到两个工作节点。

现在,我可以再次使用Worker节点IP和Service NodePorts访问我的pod。这对我来说有点让人困惑:我怎样才能找到不在工作节点上使用IP地址的pod的pod REST API?

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

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

  

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

  • 最好考虑将服务暴露给外部世界而不是pod,从而避免考虑运行pod的节点的IP地址。这个问题的答案取决于您的设置。根据实际复杂性和速度/可用性要求,可能有许多配置,但基本设置可归结为:
    • 如果您在某些受支持的云环境中运行,那么设置负载均衡的入口会将其暴露给外部世界而不会有太大的麻烦。
    • 但是,如果你是在裸机上运行,​​那么你必须制作自己的入口(简单的nginx或apache代理pod就足够了)并指向服务名称的上游(或者在另一个命名空间的情况下为fqdn),因此暴露服务中的所有pod,无论它们运行到外部世界的实际节点如何,并将负载平衡留给kubernetes服务。
  

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

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