【发布时间】:2020-04-19 21:45:13
【问题描述】:
我有一个带有 2 个应用程序的入口控制器,一个只是一个 hello world,另一个带有一个真正的微服务应用程序。 现在当我卷曲我的应用程序时(入口似乎工作正常) curl -v /test --> 它给了 hello-world curl -v /clus -->它重定向到我的应用程序(因为应用程序是一个带有资源/静态/index.html的springboot,它在curl时被渲染。 它 curl -v /clus -->index.html -->预期但如果我想得到 curl -v /v1/heart-beat -->它仍然给我 index.html 知道为什么会这样吗? 我认为罪魁祸首是我的 ingress.yaml 重写目标,它总是重定向到根目录?知道如何解决吗?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: dev
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /clus
backend:
serviceName: clus-dev-svc
servicePort: 80
- path: /test
backend:
serviceName: hello-service
servicePort: 80
【问题讨论】:
-
在您的入口中,您定义了路径 /clus。那么,如果你执行 curl -v /clus/v1/heart-beat,你会得到什么
-
@hoque:不,我的意思是如果路径以嵌套方式进行,集群就是路径,可以说您的应用程序具有像 /cluster/in/v1/version 这样的内部路径。这意味着需要调用相同的服务,但结果集不同。
-
您的 Kubernetes 集群是如何创建的?是云配置的吗?是 GKE、EKS、AKS 吗?你的 Kubernetes 版本是多少?
-
你能详细说明
/v1/heart-beat到底是什么吗? -
集群是在 aws ec2 机器中使用 kops 配置的
标签: kubernetes kubectl kubernetes-ingress nginx-ingress