Rancher 2:NodePort,HostPort和群集IP之间的差异

时间:2018-06-05 21:12:21

标签: docker rancher

Rancher 2在部署新工作负载时在“端口”部分提供了4个选项:

  • NodePort
  • HOSTPORT
  • 群集IP
  • 第4层负载均衡器

有什么区别?特别是在NodePort,HostPort和Cluster IP之间?

2 个答案:

答案 0 :(得分:6)

HostPort(运行pod的节点):与docker类似,这将打开运行pod的节点上的端口(这允许您在主机上打开端口80)。但是,这很容易设置运行:

  

除非绝对必要,否则不要为Pod指定hostPort。将Pod绑定到hostPort时,它会限制Pod可以调度的位置数,因为每个组合必须是唯一的。如果未明确指定hostIP和协议,Kubernetes将使用0.0.0.0作为默认hostIP,并使用TCP作为默认协议。   kubernetes.io

NodePort(在每个节点上):仅限于端口30,000到~33,000之间的端口。这通常只有与外部负载均衡器结合才有意义(如果您想在端口80上发布Web应用程序)

  

如果您明确需要在节点上公开Pod的端口,请考虑在使用hostPort之前使用NodePort服务。   kubernetes.io

群集IP(仅限内部):如说明所示,这将打开仅适用于在同一群集中运行的内部应用程序的端口。使用此选项的服务是通过内部cluster-ip访问libbile。

答案 1 :(得分:4)

<头> 部署到每个节点
Host Port Node Port Cluster IP
pod 使用 hostPort 时,到节点端口的连接会直接转发到在该 {{} 上运行的 pod 1}} 使用node服务,与节点端口的连接被转发到随机选择的NodePort(可能在另一个pod上)< /td> 在集群中的 node 上暴露 Service。这种类型使得服务只能从集群内部访问。
pods 使用 internal IP,节点的端口只绑定在运行此类 pods 的节点上 hostPort 服务绑定所有节点上的端口,即使在那些没有运行这样的 pod 的节点上 不适用
hostPort 功能主要用于暴露系统服务,使用 NodePort不适用 不适用