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是容器内部应用程序实际监听的端口。


posted @ 2025-11-27 11:15  梦徒  阅读(77)  评论(0)    收藏  举报