使用kubernetes服务将角度前端连接到API

使用kubernetes服务将角度前端连接到API,kubernetes,Kubernetes,在angular frontend的env文件中,我将API端点设置为localhost:8000,因为我的API侦听该端口,但它位于单独的pod中。这是正确的还是我打算使用部署文件中为后端服务指定的名称。其次,如何连接后端服务是如何在下面的部署文件中完成的 apiVersion:apps/v1 种类:部署 元数据: 名称:ai api 规格: 副本:1份 选择器: 火柴标签: 应用程序:ai api 模板: 元数据: 标签: 应用程序:ai api 规格: 节点选择器: “beta.kube

在angular frontend的env文件中,我将API端点设置为localhost:8000,因为我的API侦听该端口,但它位于单独的pod中。这是正确的还是我打算使用部署文件中为后端服务指定的名称。其次,如何连接后端服务是如何在下面的部署文件中完成的

apiVersion:apps/v1 种类:部署 元数据: 名称:ai api 规格: 副本:1份 选择器: 火柴标签: 应用程序:ai api 模板: 元数据: 标签: 应用程序:ai api 规格: 节点选择器: “beta.kubernetes.io/os”:linux 容器: -名称:ai api 图像:test.azurecr.io/api:v5 资源: 请求: 中央处理器:100米 内存:128英里 限制: 中央处理器:250米 内存:256Mi 端口: -集装箱港口:8000 名称:ai api --- 版本:v1 种类:服务 元数据: 名称:ai api 规格: 端口: -港口:8000 选择器: 应用程序:ai api --- #前端 apiVersion:apps/v1 种类:部署 元数据: 姓名:爱锋 规格: 副本:1份 选择器: 火柴标签: 应用程序:ai front 模板: 元数据: 标签: 应用程序:ai front 规格: 节点选择器: “beta.kubernetes.io/os”:linux 容器: -姓名:爱锋 图:test.azurecr.io/前端:v5.1 资源: 请求: 中央处理器:100米 内存:128英里 限制: 中央处理器:250米 内存:256Mi 端口: -集装箱港口:80 环境: -名称:api 值:“ai api” --- 版本:v1 种类:服务 元数据: 姓名:爱锋 规格: 类型:负载平衡器 端口: -港口:80 #告诉loadbalancer要使用哪个部署 选择器:
app:ai front您提到您的前端将API端点设置为
localhost:8000
,这是不正确的,因为localhost指的是发送请求的同一个pod(因此它意味着“连接到我自己”)。将其更改为
ai api:8000
。还要确保您的api服务器正在侦听
0.0.0.0:8000
,而不是
localhost:8000

我还看到您正在将后端服务的名称传递给前端pod:

env:
- name: api
  value: "ai-api"

如果您使用此env连接到后端应用程序,它将与您先前声明的连接到localhost:8000相矛盾。

根据YAML,你的前端可以通过URL
ai api:8000
到达后端。我已经尝试过了,但也没有成功,这让我觉得服务连接正确。你可以通过Pod IP和端口组合到达api吗?你的意思是登录前端Pod并使用
kubectl run api\u test ping IPStart a测试Pod吗--image=tututum/curl--restart=Never--rm-it--/bin/sh
然后执行
curl:8000
。确保您的API侦听“0.0.0.0:8000”(例如在NodeJS
.listen(8000,“0.0.0.0”);
)我已尝试使用ai API:8000,但错误未能解决。我如何确保它侦听0.0.0:8000?我必须在代码中设置它吗?是的,您必须确保应用程序正在侦听0.0.0.0:8000。您可以尝试执行容器并使用netstat或ss(如果可用)检查您打开的端口。e、 g您可以尝试
netstat-lnpt
。说到错误,没能解决,这些pod/服务在同一个名称空间中吗?所以我运行了curl cmd,当我运行它时,端口8000的连接超时,端口80的连接被拒绝。我尝试使用的API是python hug API,我不太确定如何更改itI的绑定附加值。我认为我的pod的网络设置是正确的,我认为是正确的由azure管理,因为它是AKS群集