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

无法通过本地浏览器访问Kubernetes NodePort服务,请求排查故障

问题排查与修复建议

1. 端口配置不匹配(核心问题)

你的Deployment与Service的端口配置存在明显冲突:

  • Deployment中容器的containerPort设为30000,代表容器内应用监听的端口是30000
  • 但Service的targetPort设为30010,这会导致Service将流量转发到容器不存在的端口,直接引发访问失败

修复方法:
修改Service的targetPort,使其与Deployment的containerPort一致,修正后的Service配置如下:

apiVersion: v1
kind: Service
metadata:
  name: angular-service
spec:
  type: NodePort
  selector:
    app.kubernetes.io/name: angular
  ports:
    - protocol: TCP
      port: 30000
      targetPort: 30000  # 改为和containerPort一致的30000

2. 验证容器内应用实际监听端口

即使修正端口配置,仍需确认镜像mannu23/angular_app:v1内的Angular应用实际监听端口是否为30000:

  • 执行命令查看容器内应用的监听状态:
    kubectl exec -it <pod-name> -- netstat -tulpn
    
    替换<pod-name>为你的Angular Pod名称(可通过kubectl get pods获取)
  • 如果应用实际监听其他端口(比如Angular默认的4200),需同步修改Deployment的containerPort和Service的targetPort

3. 验证NodePort服务的可达性

修正配置后,重新部署资源:

kubectl apply -f angular.yaml

再执行以下命令确认服务状态:

  • 查看Service的NodePort和关联端点:
    kubectl get service angular-service
    kubectl get endpoints angular-service
    
    确保ENDPOINTS字段显示Pod的IP和对应端口,说明Service已正确关联Pod
  • 在集群节点上测试端口连通性:
    curl 192.168.49.2:32332
    
    如果返回应用内容,说明服务正常,浏览器访问问题可能是本地网络或缓存导致;如果返回连接失败,检查节点防火墙是否开放了32332端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:13:34