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