容器服务ACK alb ingress这两个注解没办法同时使用,有啥办法么?
alb.ingress.kubernetes.io/ssl-redirect:
alb.ingress.kubernetes.io/rewrite-target:
这两个注解一起用,就会报这个错误
在阿里云容器服务ACK中,确实存在一个问题,即无法同时使用 alb.ingress.kubernetes.io/target-type
和 nginx.ingress.kubernetes.io/backend-protocol
这两个注解。这是由于 ACK 在实现 Ingress 控制器时使用的不同技术栈导致的。
目前,针对此问题,可以考虑以下两个解决方案:
使用 Nginx Ingress Controller:如果您需要使用 nginx.ingress.kubernetes.io/backend-protocol
注解,并且该注解对您的应用程序非常重要,您可以考虑使用 Nginx Ingress Controller 来管理您的 Ingress 资源。Nginx Ingress Controller 是一种基于 Nginx 的 Ingress 控制器,提供了更多自定义和灵活性。
手动配置 ALB:如果您需要使用 alb.ingress.kubernetes.io/target-type
注解,并且该注解对您的应用程序非常重要,您可以考虑手动配置阿里云负载均衡(ALB)。您可以在负载均衡控制台上手动创建和配置负载均衡实例,然后将 Ingress 资源中的 alb.ingress.kubernetes.io/target-type
注解删除。这样,您就可以使用 ALB 并设置所需的目标类型。
这两个 annotation 不兼容,无法同时使用。
alb.ingress.kubernetes.io/ssl-redirect:启用HTTP到HTTPS的自动重定向
alb.ingress.kubernetes.io/rewrite-target: 启用URL重写
这两个annotation 分别做了URL处理,所以无法同时使用。
为了达到自动重定向和URL重写的效果,可以使用以下方法:
在Ingress上单独使用这两个annotation
分别为两个host使用这两个annotation:
yaml
Copy
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
在no-ssl.example.com上使用rewrite-target。
使用两张Application Load Balancer
分别创建自动重定向ALB和URL重写ALB,分别对应不同的Ingress。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。