Angular 如何解决运行Kubernetes群集时nginx上的502坏网关错误
我已经用一些后端微服务建立了一个Kubernetes集群,它们都可以很好地与nginx配合使用。但是,我无法访问我的角度前端,因为它给我一个502错误 我的angular应用程序的Dockerfile(我尝试了许多不同的实现,这是最近的一个): angular应用程序的my Kubernetes部署和服务的yaml文件:Angular 如何解决运行Kubernetes群集时nginx上的502坏网关错误,angular,docker,nginx,kubernetes,Angular,Docker,Nginx,Kubernetes,我已经用一些后端微服务建立了一个Kubernetes集群,它们都可以很好地与nginx配合使用。但是,我无法访问我的角度前端,因为它给我一个502错误 我的angular应用程序的Dockerfile(我尝试了许多不同的实现,这是最近的一个): angular应用程序的my Kubernetes部署和服务的yaml文件: apiVersion: apps/v1 kind: Deployment metadata: name: client-depl spec: replicas: 1
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-depl
spec:
replicas: 1
selector:
matchLabels:
app: frontendx
template:
metadata:
labels:
app: frontendx
spec:
containers:
- name: frontendx
image: akeedm/frontendx
---
apiVersion: v1
kind: Service
metadata:
name: client-srv
spec:
selector:
app: frontendx
type: ClusterIP
ports:
- name: frontendx
protocol: TCP
port: 4200
targetPort: 4200
我的入口配置的yaml文件(最后一个路由是问题):
应用yaml文件并部署kubernetes群集后,我可以正确连接到除angular应用程序之外的所有服务。当我尝试连接到时,出现错误502坏网关。当我尝试在/var/log/nginx查看日志时,access.log和error.log文件都是空的
下面是angular应用程序的running pod启动时的终端。当我得到502错误时,没有新条目
/docker-entrypoint.sh:/docker-entrypoint.d/不为空,将
尝试执行配置
/docker-entrypoint.sh:在中查找shell脚本
/docker入口点/
/docker-entrypoint.sh:启动
/docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh:info:获取
/etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh:info:Enabled-listen-on-ipv6-in
/etc/nginx/conf.d/default.conf
/docker-entrypoint.sh:启动
/docker-entrypoint.d/20-envsubs-on-templates.sh
/docker-entrypoint.sh:启动
/docker-entrypoint.d/30-tune-worker-processs.sh
/docker-entrypoint.sh:配置完成;准备好启动了吗
您是否尝试过单独运行FE容器(例如在docker中),以查看其是否有效?了解问题所在。另外,请运行
kubectl描述入口srv
,并将其张贴在此处。
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-depl
spec:
replicas: 1
selector:
matchLabels:
app: frontendx
template:
metadata:
labels:
app: frontendx
spec:
containers:
- name: frontendx
image: akeedm/frontendx
---
apiVersion: v1
kind: Service
metadata:
name: client-srv
spec:
selector:
app: frontendx
type: ClusterIP
ports:
- name: frontendx
protocol: TCP
port: 4200
targetPort: 4200
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: rides.com
http:
paths:
- path: /users/create
pathType: Prefix
backend:
service:
name: enduser-clusterip-srv
port:
number: 4000
- path: /users
pathType: Prefix
backend:
service:
name: query-srv
port:
number: 5200
- path: /posts
pathType: Prefix
backend:
service:
name: query-srv
port:
number: 5200
- path: /users/?(.*)/adverts
pathType: Prefix
backend:
service:
name: advert-srv
port:
number: 4100
- path: /
pathType: Prefix
backend:
service:
name: client-srv
port:
number: 4200