EDAS支持ALB Ingress應用路由。ALB Ingress基于阿里云應用型負載均衡ALB(Application Load Balancer)提供更有效的Ingress流量管理方式,同時兼容Nginx Ingress,具備處理復雜業務路由和證書自動發現的能力。本文介紹在EDAS控制臺如何配置應用路由和轉發規則。
前提條件
- 添加服務Service
- 已安裝ALB Ingress Controller組件。
- 若需要創建集群,請在組件配置配置向導頁面,在Ingress字段右側選擇ALB Ingress。
- 若已創建集群,且未安裝ALB Ingress Controller組件。關于如何安裝ALB Ingress Controller組件,請參見管理組件。
約束限制
- 為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實例無法再被其他集群復用。
背景信息
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實例。