我在minikube中有一个python应用程序和vue-js应用程序。我试图通过在URL中提及“ python-app-service”来发布python应用服务,但是,vue js还是将其作为文字“ python-app-service”而不是IP地址。
请说这是我的部署,名为python-server
:
spec:
containers:
- image: python-server:latest
imagePullPolicy: IfNotPresent
name: python-servier
ports:
- containerPort: 8001
name: python-server
我的服务称为python-server-service
spec:
ports:
- port: 8001
targetPort: 8001
另一方面,我为vue js提供了类似的deploymet和服务。
现在我想在vue js中向python-server
发送axios发布请求:
axios.post('python-server-service'+'/api/new/post',
this.name, // the data to post
{ headers: {
'Content-type': 'application/x-www-form-urlencoded',
}
}).then(response => ....);
代替此:
axios.post('http://127.0.0.1:3030/api/new/post',
this.name, // the data to post
{ headers: {
'Content-type': 'application/x-www-form-urlencoded',
}
}).then(response => ....);
但是不幸的是,vueJS不会解析我的python-server-service
并将其作为文字字符串“ python-server-service”。
如何在minikube中运行的vuejs中获取python-app-service IP地址?
谢谢。
答案 0 :(得分:0)
最有意义的解决方案是使用Kubernetes Service,并将主机名与Kubernetes DNS nomenclature:<service-name>.<namespace>.svc.cluster.local:<exposed-port>
一起使用。由于两个Pod都在同一个集群中,因此可以是ClusterIP类型的服务。
IP地址的问题在于它们在Kubernetes集群(甚至minikube)中不是固定的,但是对于测试,您总是可以像这样获得pod的IP地址:
$ kubectl get pod <pod-name> -o=jsonpath='{.status.podIP}'