EDAS的Ingress是用于將外部HTTP/HTTPS流量路由到內部Service的路由規則集合。您可以通過配置不同的應用路由(K8s Ingress),從而根據不同的路由轉發規則訪問集群內不同的Service。本文介紹在EDAS控制臺如何配置應用路由和轉發規則。

視頻教程

前提條件

已添加服務Service。具體操作,請參見添加服務Service

背景信息

創建K8s集群時默認安裝了Ingress Controller組件。K8s集群中的Ingress Controller用于解析Ingress的路由轉發規則。Ingress Controller收到請求,匹配Ingress轉發規則并轉發到后端Service,Service轉發到Pod,最終由Pod處理請求。

Service、Ingress與Ingress Controller有著以下關系:
  • Service是后端真實服務的抽象,一個Service可以代表多個相同的后端服務。
  • Ingress是用于將外部HTTP/HTTPS流量路由到內部Service的路由規則集合。
  • Ingress Controller是一個反向代理程序,負責解析Ingress路由規則,根據規則將HTTP/HTTPS流量路由轉發到對應的Service。
Service、Ingress與Ingress Controller關系導圖

應用路由配置約束(適用于K8s集群)

不能修改EDAS創建的Ingress資源(含有以下標簽:edas-domain: edas-adminedas-domain)。

操作步驟

  1. 登錄EDAS控制臺,在左側導航欄,單擊流量管理 > 應用路由 > Ingress路由
  2. 應用路由(K8s Ingress)頁面頂部菜單欄選擇地域,在頁面中選擇目標微服務空間
  3. 應用路由(K8s Ingress)頁面中單擊創建Ingress
  4. 創建Nginx Ingress面板中,設置規則相關參數,然后單擊確定
    配置項描述
    類型選擇Nginx Ingress
    K8s集群從下拉列表中選擇目標K8s集群。
    K8s命名空間K8s命名空間通過將系統內部的對象分配到不同的命名空間中,形成邏輯上分組的不同項目、小組或用戶組,便于不同的分組在共享使用整個集群的資源的同時還能被分別管理。
    • default:沒有其他命名空間的對象的默認命名空間。
    • kube-system:系統創建的對象的命名空間。
    • kube-public:此命名空間是自動創建的,并且可供所有用戶(包括未經過身份驗證的用戶)讀取。

    此處以選擇default為例。

    應用路由名稱自定義設置路由名稱,在同一個命名空間下應用路由名稱必須唯一。

    支持小寫字母、數字和短劃線(-),且必須以字母開頭,字母或數字結尾。

    重定向至HTTPS打開重定向至HTTPS開關,表示用HTTP協議訪問時會重定向到HTTPS協議。
    轉發規則
    說明 在添加應用路由時,您需要了解以下幾點:
    • 在同一個應用路由下,可以創建多個路由規則:
      • 相同域名和路徑的組合,只能對應一個Service。
      • 同一個Service,可以對應多個域名和路徑組合。
    • 在不同應用路由下,可以創建完全相同的路由規則。
    域名指定訪問域名。
    路徑指定訪問路徑,必須以正斜線(/)開頭。
    應用從下拉列表中選擇當前K8s集群中的目標應用。
    服務名稱從下拉列表中選擇當前應用的目標服務Service。
    服務端口服務Service的服務端口。
    高級選項展開高級選項,您可設置采樣率
    說明
    • 采樣率:EDAS支持為匹配到Ingress路由規則的請求提供鏈路追蹤能力,在Ingress監控頁面的日志分析面板中可以查詢到訪問日志中注入的ARMS TraceId,并能夠聯動ARMS鏈路追蹤進行請求異常分析。
    • 采樣率表示ARMS鏈路追蹤采樣百分比,取值范圍為0~100,默認為0,其中100表示每個請求都會被采集。
    • 配額說明:
      • EDAS標準版最多僅允許配置5條采樣率大于10的路由規則。
      • EDAS專業版及鉑金版沒有采樣率配額限制。
    開啟TLS選中開啟TLS,即代表允許外部HTTPS請求路由到內部Service的路由規則集合。

    如果允許外部HTTPS請求,還需要設置TLS證書。在Secret列表中選擇TLS證書類型的保密字典,如果您還沒有將HTTPS證書保存到保密字典,請單擊新建密鑰。創建保密字典的具體操作,請參見創建保密字典

    注解為Ingress添加注解鍵值對。
    • 自定義注解:為Ingress添加自定義的注解鍵值對。
    • Ingress-Nginx注解:選擇社區版本Nginx Ingress支持的Annotations配置Ingress。
    標簽為Ingress添加標簽鍵值對。使用標簽便于對已配置特定標簽的Ingress進行分組管理。
    創建完成后,新建的應用路由出現在應用路由列表,您可以查看詳情、變更路由規則信息、刪除應用路由,以及查看應用路由的監控詳情。

結果驗證

您可在瀏覽器中訪問路由規則中的域名/路徑,查看能否訪問到Service對應的后端服務。