全部產品
Search
文件中心

Microservices Engine:通過MSE Ingress訪問Container Service和容器計算服務

更新時間:Dec 27, 2024

MSE Ingress作為Higress企業版,相容Nginx Ingress,比開源自建效能提升一倍,獲得信通院行業領先安全成熟度等級評級,具備低成本、安全、高整合和高可用的產品優勢。本文介紹如何通過MSE Ingress訪問Container Service和容器計算服務。

重要

為了安全考慮,MSE Ingress禁止暴露kube-system命名空間下的服務。

前提條件

MSE Ingress Controller 支援在ACK 託管版,ACK Serverless和ACS 容器計算服務產品中安裝。

步驟一:安裝MSE Ingress Controller

  1. ACK 託管版/ACK Serverless

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

    ACS

    1. 登入容器計算服務控制台,在左側導覽列選擇叢集

    2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇營運管理組件管理

  2. 組件管理頁面的搜尋方塊中輸入mse搜尋,然後在MSE Ingress Controller組件卡片中單擊安裝

    image.png

  3. 安裝組件 MSE Ingress Controller對話方塊中進行參數配置,然後單擊確定

    ACK 託管版/ACK Serverless

    將自動建立一個節點規格為 2c4g * 2 的隨用隨付專業版MSE雲原生網關執行個體,並按照指定的網路類型建立一個標準型I(slb.s2.small)的CLBServer Load Balancer執行個體。以上預設規格在建立完成後均可修改。參數配置.png

    ACS

    將自動建立一個Serverless版 MSE 雲原生網關執行個體,並按照指定的網路類型建立一個NLB Server Load Balancer執行個體。

    image

  4. 如果在安裝組件的過程中出現前置檢查失敗,若是ACK 託管版/ACK Serverless產品請點擊此處為MSE Ingress Controller授權。若是ACS產品,請單擊此處為MSE Ingress Controller授權

    查看報告.png

  5. 組件安裝成功之後,會預設為您建立名稱為mse-ingress-pro/serverless-{clusterid}的MseIngressConfig資源和名稱為mse的IngressClass資源。

    您可以在工作負載 > 自訂資源 >資來源物件瀏覽器 >API組中搜尋mse並查詢MseIngressConfig的狀態。等待3~5分鐘後狀態為Listening表示雲原生網關建立成功,處於運行狀態,並自動監聽叢集中IngressClass為mse的Ingress資源。image.png

    說明

    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雲原生網關執行個體。

  6. 登入MSE網關管理主控台,在對應的地區下可以看到名稱為mse-ingress-pro/serverless-{clusterid}的雲原生網關執行個體。

步驟二:部署後端服務

  1. ACK 託管版/ACK Serverless

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 無狀態

    ACS

    1. 登入容器計算服務控制台,在左側導覽列選擇叢集

    2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇工作負載 > 無狀態

  2. 無狀態頁面,單擊使用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

步驟三:配置MSE Ingress

  1. ACK 託管版/ACK Serverless

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 路由

    ACS

    1. 登入容器計算服務控制台,在左側導覽列選擇叢集

    2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇網路 > 路由

  2. 路由頁面,單擊建立 Ingress

  3. 建立 Ingress對話方塊中,選擇網關類型MSE Ingress並配置後端關聯的服務和註解等資訊,然後單擊確定

    其中Ingress Class為mse,配置路由為首碼匹配路徑/,轉寄請求到服務httpbin。image.png

  4. 登入MSE網關管理主控台。您可以在對應的雲原生網關執行個體中看到一個名稱中包含httpbin的路由。

    image.png

步驟四:訪問服務

  1. 您可以通過以下兩種方式擷取網關IP地址。

    • ACK 託管版/ACK Serverless

      1. 登入Container Service管理主控台,在左側導覽列選擇叢集

      2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 路由

      3. 路由頁面查看Ingress的端點資訊。

        image.png

      ACS

      1. 登入容器計算服務控制台,在左側導覽列選擇叢集

      2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇網路 > 路由

      3. 路由頁面查看Ingress的端點資訊。

        image

    • 登入MSE網關管理主控台。在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。在您的MSE雲原生網關執行個體的基本概覽中查看SLB地址。

      查看地址.png

  2. 通過瀏覽器、cmd或者其他命令列工具訪問SLB地址/version測試服務。

    image.png

相關文檔

關於MSE Ingress的介紹和工作原理請參閱MSE Ingress概覽