借助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。