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

zar*_*tra 4 docker rancher

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

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

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

Tin*_*ky_ 10

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.


VKa*_*atz 5

Host Port Node Port Cluster IP
当 apod使用 a 时hostPort,与节点端口的连接将直接转发到在该节点上pod运行的node 使用NodePort服务,与节点端口的连接被转发到随机选择的pod(可能在另一个node 公开Serviceinternal IP的群集。这种类型使服务只能从集群内部访问。
pods 使用 a hostPort,节点的端口只绑定在运行此类 pods 的节点上 NodePort 服务绑定所有节点上的端口,即使在那些不运行这样的 pod 的节点上 不适用
hostPort 功能主要用于暴露系统服务,这些服务部署到每个节点使用 DaemonSets 不适用 不适用

一般问题

问:当许多 Pod 运行在 NodePort 的同一个节点上时会发生什么?

答:有了NodePort它,如果你有一个或多个节点无所谓,端口可用的每个节点上。