假设我的集群中有一个主节点(192.168.1.1)和一个工作节点(192.168.1.2)。如果我创建一个 NodePort 30001 的服务,那么它会使用主 IP(192.168.1.1:30001)还是工作 IP(192.168.1.2:30001)?
答案 0 :(得分:1)
服务类型 NodePort
在所有节点上打开端口,并且可以使用 NodePort
访问与 IP:port
服务关联的 pod组合,其中 IP
表示节点的外部 IP,port
表示节点上为 NodePort
服务公开的端口。
引用 docs:
<块引用>如果将 type 字段设置为 NodePort,Kubernetes 控制平面 从 --service-node-port-range 指定的范围分配端口 标志(默认值:30000-32767)。每个节点代理该端口(相同 每个节点上的端口号)到您的服务中。您的服务报告 在其 .spec.ports[*].nodePort 字段中分配的端口。
<块引用>请注意,此服务可见为 NodeIP:spec.ports[].nodePort 和 .spec.clusterIP:spec.ports[].port。 (如果 --nodeport-addresses kube-proxy 中的标志已设置,将过滤 NodeIP。)
following post 给出了一个示例,其中应用程序可从主节点 IP:port
组合以及 NodePort
服务访问。
此外,openshift 上的帖子明确指出所有节点都打开了端口:
<块引用>使用 NodePorts 在所有节点上暴露服务 nodePort 集群。