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是反向 Proxy規則,用來規定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執行個體無法再被其他叢集複用。
操作步驟
登入EDAS控制台。
- 在左側導覽列單擊應用路由。
- 在應用路由(K8s Ingress)頁面頂部功能表列選擇地區,在頁面中選擇目標微服務空間。
- 在應用路由(K8s Ingress)頁面中單擊建立ALB Ingress。
- 在建立應用路由(K8s Ingress)面板中,選擇K8s叢集、K8s命名空間、ALB執行個體並設定應用路由名稱,單擊添加轉寄規則並設定規則相關參數,然後單擊確定。
參數 描述 K8s叢集 從下拉式清單中選擇目標K8s叢集。 K8s命名空間 K8s命名空間通過將系統內部的對象分配到不同的命名空間中,形成邏輯上分組的不同專案、小組或使用者組,便於不同的分組在共用使用整個叢集的資源的同時還能被分別管理。 - default:沒有其他命名空間的對象的預設命名空間。
- kube-system:系統建立的對象的命名空間。
- kube-public:此命名空間是自動建立的,並且可供所有使用者(包括未經過身分識別驗證的使用者)讀取。
此處以選擇default為例。
重新導向至HTTPS 開啟重新導向至HTTPS開關,表示用HTTP協議訪問時會重新導向到HTTPS協議。 應用路由名稱 自訂設定路由名稱,在同一個命名空間下應用路由名稱必須唯一。 支援小寫字母、數字和短劃線(-),且必須以字母開頭,字母或數字結尾。
ALB執行個體 選擇路由綁定的ALB執行個體,列表中僅返回與選擇的K8s叢集在同一專用網路下的ALB執行個體。
若您還沒有ALB執行個體,請參見建立應用型負載平衡。
說明- 僅支援標準版ALB執行個體。
- 若選擇ALB執行個體綁定到該K8s叢集後,無法再被其他叢集使用。
- 可以使用一個ALB執行個體綁定一個叢集中的多個應用路由。
轉寄規則 說明 在添加應用路由時,需注意:- 在同一個應用路由下,可以建立多個路由規則:
- 相同網域名稱和路徑的組合,只能對應一個Service。
- 同一個Service,可以對應多個網域名稱和路徑組合。
- 在不同應用路由下,可以建立完全相同的路由規則。
網域名稱 指定訪問網域名稱。 路徑 指定訪問路徑,必須以正斜線(/)開頭。 應用 從下拉式清單中選擇當前K8s叢集中的目標應用。 服務名稱 從下拉式清單中選擇當前應用的目標服務Service。 服務連接埠 服務Service的服務連接埠。 開啟TLS 選中開啟TLS,即代表允許外部HTTPS請求路由到內部Service的路由規則集合。 如果允許外部HTTPS請求,還需要設定TLS認證。在EDAS控制台左側導覽列建立保密字典。
列表中選擇TLS認證類型的保密字典。如果您還沒有將HTTPS認證儲存到保密字典,請單擊建立保密字典。建立保密字典的具體操作,請參見建立完成後,建立的應用路由出現在應用路由列表。您可以對其進行查看詳情、變更路由規則資訊和刪除應用路由等操作。