我遵循aws的指南,并在 Nginx 入口控制器前面成功地拥有一个带有 NLB 的 EKS 集群。路线运行良好,我可以访问 /banana 和 /apple,我觉得还可以
然后,我尝试添加另一个 ASP.net 应用程序并更新入口
apiVersion: apps/v1
kind: Deployment
metadata:
name: moba-web-portal
labels:
app: moba-web-portal
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: moba-web-portal
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: moba-web-portal
spec:
containers:
- image: mcr.microsoft.com/dotnet/samples:aspnetapp
imagePullPolicy: Always
name: moba-web-portal
ports:
- containerPort: 3001
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: moba-web-portal
spec:
selector:
app: moba-web-portal
ports:
- protocol: TCP
port: 3001
targetPort: 3001
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/proxy-buffering: "on"
nginx.ingress.kubernetes.io/proxy-buffer-size: "128k"
nginx.ingress.kubernetes.io/proxy-buffers-number: "4"
spec:
tls:
- hosts:
- api.kmsmoba.com
secretName: tls-secret
rules:
- host: api.kmsmoba.com
http:
paths:
- pathType: Prefix
path: "/moba"
backend:
service:
name: moba-web-portal
port:
number: 3001
- pathType: Prefix
path: "/apple"
backend:
service:
name: apple-service
port:
number: 5678
- pathType: Prefix
path: "/nodejs"
backend:
service:
name: ecsdemo-nodejs
port:
number: 3000
- pathType: Prefix
path: "/banana"
backend:
service:
name: banana-service
port:
number: 5678
不幸的是,当我尝试访问路径 /moba-web-portal 时,我无法弄清楚为什么我只是得到“502 Bad Gateway”
我还尝试将服务名称“moba-web-portal”切换为使用另一个使用 nodejs 构建的 docker 映像,然后它可以正常工作,所以我对 asp.net 应用程序表示怀疑,但这可能不是问题,因为我使用微软的 docker 镜像。所以,我想我错过了 Ingress 的一些配置,你能提供一个线索吗?
编辑:我还尝试在 EC2 工作节点内测试我的 docker 映像,我的 docker 映像使用 docker run 命令看起来不错