您可以將部署在Container Service for Kubernetes和Container Compute Service中的Spring Cloud和Dubbo等微服務應用接入MSE治理中心,使用MSE提供的一系列服務治理能力,大幅提升線上微服務的穩定性和開發效率,本文介紹如何將ACK和ACS微服務應用接入MSE治理中心。
前提條件
接入的ACK/ACS叢集與MSE治理中心需在同一個地區。
若您的專案中使用了開源的Sentinel組件同時也使用了
com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration,會導致接入MSE治理中心失敗。掛載MSE Java探針時JVM的堆記憶體配置需要大於 256MB。
請確保ACK叢集具有MSE資源存取權限。
叢集存在ARMS Addon Token時,MSE會進行免密授權。Kubernetes託管版叢集預設存在ARMS Addon Token,但對於部分早期建立的Kubernetes託管版叢集,可能會存在沒有ARMS Addon Token的情況,因此,對於早期建立的Kubernetes託管版叢集,建議首先檢查ARMS Addon Token是否存在。
檢查ACK託管叢集中是否存在ARMS Addon Token的方法如下所示:
登入Container Service管理主控台,在叢集列表頁面,單擊目的地組群名稱進入叢集詳情頁。
在左側導覽列選擇,然後在頂部選擇命名空間為kube-system,查看addon.arms.token是否存在。若不存在,需進行手動授權。
接入流程
關於接入方式選擇的建議:
如果您的某個命名空間內的全部應用或者大部分應用需要接入MSE治理中心,建議使用情境一:為ACK和ACS命名空間中的應用開啟MSE微服務治理的方式接入。命名空間內不需要接入的應用需要設定標籤:
spec.template.labels.msePilotAutoEnable: "off"。如果您的某個命名空間內少部分應用需要接入MSE治理中心,建議使用情境二:為單個應用開啟MSE微服務治理的方式接入。
情境一:為ACK和ACS命名空間中的應用開啟MSE微服務治理
為對應命名空間下開啟MSE微服務治理後,在該命名空間下新建立的應用和重新部署現有的應用,該命名空間下的Pod都會接入到MSE微服務治理中,您無需再手動逐個接入。關於建立應用可參見建立無狀態工作負載Deployment。
登入MSE治理中心控制台,並在頂部功能表列選擇地區。
在左側導覽列,選擇治理中心 > 应用治理。
在应用列表頁面,單擊ACK应用接入。
在ACK应用接入對話方塊中,進行配置,配置完成後,單擊确定。

配置項
說明
集群类型
選擇ACK集群、ACK Serverless集群或ACS集群。
說明如果您尚未授權Container Service調用微服務引擎,則需要單擊請授權進行授權。
集群名称/ID
選擇接入MSE微服務治理的集群名称/ID,可通過關鍵詞搜尋。
ack-onepilot
顯示ack-onepilot接入狀態,關於ack-onepilot組件介紹和升級MSE微服務治理組件可參見ack-onepilot組件和安裝和升級MSE微服務治理組件。
如果您未安裝ack-onepilot,以ACK叢集為例,選擇後系統將自動開始安裝,並顯示“安裝過程大概需要1分鐘,請稍後”。
如果您使用子帳號接入,提示沒有許可權使用時,您可以登入Container Service管理主控台進入目的地組群,然後單擊組件管理,找到ack-onepilot並單擊安裝。
如果您已安裝ack-onepilot,介面會顯示“已安裝+ack-onepilot版本號碼”,例如已安裝4.2.0版本。
說明該步驟接入的組件為ack-onepilot,您可以登入Container Service管理主控台進入目的地組群,然後單擊營運管理 > 組件管理查看詳情。
ack-onepilot安裝後會自動注入探針,可能會導致應用啟動耗時增加(10s內)。
通過命名空間方式接入,如果目的地組群所在的Region不在以下範圍內,請確保叢集能夠訪問公網且能夠連通acm.aliyun.com:8080:青島、杭州、北京、上海、上海-金融雲、深圳、中國香港、新加坡、法蘭克福、雪梨、矽谷、維吉尼亞。
接入类型
選擇命名空间接入。
容器集群命名空间
選擇容器集群命名空间。
治理命名空间
選擇治理命名空间。
補充說明:
當您將ACK/ACS叢集中的應用接入MSE治理中心後,治理中心控制台預設會以應用的Deployment名稱作為顯示名稱。若需自訂應用程式名稱,可通過修改對應已部署應用的YAML配置實現名稱變更。
spec: template: metadata: labels: mseNamespace: default # 您的應用所在的MSE微服務空間,不填預設為default。 msePilotCreateAppName: "your-deployment-name" # 替換為您實際使用的應用程式名稱。如果您想單獨為某個應用關閉微服務治理,可以在已部署應用的YAML配置中添加參數
msePilotAutoEnable並設定為off。spec: template: metadata: labels: msePilotAutoEnable: "off" # 這個欄位的"off"必須加上雙引號或者單引號。
情境二:為單個應用開啟MSE微服務治理
如果您的命名空間下只有少量應用需要接入MSE微服務治理,您可以逐個應用接入MSE微服務治理。
登入MSE治理中心控制台,並在頂部功能表列選擇地區。
在左側導覽列,選擇治理中心 > 应用治理。
在应用列表頁面,單擊ACK应用接入。
在ACK应用接入對話方塊中,進行配置,配置完成後,單擊确定。

