K8s配置中Port、ContainerPort、targetPort和NodePort端口解析
Kubernetes中port、containerPort、targetPort、NodePort是Service和Pod配置的核心网络参数,分别对应服务暴露端口、容器监听端口、流量转发目标端口和外部流量访问Service的端口,是确保Kubernetes集群正常运行的关键。
port(服务端口)
- 定义:port是K8s集群内部访问service的端口,即通过ClusterIP:port可以访问到某个service.
- 用途:集群内服务通信入口,如
http://192.168.73.80:3306
# kubectl -n test get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mysql NodePort 192.168.73.80 <none> 3306:31676/TCP 4y243d rabbitmq NodePort 192.168.120.163 <none> 15672:30198/TCP,5672:30568/TCP 3y283d redis NodePort 192.168.74.95 <none> 6379:30841/TCP 4y241d redis-sentinel ClusterIP 192.168.69.78 <none> 6379/TCP,6380/TCP,6381/TCP 4y241d
PORT(s)列显示集群IP内部端口(3306、15672、6379、6380、6381)和节点端口(31676、30198、30568/30841).
此时可以有两种方式访问:
ClusterIP:3306 ,3306对应port端口,集群内部可以通过 192.168.73.80:3306访问.
containerPort(容器端口)
- 定义:容器内应用程序实际监听的端口,需与Dockerfile的
EXPOSE一致 - 用途:容器启动时绑定的端口,如
8080
targetPort(目标端口)
- 定义:Service将流量转发到Pod的端口,可与port或containerPort不同
- 用途:确保流量正确路由到容器监听端口,如
80
nodeport(目标端口)
nodePort是 外部访问 k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service。
总结:
- Port是Kubernetes Service暴露给集群内部客户端的端口。
- TargetPort是Service要转发到哪个容器端口的定义。
- NodePort是Kubernetes Service暴露给集群外部客户端的端口。
- ContainerPort是容器内部应用程序实际监听的端口。

浙公网安备 33010602011771号