MSE Ingress 相容 Nginx Ingress,比開源自建效能提升一倍,獲得信通院行業領先安全成熟度等級評級,具備低成本、安全、高整合和高可用的產品優勢。本文介紹如何通過 MSE Ingress 訪問Container Service和容器計算服務。
為了安全考慮,MSE Ingress禁止暴露kube-system命名空間下的服務。
前提條件
MSE Ingress Controller 支援在ACK 託管版,ACK Serverless和ACS 容器計算服務產品中安裝。
步驟一:安裝MSE Ingress Controller
ACK 託管版/ACK Serverless
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。
ACS
登入容器計算服務控制台,在左側導覽列選擇集群列表。
在集群列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇运维管理 > 组件管理。
在組件管理頁面的搜尋方塊中輸入
mse搜尋,在MSE Ingress Controller組件卡片中單擊安裝。
在安裝組件 MSE Ingress Controller對話方塊中進行參數配置,然後單擊確認。
ACK 託管版/ACK Serverless
支援建立或者使用已有MSE雲原生網關執行個體。
建立:
將自動建立一個節點規格為2c4g * 2的隨用隨付專業版 MSE 雲原生網關執行個體。以上預設規格在建立完成後均可修改。

使用已有:選擇展示列表中,與容器叢集處於同一VPC下,且未被其他叢集關聯的隨用隨付專業版網關執行個體。
ACS
支援建立或者使用已有MSE雲原生網關執行個體。
建立:
將自動建立一個節點規格為2c4g * 2的隨用隨付專業版 MSE 雲原生網關執行個體,並按照指定的網路類型建立一個NLB Server Load Balancer執行個體。

使用已有:
選擇展示列表中,與容器叢集處於同一VPC下,且未被其他叢集關聯的隨用隨付專業版網關執行個體。
如果在安裝組件的過程中出現前置檢查失敗。若是ACK 託管版/ACK Serverless產品請點擊此處為MSE Ingress Controller授權;若是ACS產品,請單擊此處為MSE Ingress Controller授權。

組件安裝成功之後,會預設為您建立名稱為
mse-ingress-premium-{clusterid}的MseIngressConfig資源和名稱為mse-ingress-premium-{clusterid}的網關執行個體。您可以在工作負載 > 自訂資源 中,選擇資來源物件瀏覽器頁簽,在API組中搜尋
mse。單擊MseIngressConfig操作列的YAML編輯,查詢MseIngressConfig的狀態。等待3~5分鐘後確保phase狀態為Listening,則表示雲原生網關建立成功,處於運行狀態,並自動監聽叢集中IngressClass為mse的Ingress資源。
MseIngressConfig會按照Pending > Running > Listening的狀態依次變化。各狀態說明如下:
Pending:表示雲原生網關正在建立中,需等待3min左右。
Running:表示雲原生網關建立成功,並處於運行狀態。
Listening:表示雲原生處於運行狀態,並監聽叢集中Ingress資源。
Failed:表示雲原生網關處於非法狀態,可以查看Status欄位中Message進一步明確原因。
重要建立模式下,安裝MSE Ingress Controller會預設建立一個MseIngressConfig資源,該資源的生命週期與MSE雲原生網關執行個體是綁定的。刪除MseIngressConfig資源會串聯刪除對應的MSE雲原生網關執行個體,請勿隨意刪除MseIngressConfig資源。
在安裝MSE Ingress Controller之前,如果叢集中已經存在了名稱為mse的IngressClass資源,則安裝MSE Ingress Controller不會自動建立MseIngressConfig資源和MSE雲原生網關執行個體。
登入MSE網關管理主控台,在對應的地區下可以看到名稱為
mse-ingress-premium-{clusterid}的雲原生網關執行個體。
步驟二:部署後端服務
ACK 託管版/ACK Serverless
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
ACS
登入容器計算服務控制台,在左側導覽列選擇集群列表。
在集群列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作负载 > 无状态。
在無狀態頁面,單擊使用YAML建立資源。例如,使用如下YAML樣本部署一個名為
httpbin的Deployment,以及一個名為httpbin的Service。apiVersion: apps/v1 kind: Deployment metadata: name: httpbin namespace: default spec: replicas: 1 selector: matchLabels: app: httpbin template: metadata: labels: app: httpbin version: v1 spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/mse-ingress/go-httpbin args: - "--version=v1" imagePullPolicy: Always name: httpbin --- apiVersion: v1 kind: Service metadata: name: httpbin namespace: default spec: ports: - port: 8080 protocol: TCP selector: app: httpbin驗證已部署Deployment和Service。
在左側導覽列的中,已建立名稱為
httpbin的Deployment,且容器組數量更新為1/1表示Deployment部署完成。
在左側導覽列的中,已建立名稱為
httpbin的服務,表示Service部署完成。
步驟三:配置MSE Ingress
ACK 託管版/ACK Serverless
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
ACS
登入容器計算服務控制台,在左側導覽列選擇集群列表。
在集群列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 路由。
在路由頁面,單擊建立 Ingress。
在建立 Ingress對話方塊中,選擇網關類型為MSE Ingress並配置後端關聯的服務和註解等資訊,然後單擊確定。
其中Ingress Class為mse,配置路由為首碼匹配,路徑為
/,轉寄請求到服務httpbin。
登入MSE網關管理主控台。您可以在對應的雲原生網關執行個體中看到一個名稱中包含httpbin的路由。

步驟四:訪問服務
您可以通過Ingress端點擷取NLB網域名稱,或者通過網關擷取公網IP。
方式一:在叢集路由頁面查看Ingress的端點資訊。
ACK 託管版/ACK Serverless
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在路由頁面查看Ingress的端點資訊。

ACS
登入容器計算服務控制台,在左側導覽列選擇集群列表。
在集群列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 路由。
在路由頁面查看Ingress的端點資訊。

方式二:在MSE網關控制台,查看網關中的公網IP地址。
登入MSE網關管理主控台。在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。在您的MSE雲原生網關執行個體的基本概覽頁面中的存取點頁簽查看公網IP地址。

通過瀏覽器、CMD命令或者其他命令列工具訪問
NLB網域名稱/version或網關公網IP/version測試服務。例如,在瀏覽器中輸入nlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com/version成功訪問。
相關文檔
關於MSE Ingress的介紹和工作原理請參閱MSE Ingress管理。