我已经在 Azure 上使用 nginx 入口设置了一个 kubernetes 集群。导航到特定路径时出现 404 错误。
我已经设置了一些示例应用程序,它们返回一个简单的回声,效果非常好。我的 ban api 应用程序总是返回 404 错误。
当我导航到入口路径时,例如
http://51.145.17.105/apple
效果很好。但是,当我导航到 api 应用程序时,使用以下 URL 收到 404 错误:
http://51.145.17.105/ban-simple
如果我登录到集群并卷曲 ban-simple 服务(不是入口 IP),例如
curl -L 10.1.1.40
我得到了正确的回应。当我使用 nginx ingress 尝试它时,出现 404 错误。
入口映射对我来说看起来很正确。这是包含路径的入口 yaml 的副本。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fruit-ingress
namespace: ban
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /$
spec:
rules:
- http:
paths:
- path: /apple
backend:
serviceName: apple-service
servicePort: 5678
- path: /ban-simple
backend:
serviceName: ban-service
servicePort: 80
“好”服务的一个副本是:
kind: Pod
apiVersion: v1
metadata:
name: apple-app
namespace: ban
labels:
app: apple
spec:
containers:
- name: apple-app
image: hashicorp/http-echo
args:
- "-text=apple"
---
kind: Service
apiVersion: v1
metadata:
name: apple-service
namespace: ban
spec:
selector:
app: apple
ports:
- port: 5678 # Default port for image
不起作用的服务是:
kind: Pod
apiVersion: v1
metadata:
name: ban-simple
namespace: ban
labels:
app: ban-simple
spec:
containers:
- name: ban-simple
image: xxxxx.azurecr.io/services/ban
---
kind: Service
apiVersion: v1
metadata:
name: ban-simple-service
namespace: ban
spec:
selector:
app: ban-simple
ports:
- port: 80 # Default port for image
我已在本地运行该容器并且它可以在我的机器上运行。如果有影响的话,它会重定向到 localhost/index.html。
任何建议表示赞赏。