从同一个 KUBERNETES 集群中的另一个容器化瓶托 api 调用 pod 中的 DOCKER 容器化瓶托 api

Call a DOCKER containerized flask rest api in a pod from another containerized flask rest api in same KUBERNETES cluster

我正在使用 Flask,Docker-桌面版本,启用了 Kubernetes。 我的目标是:

问题是由于无法访问地址,我无法在一个 api 中进行调用。这是 app.py 文件中的 not 工作代码:

@app.route("/testpredict", methods=["POST"])
def testpredict():
    response = requests.post(url="http://deppredict:1080/predict")
    return response.text, 200

我尝试通过 docs

中建议的本地主机 127.0.0.1 http://kubernetes_master_address/api/v1/namespaces/namespace_name/services/[https:]service_name[:port_name]/proxy 进行调用

因此,作为一种变通方法,我将调用外包,虽然有效但不是正确的方法,以下是以下步骤:

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

在网络中进行调用 api