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

Kubernetes集群NodePort服务访问报HTTP发往HTTPS服务及403错误如何解决

问题根因

你当前访问的并非自己部署的chatapp服务:Kubernetes控制面的apiserver默认占用master节点的6443端口,你将Service的port字段设为6443且绑定master节点外部IP的情况下,流量直接被apiserver接收,因此出现HTTP访问报HTTPS服务、HTTPS访问报匿名用户无权限的问题。

另外你当前Deployment配置中覆盖了容器默认启动命令,用死循环代替了chatapp服务的启动逻辑,就算端口配置正确也无法正常访问服务。


解决方案

  • 调整Service端口配置,避免和系统预留端口冲突,同时删除Deployment中多余的启动命令覆盖配置,修改后的chatapp-deployment.yml参考如下:
apiVersion: v1
kind: Service
metadata:
  name: chatapp
spec:
  selector:
    app: chatapp
  ports:
  - protocol: "TCP"
    port: 10443 # 替换原有6443,可替换为其他未被占用的高位端口
    targetPort: 3000
  type: NodePort
  externalIPs:
  - A.B.C.D

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: chatapp
  labels:
    app: chatapp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: chatapp
  template:
    metadata:
      labels:
        app: chatapp
    spec:
      imagePullSecrets:
      - name: regsecret
      containers:
      - name: chatapp
        image: sebastian/chatapp
        imagePullPolicy: Always
        ports:
          - containerPort: 3000
  • 重新应用配置:
    kubectl apply -f chatapp-deployment.yml
  • 验证服务正常后,根据你的chatapp应用本身的协议类型访问对应地址即可:
    • 若应用为HTTP服务,访问http://A.B.C.D:10443
    • 若应用为HTTPS服务,访问https://A.B.C.D:10443

可选访问方式

你使用的是NodePort类型Service,也可以直接通过NodePort默认分配的端口访问,无需额外绑定externalIP:

  1. 执行kubectl get svc chatapp,查看输出中PORT(S)列对应的3xxxx段的NodePort端口
  2. 直接访问http://A.B.C.D:对应NodePort端口即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:15:03