开发者社区 > 云原生 > 容器服务 > 正文

容器服务ACK这种配置 域名一样 但是路径不一样 为什么不生效?

容器服务ACK这种配置 域名一样 但是路径不一样 为什么不生效?3b1bb6572a8b49237813df423d558a11.png

展开
收起
真的很搞笑 2023-07-22 12:11:55 91 0
3 条回答
写回答
取消 提交回答
  • 如果您在容器服务ACK中配置了相同的域名但不同路径,而发现无法生效,可能有以下几个原因:

    1. 路径匹配规则:请确保您的域名解析配置正确,并且负载均衡器或Ingress Controller(如果使用)具有正确的路径匹配规则。在Kubernetes中,常用的路径匹配方式是基于Ingress对象或Service对象的Annotations进行配置。

      • 对于Ingress对象,请确保已正确配置path字段以及相关的ingress.classingress.annotations等字段,以将流量正确路由到相应的服务。

      • 对于Service对象,请确保已正确配置annotations字段来定义路径匹配规则,例如nginx.ingress.kubernetes.io/rewrite-target注释可以重新映射请求路径。

    2. 监听端口配置:对于使用LoadBalancer或NodePort类型的服务,检查是否为每个服务分配了唯一的监听端口。如果多个服务使用相同的端口号,则会导致冲突并无法正确区分路径。

    3. 安全组规则:请确保安全组规则允许从外部网络访问到您的集群中的负载均衡器或Ingress Controller,并且允许相应的路径匹配访问。

    4. 缓存问题:有时候浏览器或代理服务器可能会缓存DNS解析结果或路径信息,导致新的配置无法立即生效。您可以尝试清除缓存或使用不同的网络环境来验证您的配置。

    2023-07-28 10:09:18
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    两个path都映射到同一个host,但是Ingress实际上只支持为同一个host匹配一个路径。

    配置如下:

    yaml
    Copy
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: test-ingress
    spec:
    rules:

    • host: test.com
      http:
      paths:
      • path: /app1
        backend:
        serviceName: service1
        servicePort: 8080
      • path: /app2
        backend:
        serviceName: service2
        servicePort: 8080
        这里两个path都是/app1和/app2,映射到同一个host test.com。

    但是Ingress不支持这样的配置:

    如果匹配/app1路径,/app2路径的请求将被转发给service1
    如果匹配/app2路径,则/app1路径的请求也会转发给service2
    所以正确的配置应该是:

    yaml
    Copy
    host: test.com
    paths:

    • path: /
      backend:
      ...
      • host: test1.com
        paths:
    • path: /app1
      backend:
      ...
      • host: test2.com
        paths:
    • path: /app2
      backend:
      ...
      通过给不同path配置不同的host,才能实现两个路径映射到不同的服务。
    2023-07-23 17:26:05
    赞同 展开评论 打赏
  • 你看看alb里面的日志 upstream_status 字段呗。如果 alb 路由配置有问题也会503 而且不会有访问日志,nginx 会404,但 alb 是503
    这个要看看 / 的那条路由的 pathType 是不是 Prefix。我记得有段时间 alb 默认的 pathType 是 ImplementationSpecific,而 alb 的实现是完整匹配。,此回答整理自钉群“阿里云容器服务ACK用户大群”

    2023-07-22 12:41:00
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    智算时代,基于 Kubernetes 落地云原生 AI 立即下载
    容器服务 ACK 加速企业应用现代化升级 立即下载
    容器服务 ACK – 智算时代的现代化应用平台 立即下载