EDAS支持ALB Ingress应用路由,ALB Ingress基于阿里云应用型负载均衡ALB(Application Load Balancer)提供更有效的Ingress流量管理方式,同时兼容Nginx Ingress,具备处理复杂业务路由和证书自动发现的能力。
前提条件
- 添加服务Service
- 已安装ALB Ingress Controller组件。
- 若需要创建集群,请在组件配置配置向导页面,在Ingress字段右侧选择ALB Ingress。
- 若已创建集群,且未安装ALB Ingress Controller组件。关于如何安装ALB Ingress Controller组件,请参见管理组件。
背景信息
ALB Ingress Controller通过API Server获取Ingress资源的变化,动态地生成AlbConfig,然后依次创建ALB实例、监听、路由转发规则以及后端服务器组。Kubernetes中Service、Ingress与AlbConfig有着以下关系:
- Service是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。
- Ingress是反向代理规则,用来规定HTTP或HTTPS请求应该被转发到哪个Service上。例如:根据请求中不同的Host和URL路径,让请求转发到不同的Service上。
- AlbConfig是在ALB Ingress Controller提供的CRD资源,使用AlbConfig CRD来配置ALB实例和监听。一个AlbConfig对应一个ALB实例。
约束限制
- 为Ingress服务的ALB由EDAS完全托管,您不能在ALB控制台进行配置,否则可能造成Ingress服务的异常。
- 不能修改EDAS创建的Ingress资源(含有以下标签
:edas-domain: edas-admin
、edas-domain
),不能变更或删除Ingress关联的IngressClass、AlbConfig资源(以edas-{alb_id}
格式命名的资源)。 - 若集群的网络插件类型为Flannel,则仅支持后端Service的类型为NodePort或LoadBalancer。
- 如果需要配置HTTPS类型转发,则需要改Ingress实例的所有规则都开启TLS。
- ALB Ingress支持证书自动发现,路由规则开启TLS后无需进行Secret资源配置,但需要在SSL证书服务中购买对应域名的证书,且需要域名匹配的证书唯一。证书支持泛域名证书和单域名证书。
- 使用应用路由需要依赖已有标准版ALB实例,配置应用路由ALB Ingress后,绑定的ALB实例无法再被其他集群复用。