由于某些原因,我无法在主机IP外部暴露的前端和仅在内部运行的后端之间建立连接。
整个应用程序的配置方式如下:
前端pod:
apiVersion: v1
kind: Pod
metadata:
name: plg-frontend-pod
labels:
name: plg-frontend-pod
app: playground-app
spec:
containers:
- name: plg-frontend
image: localhost:5000/frontend:1.32
ports:
- containerPort: 80
env:
- name: REACT_APP_BACKEND_HOST
value: "http:\/\/$BACKEND_SERVICE_HOST"
- name: REACT_APP_BACKEND_PORT
value: "4040"前端服务:
apiVersion: v1
kind: Service
metadata:
name: plg-frontend
labels:
name: plg-frontend-service
app: playground-app
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30123
protocol: TCP
selector:
name: plg-frontend-pod
app: playground-app后端pod:
apiVersion: v1
kind: Pod
metadata:
name: plg-backend-pod
labels:
name: plg-backend-pod
app: playground-app
spec:
containers:
- name: plg-backend
image: localhost:5000/backend:1.28
ports:
- containerPort: 4040
env:
- name: NODE_ENV
value: "dev"
- name: REDIS_HOST
value: "redis"后端服务:
apiVersion: v1
kind: Service
metadata:
name: plg-backend
labels:
name: plg-backend-service
app: playground-app
spec:
ports:
- port: 4040
selector:
name: plg-backend-pod
app: playground-app从前端容器内部向后端端点发送请求的工作原理:
/ # curl -X POST http://10.233.62.29:4040/api/v3/login -H "Content-Type: application/json" -d '{"userdata": {"lgn": "abre", "psw": "que"}}'
{"msg":"User does not exist in the database"}同时,在浏览器中:
POST http://10.233.62.29:4040/api/v3/login net::ERR_CONNECTION_TIMED_OUT端口在防火墙设置中是打开的。
如何解决此问题?
发布于 2021-11-30 09:48:29
看起来您正在尝试从群集外部连接到Pod IP/端口。这根本没有任何意义。
为此,您需要使用服务IP/端口。在您的示例中,您有一个NodePort服务,它在每个节点的端口30123上公开您的后端。
如果你没有任何防火墙阻止它,你应该能够通过使用hostname从浏览器访问你的后端:
http://:30123
https://stackoverflow.com/questions/70159627
复制相似问题