全部產品
Search
文件中心

Microservices Engine:開源K8s環境中的應用接入MSE治理中心

更新時間:Mar 21, 2025

藉助MSE微服務治理,您無需修改任何代碼就可以為開源K8s環境中的Spring Cloud和Dubbo應用提供無侵入的微服務治理能力,包含無損下線、離群執行個體摘除、服務查詢、服務鑒權、服務測試和金絲雀發布,大幅提升線上微服務的穩定性和開發效率。本文介紹如何將開源K8s環境中的應用接入MSE服務治理中心。

前提條件

說明

掛載MSE Java探針時JVM的堆記憶體配置需要大於 256MB。

步驟一:安裝ack-onepilot

  1. 執行以下wget命令下載ack-onepilot安裝包。

     wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-4.0.1.tgz'
  2. 執行以下命令解壓ack-onepilot安裝包。

    tar xvf ack-onepilot-4.0.1.tgz                 
  3. 編輯安裝包下的ack-onepilot/values.yaml檔案,根據實際情況修改以下參數,然後儲存。

    registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/
    cluster_id: __ACK_CLUSTER_ID__
    accessKey: __ACCESSKEY__
    accessKeySecret: __ACCESSKEY_SECRET__
    uid: "__ACK_UID__"
    region_id: __ACK_REGION_ID__
    • registry:ack-onepilot鏡像地址首碼。只需要將其中的__ACK_REGION_ID__換成對應的pilot鏡像地址即可。

      • 如果您這邊轉存了一份鏡像地址,那麼需要將registry值修改為轉存後的首碼。同時需要轉存如下三個image:

        • registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot:4.0.1

        • registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot-init:4.0.1

        • registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot-alpine:3.18

    • cluster_id:自訂Kubernetes叢集ID。

      • 如果是自建叢集且未接入ACK。建議格式為<uid>-<clusterid>(uid為您的主帳號id、clusterId為客戶側唯一id)。

      • 如果是ACK叢集或者ACK託管叢集,則為kubernetes的叢集id

    • accessKeyaccessKeySecret:阿里雲帳號的AccessKey ID和AccessKey Secret。擷取方法,請參見擷取AccessKey

      重要

      如果AccessKey ID為RAM使用者(子帳號)的AccessKey ID,請確認對應的RAM使用者具有AliyunARMSFullAccessAliyunMSEFullAccess許可權。

    • uid:阿里雲帳號(主帳號)ID。將滑鼠懸浮於阿里雲控制台右上方的頭像上可以擷取。

    • region_id:要接入阿里雲MSE的地區ID。MSE支援的地區,請參見開服地區

  4. 執行以下命令安裝ack-onepilot。

    重要

    請確保執行命令之前,您已經將~/.kube/config檔案內容替換成需要接入MSE微服務治理的K8s叢集的配置。

    helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace

步驟二:修改應用的YAML檔案

  1. 執行以下命令查看目標無狀態(Deployment)應用的配置。

    ### 查看指定無狀態(Deployment)類型應用的配置
    kubectl get deployment {deployment名稱} -o yaml                            
    說明

    如果您不清楚{deployment名稱},請先執行以下命令查看所有無狀態(Deployment)應用,在執行結果中找到目標無狀態(Deployment)應用,再查看目標無狀態(Deployment)應用的配置。

    ### 查看所有無狀態(Deployment)類型應用的配置
    kubectl get deployments --all-namespace                
  2. 啟動編輯目標無狀態(Deployment)應用的YAML檔案。

    kubectl edit deployment {Deployment名稱} -o yaml                        
  3. 在YAML檔案中的spec.template.metadata.labels層級下加入以下內容。

    msePilotAutoEnable: "on"   # 表示開啟MSE微服務治理
    msePilotCreateAppName: xxx # 您的應用程式名稱
    mseNamespace: default      # 您的應用所在的MSE微服務空間,不填預設為default
  4. 儲存配置後,應用將自動重啟,以上配置生效。

    2~5分鐘後,若您的應用出現在MSE控制台的治理中心 > 應用治理中,包含應用執行個體,且有資料上報,則說明接入成功。

後續步驟

完成上述步驟後,您就為部署在開源K8s環境中的應用開啟了MSE微服務治理。登入MSE治理中心控制台,即可使用MSE微服務治理對您的Spring Cloud和Dubbo應用進行服務治理。

卸載ack-onepilot

當您不再需要治理開源K8s環境中的應用及服務時,可以卸載ack-onepilot。

重要

ack-onepilot組件由MSE和ARMS共用,卸載ack-onepilot前請確認您的產品沒有接入ARMS,否則卸載ack-onepilot將會導致ARMS無法使用。

  1. 執行以下命令卸載ack-onepilot。

    helm3 uninstall --namespace ack-onepilot ack-onepilot
  2. 重啟您的應用Pod。