首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pods之间的连接在集群内部工作,但不在浏览器中工作

pods之间的连接在集群内部工作,但不在浏览器中工作
EN

Stack Overflow用户
提问于 2021-11-29 18:30:28
回答 1查看 31关注 0票数 0

由于某些原因,我无法在主机IP外部暴露的前端和仅在内部运行的后端之间建立连接。

整个应用程序的配置方式如下:

前端pod:

代码语言:javascript
复制
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"

前端服务:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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"

后端服务:

代码语言:javascript
复制
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

从前端容器内部向后端端点发送请求的工作原理:

代码语言:javascript
复制
/ # 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"}

同时,在浏览器中:

代码语言:javascript
复制
POST http://10.233.62.29:4040/api/v3/login net::ERR_CONNECTION_TIMED_OUT

端口在防火墙设置中是打开的。

如何解决此问题?

EN

回答 1

Stack Overflow用户

发布于 2021-11-30 09:48:29

看起来您正在尝试从群集外部连接到Pod IP/端口。这根本没有任何意义。

为此,您需要使用服务IP/端口。在您的示例中,您有一个NodePort服务,它在每个节点的端口30123上公开您的后端。

如果你没有任何防火墙阻止它,你应该能够通过使用hostname从浏览器访问你的后端:

http://:30123

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70159627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档