如何解决从同一 KUBERNETES 集群中的另一个容器化 Flask rest api 调用 Pod 中的 DOCKER 容器化 Flask rest api
我正在使用 Flask,这是启用了 Kubernetes 的 Docker 桌面版本。 我的目标是:
问题是我无法在一个 api 内进行调用,因为地址无法访问。这是 app.py 文件中不 工作的代码:
@app.route("/testpredict",methods=["POST"])
def testpredict():
response = requests.post(url="http://deppredict:1080/predict")
return response.text,200
我尝试通过本地主机、127.0.0.1、http://kubernetes_master_address/api/v1/namespaces/namespace_name/services/[https:]service_name[:port_name]/proxy
进行调用,如 docs
因此,作为一种变通方法,我将呼叫外包,虽然可行,但不是正确的方法,以下是以下步骤:
kubectl create deployment deptestpredict --image=nameim
kubectl expose deployment deptestpredict --type=LoadBalancer --port=1081
kubectl exec -it deptestpredict-66db9b5899-f7tgj sh
python3
import requests
res = requests.post('http://deppredict:1080/predict')
res.text
这是kubectl cluster-info
的输出Kubernetes master is running at https://kubernetes.docker.internal:6443
KubednS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
所以我的问题是我在 app.py 中做错了什么。
我肯定错过了一些东西。请帮忙:D 任何见解或指导将不胜感激。 非常感谢。
解决方法
我能够通过使用 kubernetes 服务的名称 http://nameOfTheService:1080/predict
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。