Rancher 2在部署新工作负载时在“端口”部分提供了4个选项:
有什么区别?特别是在NodePort,HostPort和Cluster IP之间?
答案 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 | 部署到每个节点
不适用 | 不适用 |