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

Kubernetes多容器Deployment对接单Service多端口访问故障排查

问题场景
  • 单个Deployment资源下包含2个容器,分别配置不同监听端口,配置片段如下:
template: {
  spec: {
   containers: [
     {
      name: container1,
      image: image1,
      command: [...],
      args: [...],
      imagePullPolicy: IfNotPresent,
      ports: [
        {
          name: port1,
          containerPort: 80,
        },
      ],
      .............
    },
    {
      name: container2,
      image: image1,
      command: [...],
      args: [...],
      imagePullPolicy: IfNotPresent,
      ports: [
        {
          name: port2,
          containerPort: 81,
        },
      ],
      ------------
    }
   ]
  }
}
  • 创建了多端口配置的ClusterIP类型Service对接上述两个容器,配置片段如下:
spec: {
  type: ClusterIP,
  ports: [
    {
      port: 7000,
      targetPort: 80,
      protocol: 'TCP',
      name: port1,
    },
    {
      port: 7001,
      targetPort: 81,
      protocol: 'TCP',
      name: port2,
    } 
  ]
}
  • 故障现象:可通过Service名称+7000端口正常访问监听80端口的container1,但无法通过Service名称+7001端口访问监听81端口的container2
  • 补充说明:两个容器使用完全相同的镜像,仅配置不同command和args参数实现不同内部业务逻辑
配置遗漏&故障排查方向

你贴出的Deployment、Service端口声明语法本身没有错误,故障基本是以下配置遗漏/错误导致,按优先级排查即可:

  1. container2业务进程未正确监听81端口
    这是同镜像多容器场景下最高发的问题:多数通用镜像默认监听端口为80,你虽然修改了启动参数,但如果参数未生效、业务代码未配置监听81,或者进程只绑定了127.0.0.1:81而非0.0.0.0:81,都会导致访问不通。

排查方式:进入对应Pod执行ss -lntp | grep 81,确认是否有进程绑定全网卡的81端口。

  1. container2内部拦截了81端口流量
    部分基础镜像默认自带iptables规则、或者启动逻辑中包含端口限制配置,会拦截外部对81端口的访问。

排查方式:找同集群内其他任意Pod,直接执行curl <故障Pod的IP>:81,如果直连PodIP都不通,说明问题出在容器内部,和Service配置无关。

  1. Service端点未正确收录81端口
    执行kubectl get endpoints <你的Service名称>,查看返回的后端端点列表,确认是否同时存在对应Pod的80、81两个端口。如果只有80端口没有81端口,优先检查Pod模板中container2的端口声明是否有拼写错误、Service的targetPort配置是否和containerPort/端口名完全匹配(注意大小写、特殊字符)。
  2. 确认Service的selector配置完全匹配Pod标签
    你贴出的Service配置片段中遗漏了selector字段,该字段是Service识别后端Pod的核心配置,虽然7000端口能通说明selector大概率配置正确,但仍需核对selector的键值是否和Pod模板的labels完全一致,避免存在特殊字符、空格导致匹配异常。

内容的提问来源于stack exchange,提问作者Yashasvi Raj Pant

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:18:24