您可以將部署在Container Service for Kubernetes和Container Compute Service中的Spring Cloud和Dubbo等微服務應用接入MSE治理中心,使用MSE提供的一系列服務治理能力,大幅提升線上微服務的穩定性和開發效率,本文介紹如何將ACK和ACS微服務應用接入MSE治理中心。
前提條件
若您的專案中使用了開源的Sentinel組件同時也使用了com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration,會導致接入MSE治理中心失敗。
掛載MSE Java探針時JVM的堆記憶體配置需要大於 256MB。
接入流程
關於接入方式選擇的建議:
如果您的某個命名空間內的全部應用或者大部分應用需要接入MSE治理中心,建議使用情境一:為ACK和ACS命名空間中的應用開啟MSE微服務治理的方式接入。命名空間內不需要接入的應用需要設定以下標籤:
spec.template.labels.msePilotAutoEnable: "off"
。如果您的某個命名空間內少部分應用需要接入MSE治理中心,建議使用情境二:為單個應用開啟MSE微服務治理的方式接入。
情境一:為ACK和ACS命名空間中的應用開啟MSE微服務治理
為命名空間下開啟MSE微服務治理後,該命名空間下的Pod都會接入到MSE微服務治理中,您無需再手動逐個接入。
登入MSE治理中心控制台,並在頂部功能表列選擇地區。
在左側導覽列,選擇治理中心 > 应用治理。
在应用列表頁面,單擊ACK应用接入。
在ACK应用接入對話方塊中,進行配置,配置完成後,單擊确定。
配置項
說明
集群类型
選擇ACK集群、ACK Serverless集群或ACS集群。
說明如果您尚未授權Container Service調用微服務引擎,則需要單擊請授權進行授權。
集群名称/ID
選擇接入MSE微服務治理的集群名称/ID,可通過關鍵詞搜尋。
ack-onepilot
顯示ack-onepilot接入狀態。
如果您未安裝ack-onepilot,單擊ack-onepilot右側的点击安装,安裝完成後狀態會顯示為已安裝。
如果您使用子帳號接入,提示沒有許可權使用時,您可以登入Container Service管理主控台進入目的地組群,然後單擊營運管理>組件管理,找到ack-onepilot,點擊安裝。
說明該步驟接入的組件為ack-onepilot,您可以登入Container Service管理主控台進入目的地組群,然後單擊營運管理>組件管理查看詳情。
ack-onepilot安裝後會自動注入探針,可能會導致應用啟動耗時增加(10s內)。
通過命名空間方式接入,如果目的地組群所在的Region不在以下範圍內,請確保叢集能夠訪問公網且能夠連通acm.aliyun.com:8080:青島、杭州、北京、上海、上海-金融雲、深圳、中國香港、新加坡、法蘭克福、雪梨、矽谷、維吉尼亞。
接入类型
選擇命名空间接入。
容器集群命名空间
選擇容器集群命名空间。
治理命名空间
選擇治理命名空间。在對應命名空間下重新部署現有應用或新建立的應用,均會接入到MSE微服務治理中。
補充說明:
預設接入的應用程式名稱為Deployment名字,如果您需要修改接入MSE的應用程式名稱,可通過編輯應用的YAML檔案進行修改。
spec: template: metadata: labels: mseNamespace: default # 您的應用所在的MSE微服務空間,不填預設為default。 msePilotCreateAppName: "your-deployment-name" # 替換為您實際使用的應用程式名稱。
如果您想單獨為某個應用關閉微服務治理,可以將參數
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,單擊ack-onepilot右側的点击安装,安裝完成後狀態會顯示為已安裝。
如果您使用子帳號接入,提示沒有許可權使用時,您可以登入Container Service管理主控台進入目的地組群,然後單擊營運管理>組件管理,找到ack-onepilot,點擊安裝。
說明該步驟接入的組件為ack-onepilot,您可以登入Container Service管理主控台進入目的地組群,然後單擊營運管理>組件管理查看詳情。
ack-onepilot安裝後會自動注入探針,可能會導致應用啟動耗時增加(10s內)。
接入类型
選擇单个应用接入。
接入步骤
按照接入步驟進行操作。
Step 1:进入集群工作负载-无状态应用页面,切换到应用的命名空间下。
Step 2:找到所接入的应用,点击「查看Yaml」。
Step 3:按以下格式编辑Labels,完成后点击「更新」。
spec: template: metadata: labels: # 填寫“on”表示開啟接入,需加上雙引號 msePilotAutoEnable: "on" # 填寫接入到的治理命名空間,值不存在可自動建立 mseNamespace: 202401 # 填寫接入MSE的實際應用程式名稱,需加上雙引號 msePilotCreateAppName: "your-deployment-name"
結果驗證
完成上述步驟並重啟應用後,部署在Container Service for Kubernetes和Container Compute Service中的應用就成功開啟了MSE微服務治理。
登入MSE治理中心控制台,並在頂部功能表列選擇地區。
在左側導覽列,選擇治理中心 > 应用治理。
選擇對應的微服務命名空間,即可看到已經成功接入的應用。