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

M1 MacBook Pro上Kubernetes NodePort服务无法访问问题求助

NodePort访问异常修复方案

核心配置问题

你给出的两份配置存在两处关键字段缺失,是导致NodePort访问失败的主要原因:

  • Pod 未声明 containerPort:没有指定容器内应用实际监听的端口
  • Service 未声明 targetPort:没有配置请求转发到容器的目标端口,默认会和 port 字段值保持一致,如果你的应用实际监听端口不是80就会转发失败

补充说明:LoadBalancer类型服务通常由云厂商实现底层转发逻辑,配置容错性更高,所以不会暴露这个问题。

修正后的配置

Pod yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-webapp
  labels:
    app: webapp
spec:
  containers:
  - name:  app
    image: mydockerimage_xxx
    # 替换为你的应用实际监听的端口
    ports:
    - containerPort: 8080

Service yaml

kind: Service
apiVersion: v1
metadata:
  name: service-webapp
spec:
  ports:
    - name: http
      port: 80
      # 和上面containerPort保持一致
      targetPort: 8080
      nodePort: 30080
  selector:
    app: webapp
  type: NodePort

修正后仍异常的排查步骤

  • 执行kubectl get pods确认Pod状态为Running,无异常重启
  • 执行kubectl describe svc service-webapp查看Endpoints字段,确认有对应Pod的IP,为空则说明Pod标签和Service的selector不匹配
  • 云服务器部署的场景需要先放开节点安全组的30080端口入站规则,同时确认节点本地防火墙(firewalld/iptables)放行30080端口
  • 访问时使用节点公网IP:30080地址测试,先在节点本地执行curl 127.0.0.1:30080验证本地连通性,本地能通则基本为外部网络策略拦截问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:57:03