首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资源冲突和覆盖其他(确切的与实现特定的)

资源冲突和覆盖其他(确切的与实现特定的)
EN

Stack Overflow用户
提问于 2022-09-11 04:08:32
回答 1查看 60关注 0票数 2

我有两个入口资源,它们都映射为使用nginx- ingress控制器。

入口1-

代码语言:javascript
复制
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-

代码语言:javascript
复制
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

卷曲

它总是给我带来错误-

代码语言:javascript
复制
<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(应该是针对一个非常具体的网址),而另一个是特定的实现。

EN

回答 1

Stack Overflow用户

发布于 2022-09-12 06:05:35

发现了问题-

代码语言:javascript
复制
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身上

代码语言:javascript
复制
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: 80
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73676745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档