藉助MSE微服務治理,您無需修改任何代碼就可以為開源K8s環境中的Spring Cloud和Dubbo應用提供無侵入的微服務治理能力,包含無損下線、離群執行個體摘除、服務查詢、服務鑒權、服務測試和金絲雀發布,大幅提升線上微服務的穩定性和開發效率。本文介紹如何將開源K8s環境中的應用接入MSE服務治理中心。
前提條件
確保您的Kubernetes api-server組件為1.16及以上版本。
確保您的叢集連通公網。
掛載MSE Java探針時JVM的堆記憶體配置需要大於 256MB。
步驟一:安裝ack-onepilot
執行以下
wget命令下載ack-onepilot安裝包。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-4.0.1.tgz'執行以下命令解壓ack-onepilot安裝包。
tar xvf ack-onepilot-4.0.1.tgz編輯安裝包下的
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
accessKey和accessKeySecret:阿里雲帳號的AccessKey ID和AccessKey Secret。擷取方法,請參見擷取AccessKey。重要如果AccessKey ID為RAM使用者(子帳號)的AccessKey ID,請確認對應的RAM使用者具有AliyunARMSFullAccess和AliyunMSEFullAccess許可權。
uid:阿里雲帳號(主帳號)ID。將滑鼠懸浮於阿里雲控制台右上方的頭像上可以擷取。region_id:要接入阿里雲MSE的地區ID。MSE支援的地區,請參見開服地區。
執行以下命令安裝ack-onepilot。
重要請確保執行命令之前,您已經將~/.kube/config檔案內容替換成需要接入MSE微服務治理的K8s叢集的配置。
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
步驟二:修改應用的YAML檔案
執行以下命令查看目標無狀態(Deployment)應用的配置。
### 查看指定無狀態(Deployment)類型應用的配置 kubectl get deployment {deployment名稱} -o yaml說明如果您不清楚
{deployment名稱},請先執行以下命令查看所有無狀態(Deployment)應用,在執行結果中找到目標無狀態(Deployment)應用,再查看目標無狀態(Deployment)應用的配置。### 查看所有無狀態(Deployment)類型應用的配置 kubectl get deployments --all-namespace啟動編輯目標無狀態(Deployment)應用的YAML檔案。
kubectl edit deployment {Deployment名稱} -o yaml在YAML檔案中的spec.template.metadata.labels層級下加入以下內容。
msePilotAutoEnable: "on" # 表示開啟MSE微服務治理 msePilotCreateAppName: xxx # 您的應用程式名稱 mseNamespace: default # 您的應用所在的MSE微服務空間,不填預設為default儲存配置後,應用將自動重啟,以上配置生效。
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無法使用。
執行以下命令卸載ack-onepilot。
helm3 uninstall --namespace ack-onepilot ack-onepilot重啟您的應用Pod。