NodePort

当创建了NodePort类型的Service后,其会在集群内的每一个Node上都保留一个端口(所有Node都使用相同的端口),该端口是由Service创建的一个协程监听的。

创建NodePort类型的Service

下面展示一个创建NodePort类型的Service,即spec.type=NodePort。例如创建一个名为kubia-nodePort的Service,其匹配标签为app=kubia的Pod,并且这些Pod的端口号为8080,该Service在集群内的端口号为80,在Node上监听的端口号为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 生成的;

外部客户端访问Service的架构图如下:

外部客户端通过NodePort类型Service访问内部Pod

Last updated

Was this helpful?