在我的angular前端的env文件中,我将API端点设置为localhost:8000,因为我的API侦听该端口,但它在一个单独的pod中。这是否正确,或者我是否打算在部署文件中使用我为后端服务指定的名称。其次,我如何连接后端服务是我在下面的部署文件中如何做的正确吗?
apiVersion: apps/v1
kind: Deployment
metadata:
name: ai-api
spec:
replicas: 1
selector:
matchLabels:
app: ai-api
template:
metadata:
labels:
app: ai-api
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: ai-api
image: test.azurecr.io/api:v5
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 8000
name: ai-api
---
apiVersion: v1
kind: Service
metadata:
name: ai-api
spec:
ports:
- port: 8000
selector:
app: ai-api
---
# Frontend
apiVersion: apps/v1
kind: Deployment
metadata:
name: ai-front
spec:
replicas: 1
selector:
matchLabels:
app: ai-front
template:
metadata:
labels:
app: ai-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: ai-front
image: test.azurecr.io/front-end:v5.1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: api
value: "ai-api"
---
apiVersion: v1
kind: Service
metadata:
name: ai-front
spec:
type: LoadBalancer
ports:
- port: 80
#Tells loadbalancer which deployment to use
selector:
app: ai-front
发布于 2019-11-29 20:23:41
您提到您的前端将API端点设置为localhost:8000,这是不正确的,因为本地主机引用的是发送请求的同一个pod (所以它的意思是“连接到我自己”)。将其更改为ai-api:8000。还要确保您的应用程序接口服务器正在监听0.0.0.0:8000而不是localhost:8000。
我还看到您正在将后端服务的名称传递给前端pod:
env:
- name: api
value: "ai-api"如果你正在使用这个env来连接你的后端应用程序,它将与你之前所说的你正在连接到localhost:8000的声明相矛盾。
https://stackoverflow.com/questions/59074577
复制相似问题