容器服务ACK这种配置 域名一样 但是路径不一样 为什么不生效?
如果您在容器服务ACK中配置了相同的域名但不同路径,而发现无法生效,可能有以下几个原因:
路径匹配规则:请确保您的域名解析配置正确,并且负载均衡器或Ingress Controller(如果使用)具有正确的路径匹配规则。在Kubernetes中,常用的路径匹配方式是基于Ingress对象或Service对象的Annotations进行配置。
对于Ingress对象,请确保已正确配置path
字段以及相关的ingress.class
和ingress.annotations
等字段,以将流量正确路由到相应的服务。
对于Service对象,请确保已正确配置annotations
字段来定义路径匹配规则,例如nginx.ingress.kubernetes.io/rewrite-target
注释可以重新映射请求路径。
监听端口配置:对于使用LoadBalancer或NodePort类型的服务,检查是否为每个服务分配了唯一的监听端口。如果多个服务使用相同的端口号,则会导致冲突并无法正确区分路径。
安全组规则:请确保安全组规则允许从外部网络访问到您的集群中的负载均衡器或Ingress Controller,并且允许相应的路径匹配访问。
缓存问题:有时候浏览器或代理服务器可能会缓存DNS解析结果或路径信息,导致新的配置无法立即生效。您可以尝试清除缓存或使用不同的网络环境来验证您的配置。
两个path都映射到同一个host,但是Ingress实际上只支持为同一个host匹配一个路径。
配置如下:
yaml
Copy
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
spec:
rules:
但是Ingress不支持这样的配置:
如果匹配/app1路径,/app2路径的请求将被转发给service1
如果匹配/app2路径,则/app1路径的请求也会转发给service2
所以正确的配置应该是:
yaml
Copy
host: test.com
paths:
你看看alb里面的日志 upstream_status 字段呗。如果 alb 路由配置有问题也会503 而且不会有访问日志,nginx 会404,但 alb 是503
这个要看看 / 的那条路由的 pathType 是不是 Prefix。我记得有段时间 alb 默认的 pathType 是 ImplementationSpecific,而 alb 的实现是完整匹配。,此回答整理自钉群“阿里云容器服务ACK用户大群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。