當您的應用程式需要為使用者提供統一的公網或內網入口時,可以在Kubernetes叢集中部署ASM入口網關(Ingress Gateway)。入口網關作為統一的訪問入口,可以簡化流量的管理和路由,並利用七層負載平衡能力根據HTTP請求的路徑、主機頭或其他屬性將流量智能分發至相應的後端服務。
前提條件
操作步驟
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
。在入口網關頁面,單擊建立,配置網關的基本資料。
網關配置項說明如下。您也可以在入口網關頁面,單擊使用YAML建立定義入口網關。具體操作,請參見使用KubeAPI管理入口網關。
配置項
說明
名稱
自訂網關的名稱。
部署叢集
選擇網關部署的叢集。
網關服務類型
支援LoadBalancer、ClusterIP和NodePort。關於三種類型的說明,請參見Service。
說明如果您的資料面叢集是註冊叢集,且需要選擇LoadBalancer,請確保叢集支援LoadBalancer類型的Service,避免入口網關建立失敗。
傳統型負載平衡CLB/網路型負載平衡NLB
僅當網關服務類型選擇LoadBalancer時,需要進行此配置。
支援公網訪問和私網訪問。
建立負載平衡
僅當網關服務類型選擇LoadBalancer時,需要進行此配置。
建立負載平衡:
選擇傳統型負載平衡CLB時,您需要從選擇CLB規格下拉式清單中選擇所需的負載平衡規格。
選擇網路型負載平衡NLB時,您需要從選擇NLB可用性區域下拉式清單中選擇至少兩個可用性區域對應的虛擬交換器。
使用已有負載平衡:從已有負載平衡列表中選擇。
重要建議您為每個Kubernetes服務分配一個負載平衡。如果多個Kubernetes服務複用同一個負載平衡,存在以下風險和限制:
使用已有的負載平衡會強制覆蓋已有監聽,可能會導致您的應用不可訪問。
Kubernetes通過Service建立的負載平衡不能複用,只能複用您手動在控制台(或調用OpenAPI)建立的負載平衡。
複用同一個負載平衡的多個Service不能有相同的前端監聽連接埠,否則會造成連接埠衝突。
複用負載平衡時,監聽的名字以及虛擬伺服器組的名字被Kubernetes作為唯一識別碼。請勿修改監聽和虛擬伺服器組的名字。
不支援跨叢集、跨地區複用負載平衡。
連接埠映射
配置協議和服務連接埠。
說明控制台預設提供2個Istio常用的連接埠。您可以按需進行修改。
資源規格
選擇網關Pod的CPU和記憶體規格。
網關副本數
設定網關副本數。
可選:單擊進階選項,進行相關配置。
配置項
說明
外部流量策略
設定外部流量策略。
Local:流量只發給原生Pod。
Cluster:流量可以轉寄到叢集中其他節點上的Pod。
擴縮容HPA
選中擴縮容HPA,然後進行如下配置:
指標:設定監控項和閾值。超過該閾值,將增加網關副本數;低於該閾值,將減少網關副本數。
如果您同時設定了CPU和記憶體的閾值,則表示只要其中一個高於或低於該閾值,都會進行擴縮容。
最大副本數:網關可擴容的副本數量上限。
最小副本數:網關可縮容的副本數量下限。
說明該功能僅適用於企業版或旗艦版。
滾動升級
選中滾動升級,然後進行如下配置:
不可用最大副本數:設定滾動升級時不可用最大的副本數量。
超到期望的副本數:設定滾動升級時最多不能超過的副本數量。例如設定為25%,表示滾動升級時副本數量不能超過原來副本的125%。
啟用基於MultiBuffer的TLS加解密效能最佳化
選中啟用基於MultiBuffer的TLS加解密效能最佳化,將提升TLS加解密的速度。
支援的節點親和性標籤選擇:根據節點標籤匹配效能最佳化的節點。
輪詢延時(毫秒):設定該參數,可以減少加解密操作的等待時間。更多資訊,請參見配置項說明。
說明該功能僅適用於企業版或旗艦版。
盡量分散部署網關副本
設定
podAntiAffinity
時,Pod優先部署到不同的節點上。自訂部署策略
您可以自訂網關的
nodeSelector
、tolerations
和affinity
。關於欄位的詳細說明,請參見ASM網關CRD說明。優雅下線
選中優雅下線後,當負載平衡停用時,將不會對網關業務產生影響。
連線逾時時間(秒):負載平衡移除網關Pod後,會等待配置的連線逾時時間,然後再斷開與Pod的串連。配置該參數,可以給網關Pod提供一個緩衝時間,來處理現有的串連。網關Pod預設優雅下線時間為30s,負載平衡側配置的逾時時間通常不應該超過30s。
說明該功能僅適用於企業版或旗艦版。
配置完成後,單擊建立。
網關狀態為運行中,表示建立成功。服務地址即為入口網關的IP地址。
相關操作
入口網關建立成功後,您可以通過ASM控制台管理入口網關,也可以通過ACK控制台查看入口網關。
通過ASM控制台管理入口網關
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
。在入口網關頁面,對入口網關進行管理。
操作
說明
查看或編輯入口網關
方式一:在目標網關右側,單擊查看詳情,按需修改相關配置。
方式二:在目標網關右側,單擊查看YAML,在編輯對話方塊,按需修改相關欄位,然後單擊確定。關於欄位的詳細說明,請參見ASM網關CRD說明。
刪除入口網關
在目標網關右側,單擊刪除,在確認對話方塊,單擊確定。
重要入口網關刪除後,外部服務將無法通過該入口網關訪問ASM內部服務。被刪除的入口網關無法恢複,只能重建,請謹慎操作。
通過ACK控制台查看入口網關
查看新添加的入口網關的基本資料。
登入Container Service管理主控台,在左側導覽列單擊叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇
。在服務頁面上方,在命名空間下拉式清單中選擇istio-system。
可以看到目標網關的基本資料。External IP列的IP為入口網關的IP地址。
查看新添加入口網關的Pod資訊。
登入Container Service管理主控台,在左側導覽列單擊叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇
。在容器組頁面上方,在命名空間下拉式清單中選擇istio-system。
單擊目標Pod,查看入口網關的Pod詳細資料。
相關文檔
如果您需要通過API建立入口網關,請參見CreateASMGateway - 建立ASM網關。
如果您需要為網格內應用提供統一的流量出口,請參見建立出口網關。
如果您需要按照比例將流量分發到服務的不同版本,例如灰階發布和A/B測試,請參見使用Istio資源實現版本流量路由。
如果您需要查看App、服務、應用版本之間的調用關係、流量走向,可以使用ASM網格拓撲功能。具體操作,請參見查看應用的網格拓撲。
關於網關的更多功能介紹,請參見ASM網關概述。