我有两个入口资源,它们都映射为使用nginx- ingress控制器。
入口1-
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: github-eventsource
namespace: argo-events
annotations:
ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: nginx
rules:
- host: ad27b4b64cf6e4882a21b2500424b4de-65f846a64d3d542c.elb.eu-west-1.amazonaws.com
# host: dryrun.tk
http:
paths:
- path: /argocd-webhook
pathType: Exact
backend:
service:
name: github-eventsource-svc
port:
number: 12000入口2-
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app1
namespace: services
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /app1
pathType: ImplementationSpecific
backend:
service:
name: app1
port:
number: 80但是,当我部署了两个入口资源,并且我试图使用curl 2时,我得到了下面404的响应-
ad27b4b64cf6e4882a21b2500424b4de-65f846a64d3d542c.elb.eu-west-1.amazonaws.com/app1
卷曲
它总是给我带来错误-
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>但是,如果我完全删除/删除了宏-1,那么宏-2就开始工作了,我得到了正确的200响应和数据,就像预期的那样-
ad27b4b64cf6e4882a21b2500424b4de-65f846a64d3d542c.elb.eu-west-1.amazonaws.com/app1
卷曲
这是一个示例应用程序%
在这里,我想了解为什么大会-1与大会-2是冲突的,当一个映射为完全匹配的路径段+端口12000(应该是针对一个非常具体的网址),而另一个是特定的实现。
发布于 2022-09-12 06:05:35
发现了问题-
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app1
namespace: services
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /app1
pathType: ImplementationSpecific
backend:
service:
name: app1
port:
number: 80以上必须有一个主机。宏-2中的主机丢失,并且根据优先级定义了一个主机。所以它首先优先于通配符。我增加了主机,以修复它在大会-2,我现在得到了适当的反应。问题不在pathType身上
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app1
namespace: services
spec:
ingressClassName: nginx
rules:
- host: ad27b4b64cf6e4882a21b2500424b4de-65f846a64d3d542c.elb.eu-west-1.amazonaws.com
http:
paths:
- path: /app1
pathType: ImplementationSpecific
backend:
service:
name: app1
port:
number: 80https://stackoverflow.com/questions/73676745
复制相似问题