借助MSE微服務治理,您無需修改任何代碼就可以為開源K8s環境中的Spring Cloud和Dubbo應用提供無侵入的微服務治理能力,包含無損下線、離群實例摘除、服務查詢、服務鑒權、服務測試和金絲雀發布,大幅提升線上微服務的穩定性和開發效率。本文介紹如何將開源K8s環境中的應用接入MSE服務治理中心。
前提條件
確保您的Kubernetes api-server組件為1.16及以上版本。
確保您的集群連通公網。
步驟一:安裝ack-onepilot
執行以下
wget
命令下載ack-onepilot安裝包。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-3.2.5.tgz'
執行以下命令解壓ack-onepilot安裝包。
tar xvf ack-onepilot-3.2.5.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:3.2.5
registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot-init:3.2.5
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。
helm3 uninstall --namespace ack-onepilot ack-onepilot
重啟您的應用Pod。