无法在 Kubernetes 中使用 POST 连接到后端



我想在k8s环境中设置我的项目。我的应用程序由前端(react(,api(node.js(和db(mongoDB(组成。我现在能做的是设置前端,这样我可以看到主页,我也可以使用 GET 方法(从邮递员和浏览器(请求后端。但是由于某些原因,我无法通过 POST 与 API 建立正确的连接,即。我可以看到端点已到达,但有效负载为空。在非 k8s 环境中,它运行良好,因此需要连接到某些 k8s 设置。

客户端部署:

apiVersion: apps/v1
kind: Deployment
metadata:
name: panel-admin-deployment
spec:
replicas: 1
selector:
matchLabels:
component: panel-admin
template:
metadata:
labels:
component: panel-admin
spec:
containers:
- name: panel-admin
image: XXX
ports:
- containerPort: 3000
env:
- name: API_BASE_URL
value: panel-admin-server-service
imagePullSecrets:
- name: gcr-json-key

客户服务:

apiVersion: v1
kind: Service
metadata:
name: panel-admin-service
spec:
type: ClusterIP
selector:
component: panel-admin
ports:
- port: 3000
targetPort: 3000

API 和前端路由的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- http:
paths:
- path: /.*
backend:
serviceName: panel-admin-service
servicePort: 3000
- path: /api/.* // here goes my GET request and it works well
backend:
serviceName: panel-admin-server-service
servicePort: 3001
- path: /auth/.* // here goes my POST request, ie. it starts with auth
backend:
serviceName: panel-admin-server-service 
servicePort: 3001

服务器部署文件:

apiVersion: apps/v1
kind: Deployment
metadata:
name: panel-admin-api-deployment
spec:
replicas: 1
selector:
matchLabels:
component: panel-admin-api
template:
metadata:
labels:
component: panel-admin-api
spec:
containers:
- name: panel-admin-api
image: XXX
ports:
- containerPort: 3001
env:
- name: MONGO_URL
value: mongodb://panel-admin-mongo-cluster-ip-service/mongodb
imagePullSecrets:
- name: gcr-json-key

服务器服务:

apiVersion: v1
kind: Service
metadata:
name: panel-admin-server-service
spec:
type: ClusterIP
selector:
component: panel-admin-api
ports:
- port: 3001
targetPort: 3001

因此,从浏览器中我收到502 Bad Gateway错误,从邮递员那里,它到达端点,但 POST 有效负载为空。我在这里错过了什么?

如果您使用的是HTTPS,请尝试将URL从http://example.com/api更改为https://example.com/api

默认情况下,POST 请求不会自动重定向到 https 请参阅将 HTTP POST 请求重定向到 HTTPS POST 请求

最新更新