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的路由。
該路由名稱包含 httpbin,發布狀態為發行,路由規則為路徑
/轉寄至 httpbin 服務,來源類型為 Ingress。
步驟四:訪問服務
-
您可以通過Ingress端點擷取NLB網域名稱,或者通過網關擷取公網IP。
-
方式一:在叢集路由頁面查看Ingress的端點資訊。
ACK 託管版/ACK Serverless
-
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
-
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
-
在路由頁面查看Ingress的端點資訊。
端點列顯示自動分配的 NLB 負載平衡地址,即為 MSE Ingress 的訪問入口。
ACS
-
登入容器計算服務控制台,在左側導覽列選擇叢集列表。
-
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 路由。
-
在路由頁面查看Ingress的端點資訊。
在 Ingress 列表的端點列中,可查看對應的 NLB 負載平衡地址,例如
nlb-lfcq037h1h89ubvq6w.cn-hangzh...。
-
-
方式二:在MSE網關控制台,查看網關中的公網IP地址。
登入MSE網關管理主控台。在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。在您的MSE雲原生網關執行個體的基本概览頁面中的接入点頁簽查看公網IP地址。
-
-
通過瀏覽器、CMD命令或者其他命令列工具訪問
NLB網域名稱/version或網關公網IP/version測試服務。例如,在瀏覽器中輸入nlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com/version成功訪問。version: v1 hostname: httpbin-897xxx-q7vcg
相關文檔
關於MSE Ingress的介紹和工作原理請參閱MSE Ingress管理。