Docker Desktop Kubernetes集群中表单POST至Node.js应用的地址问题
解决Kubernetes表单POST请求"Server Not Found"问题
问题根源
你使用的http://my-node-app-service:3000/是Kubernetes集群内部的Service DNS域名,外部浏览器无法解析这个域名,这就是报错的直接原因。
正确请求地址分场景说明:
场景1:浏览器在集群外部(本地电脑/外部客户端)
你的Service类型是LoadBalancer,按以下步骤获取可访问地址:
- 执行命令查看Service信息:
kubectl get svc my-node-app-service - 找到输出中的
EXTERNAL-IP字段:- 云厂商集群会分配公网IP,直接使用
http://<EXTERNAL-IP>:3000/作为表单action地址。 - 本地集群(如Minikube)若
EXTERNAL-IP显示pending,执行minikube service my-node-app-service,命令会输出可直接访问的URL,用这个URL作为action地址。
- 云厂商集群会分配公网IP,直接使用
场景2:浏览器在集群内部的Pod中
使用Service的集群内完整域名(默认命名空间下):
http://my-node-app-service.default.svc.cluster.local:3000/
如果浏览器所在Pod和Service处于同一命名空间,也可以简化为http://my-node-app-service:3000/。
内容的提问来源于stack exchange,提问作者Patricia Zhang
相关产品推荐
相关产品推荐