配置項
說明
集群类型
選擇ACK集群、ACK Serverless集群或ACS集群。
說明如果您尚未授權Container Service調用微服務引擎,則需要單擊請授權進行授權。
集群名称/ID
選擇接入MSE微服務治理的集群名称/ID,可通過關鍵詞搜尋。
ack-onepilot
顯示ack-onepilot接入狀態,關於ack-onepilot組件介紹和升級MSE微服務治理組件可參見ack-onepilot組件和安裝和升級MSE微服務治理組件。
如果您未安裝ack-onepilot,以ACK叢集為例,選擇後系統將自動開始安裝,並顯示“安裝過程大概需要1分鐘,請稍後”。
如果您使用子帳號接入,提示沒有許可權使用時,您可以登入Container Service管理主控台進入目的地組群,然後單擊組件管理,找到ack-onepilot並單擊安裝。
如果您已安裝ack-onepilot,介面會顯示“已安裝+ack-onepilot版本號碼”,例如已安裝4.2.0版本。
說明該步驟接入的組件為ack-onepilot,您可以登入Container Service管理主控台進入目的地組群,然後單擊營運管理 > 組件管理查看詳情。
ack-onepilot安裝後會自動注入探針,可能會導致應用啟動耗時增加(10s內)。
通過命名空間方式接入,如果目的地組群所在的Region不在以下範圍內,請確保叢集能夠訪問公網且能夠連通acm.aliyun.com:8080:青島、杭州、北京、上海、上海-金融雲、深圳、中國香港、新加坡、法蘭克福、雪梨、矽谷、維吉尼亞。
接入类型
選擇单个应用接入。
接入步骤
按照接入步驟進行操作。
Step 1:進入叢集工作負載-無狀態應用頁面,切換到應用的命名空間下。
Step 2:找到所接入的應用,點擊「查看Yaml」。
Step 3:按以下格式編輯Labels,完成後點擊「更新」。
spec: template: metadata: labels: # 填寫“on”表示開啟接入,需加上雙引號 msePilotAutoEnable: "on" # 填寫接入到的治理命名空間,值不存在可自動建立 mseNamespace: default # 填寫接入MSE的實際應用程式名稱,需加上雙引號 msePilotCreateAppName: "your-deployment-name"
結果驗證
完成上述步驟並重啟應用後,部署在Container Service for Kubernetes和Container Compute Service中的應用就成功開啟了MSE微服務治理。
登入MSE治理中心控制台,並在頂部功能表列選擇地區。
在左側導覽列,選擇治理中心 > 应用治理。
選擇對應的微服務命名空間,即可看到已經成功接入的應用。
後續步驟
應用接入MSE治理中心後,您可以使用MSE治理的全鏈路灰階、無損上下線和配置流控規則功能,詳情可參見15分鐘完成服務治理能力快速體驗(Java版)。