我有一个在kubernetes集群内运行的后端Node应用程序(本地使用minikube(。后端服务配置如下:
apiVersion: v1
kind: Service
metadata:
name: flow-backend-service
spec:
selector:
app: flow-backend
type: NodePort
ports:
- port: 5000
targetPort: 5000
nodePort: 30500
kubectl获取以下行的svc输出:
flow-backend-service NodePort 10.110.143.69 <none> 5000:30500/TCP 45h
在同一个集群中,我有一个角度应用程序,它被用来从这个后端应用程序获取数据。后端的url如下:
backendUrl: "http://flow-backend-service.default.svc.cluster.local:5000"
然而,当我运行角度应用程序时,我会得到以下响应
Http failure response for http://flow-backend-service.default.svc.cluster.local:5000/companies: 0 Unknown Error
一个重要的注意事项是,如果我在角吊舱内执行此操作:
curl http://flow-backend-service.default.svc.cluster.local:5000/companies
我得到了恰当的回应。
知道我该如何调试这个问题吗?
angular应用程序在用户浏览器中运行,该dns地址仅在K8s集群中解析。您需要为承载k8s集群的计算机设置dns地址。或者使用托管k8s集群的其中一台机器的IP地址。
这不是一个生产稳定的设置,我建议使用入口控制器和某种与K8集成的动态DNS解析器,例如consus。
免责声明:我和领事没有任何关系,这只是我最熟悉的一个。