Last updated 4 years ago
Was this helpful?
当创建了NodePort类型的Service后,其会在集群内的每一个Node上都保留一个端口(所有Node都使用相同的端口),该端口是由Service创建的一个协程监听的。
下面展示一个创建NodePort类型的Service,即spec.type=NodePort。例如创建一个名为kubia-nodePort的Service,其匹配标签为app=kubia的Pod,并且这些Pod的端口号为8080,该Service在集群内的端口号为80,在Node上监听的端口号为30123。
spec.type=NodePort
kubia-nodePort
app=kubia
8080
80
30123
apiVersion: v1 kind: Service metadata: name: kubia-nodeport spec: type: NodePort ports: - port: 80 targetPort: 8080 nodePort: 30123 selector: app: kubia
🧨 30123 这个 nodePort 是真实存在于 Node 上的,但是上述的 80 端口号是虚拟的,是由 iptables 生成的;
nodePort
外部客户端访问Service的架构图如下: