全部產品
Search
文件中心

Enterprise Distributed Application Service:建立應用路由(ALB Ingress)

更新時間:Jun 30, 2024

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執行個體。
ae

約束限制

  • 為Ingress服務的ALB由EDAS完全託管,您不能在ALB控制台進行配置,否則可能造成Ingress服務的異常。
  • 不能修改EDAS建立的Ingress資源(含有以下標籤:edas-domain: edas-adminedas-domain),不能變更或刪除Ingress關聯的IngressClass、AlbConfig資源(以edas-{alb_id}格式命名的資源)。
  • 若叢集的網路外掛程式類型為Flannel,則僅支援後端Service的類型為NodePort或LoadBalancer。
  • 如果需要配置HTTPS類型轉寄,則需要改Ingress執行個體的所有規則都開啟TLS。
  • ALB Ingress支援認證自動探索,路由規則開啟TLS後無需進行Secret資源配置,但需要在SSL認證服務中購買對應網域名稱的認證,且需要網域名稱匹配的認證唯一。認證支援泛網域名稱認證和單網域名稱認證。
  • 使用應用路由需要依賴已有標準版ALB執行個體,配置應用路由ALB Ingress後,綁定的ALB執行個體無法再被其他叢集複用。

操作步驟

  1. 登入EDAS控制台

  2. 在左側導覽列單擊應用路由
  3. 應用路由(K8s Ingress)頁面頂部功能表列選擇地區,在頁面中選擇目標微服務空間
  4. 應用路由(K8s Ingress)頁面中單擊建立ALB Ingress
  5. 建立應用路由(K8s Ingress)面板中,選擇K8s叢集K8s命名空間ALB執行個體並設定應用路由名稱,單擊添加轉寄規則並設定規則相關參數,然後單擊確定
    gd
    參數描述
    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控制台左側導覽列組態管理 > Kubernetes配置 > 保密字典列表中選擇TLS認證類型的保密字典。如果您還沒有將HTTPS認證儲存到保密字典,請單擊建立保密字典。建立保密字典的具體操作,請參見建立保密字典

    建立完成後,建立的應用路由出現在應用路由列表。您可以對其進行查看詳情、變更路由規則資訊和刪除應用路由等操作。