You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes服务端口差异及LoadBalancer服务8080端口配置咨询

Kubernetes Service端口规则说明与LoadBalancer服务配置方法

端口字段含义

Kubernetes kubectl get svc输出的端口列遵循固定映射规则,不同类型服务展示格式有区别:

  • 你看到的test1(ClusterIP)的8080/TCP:表示该服务仅在集群内暴露8080 TCP端口,集群内其他业务负载可通过test1:8080访问后端服务,ClusterIP类型不需要在节点层面预留端口做流量转发,所以没有额外端口段。
  • 你看到的test2(LoadBalancer)的2888:31218/TCP,8080:30012/TCP是两组独立的端口映射规则,每一组的格式为<服务集群访问端口>:<节点预留转发端口>/<协议>:
    • 2888:31218/TCP:集群内访问test2服务的2888端口、或通过任意集群节点的公网/内网IP访问31218端口,流量都会转发到后端Pod对应配置的应用端口;外部负载均衡器的入流量也会通过这套映射规则路由到后端
    • 8080:30012/TCP:集群内访问test2服务的8080端口、或通过任意集群节点IP访问30012端口,流量会转发到后端Pod的对应应用端口

保留LoadBalancer类型实现8080端口同ClusterIP访问效果的配置方法

LoadBalancer类型服务本身就内置了ClusterIP的全部集群内访问能力,不需要把服务改成ClusterIP类型,按以下步骤调整配置即可:

  1. 执行命令编辑test2的服务配置:
kubectl edit svc test2
  1. 在打开的YAML配置文件中找到spec.ports字段,做如下调整:
    • 如果你不需要对外或对内暴露2888对应的服务,直接删除配置中port值为2888的整个端口块
    • 找到port值为8080的配置块,确认三个核心参数配置正确:
      • port值固定为8080,和test1的集群访问端口保持一致
      • targetPort值设置为后端应用实际监听的端口(和test1的targetPort配置保持一致即可,没有显式配置时默认和port值相同,也就是8080)
      • 自动生成的nodePort: 30012字段不需要修改或删除,这是LoadBalancer类型为了路由外部流量自动在节点上预留的转发端口,不会干扰集群内通过8080端口访问的逻辑
  2. 保存配置退出编辑器,Kubernetes会在数秒内自动同步生效配置。

配置生效后,集群内通过test2:8080访问的链路、转发效果和ClusterIP类型的test1:8080完全一致,同时你依然可以通过负载均衡绑定的域名ww.blah.com从集群外部访问服务。

内容的提问来源于stack exchange,提问作者Shivangi Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 06:57:30