開源K8s環(huán)境中的應(yīng)用接入MSE治理中心
借助MSE微服務(wù)治理,您無需修改任何代碼就可以為開源K8s環(huán)境中的Spring Cloud和Dubbo應(yīng)用提供無侵入的微服務(wù)治理能力,包含無損下線、離群實(shí)例摘除、服務(wù)查詢、服務(wù)鑒權(quán)、服務(wù)測試和金絲雀發(fā)布,大幅提升線上微服務(wù)的穩(wěn)定性和開發(fā)效率。本文介紹如何將開源K8s環(huán)境中的應(yīng)用接入MSE服務(wù)治理中心。
前提條件
確保您的Kubernetes api-server組件為1.16及以上版本。
確保您的集群連通公網(wǎng)。
步驟一:安裝ack-onepilot
執(zhí)行以下
wget
命令下載ack-onepilot安裝包。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-3.2.5.tgz'
執(zhí)行以下命令解壓ack-onepilot安裝包。
tar xvf ack-onepilot-3.2.5.tgz
編輯安裝包下的
ack-onepilot/values.yaml
文件,根據(jù)實(shí)際情況修改以下參數(shù),然后保存。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__換成對應(yīng)的pilot鏡像地址即可。如果您這邊轉(zhuǎn)存了一份鏡像地址,那么需要將registry值修改為轉(zhuǎn)存后的前綴。同時(shí)需要轉(zhuǎn)存如下三個(gè)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為客戶側(cè)唯一id)。如果是ACK集群或者ACK托管集群,則為kubernetes的集群id
accessKey
和accessKeySecret
:阿里云賬號的AccessKey ID和AccessKey Secret。獲取方法,請參見獲取AccessKey。重要如果AccessKey ID為RAM用戶(子賬號)的AccessKey ID,請確認(rèn)對應(yīng)的RAM用戶具有AliyunARMSFullAccess和AliyunMSEFullAccess權(quán)限。
uid
:阿里云賬號(主賬號)ID。將鼠標(biāo)懸浮于阿里云控制臺右上角的頭像上可以獲取。region_id
:要接入阿里云MSE的地域ID。MSE支持的地域,請參見開服地域。
執(zhí)行以下命令安裝ack-onepilot。
重要請確保執(zhí)行命令之前,您已經(jīng)將~/.kube/config文件內(nèi)容替換成需要接入MSE微服務(wù)治理的K8s集群的配置。
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
步驟二:修改應(yīng)用的YAML文件
執(zhí)行以下命令查看目標(biāo)無狀態(tài)(Deployment)應(yīng)用的配置。
### 查看指定無狀態(tài)(Deployment)類型應(yīng)用的配置 kubectl get deployment {deployment名稱} -o yaml
說明如果您不清楚
{deployment名稱}
,請先執(zhí)行以下命令查看所有無狀態(tài)(Deployment)應(yīng)用,在執(zhí)行結(jié)果中找到目標(biāo)無狀態(tài)(Deployment)應(yīng)用,再查看目標(biāo)無狀態(tài)(Deployment)應(yīng)用的配置。### 查看所有無狀態(tài)(Deployment)類型應(yīng)用的配置 kubectl get deployments --all-namespace
啟動(dòng)編輯目標(biāo)無狀態(tài)(Deployment)應(yīng)用的YAML文件。
kubectl edit deployment {Deployment名稱} -o yaml
在YAML文件中的spec > template > metadata > labels層級下加入以下內(nèi)容。
msePilotAutoEnable: "on" # 表示開啟MSE微服務(wù)治理 msePilotCreateAppName: xxx # 您的應(yīng)用名稱 mseNamespace: default # 您的應(yīng)用所在的MSE微服務(wù)空間,不填默認(rèn)為default
保存配置后,應(yīng)用將自動(dòng)重啟,以上配置生效。
2~5分鐘后,若您的應(yīng)用出現(xiàn)在MSE控制臺的
中,包含應(yīng)用實(shí)例,且有數(shù)據(jù)上報(bào),則說明接入成功。
后續(xù)步驟
完成上述步驟后,您就為部署在開源K8s環(huán)境中的應(yīng)用開啟了MSE微服務(wù)治理。登錄MSE治理中心控制臺,即可使用MSE微服務(wù)治理對您的Spring Cloud和Dubbo應(yīng)用進(jìn)行服務(wù)治理。
卸載ack-onepilot
當(dāng)您不再需要治理開源K8s環(huán)境中的應(yīng)用及服務(wù)時(shí),可以卸載ack-onepilot。
執(zhí)行以下命令卸載ack-onepilot。
helm3 uninstall --namespace ack-onepilot ack-onepilot
重啟您的應(yīng)用Pod。