开源K8s环境中的应用接入MSE治理中心

借助MSE微服务治理,您无需修改任何代码就可以为开源K8s环境中的Spring Cloud和Dubbo应用提供无侵入的微服务治理能力,包含无损下线、离群实例摘除、服务查询、服务鉴权、服务测试和金丝雀发布,大幅提升线上微服务的稳定性和开发效率。本文介绍如何将开源K8s环境中的应用接入MSE服务治理中心。

前提条件

步骤一:安装ack-onepilot

  1. 执行以下wget命令下载ack-onepilot安装包。

     wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-3.2.5.tgz'
  2. 执行以下命令解压ack-onepilot安装包。

    tar xvf ack-onepilot-3.2.5.tgz                 
  3. 编辑安装包下的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

    • accessKeyaccessKeySecret:阿里云账号的AccessKey ID和AccessKey Secret。获取方法,请参见获取AccessKey

      重要

      如果AccessKey ID为RAM用户(子账号)的AccessKey ID,请确认对应的RAM用户具有AliyunARMSFullAccessAliyunMSEFullAccess权限。

    • uid:阿里云账号(主账号)ID。将鼠标悬浮于阿里云控制台右上角的头像上可以获取。

    • region_id:要接入阿里云MSE的地域ID。MSE支持的地域,请参见开服地域

  4. 执行以下命令安装ack-onepilot。

    重要

    请确保执行命令之前,您已经将~/.kube/config文件内容替换成需要接入MSE微服务治理的K8s集群的配置。

    helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace

步骤二:修改应用的YAML文件

  1. 执行以下命令查看目标无状态(Deployment)应用的配置。

    ### 查看指定无状态(Deployment)类型应用的配置
    kubectl get deployment {deployment名称} -o yaml                            
    说明

    如果您不清楚{deployment名称},请先执行以下命令查看所有无状态(Deployment)应用,在执行结果中找到目标无状态(Deployment)应用,再查看目标无状态(Deployment)应用的配置。

    ### 查看所有无状态(Deployment)类型应用的配置
    kubectl get deployments --all-namespace                
  2. 启动编辑目标无状态(Deployment)应用的YAML文件。

    kubectl edit deployment {Deployment名称} -o yaml                        
  3. 在YAML文件中的spec > template > metadata > labels层级下加入以下内容。

    msePilotAutoEnable: "on"   # 表示开启MSE微服务治理
    msePilotCreateAppName: xxx # 您的应用名称
    mseNamespace: default      # 您的应用所在的MSE微服务空间,不填默认为default
  4. 保存配置后,应用将自动重启,以上配置生效。

    2~5分钟后,若您的应用出现在MSE控制台的治理中心 > 应用治理中,包含应用实例,且有数据上报,则说明接入成功。

后续步骤

完成上述步骤后,您就为部署在开源K8s环境中的应用开启了MSE微服务治理。登录MSE治理中心控制台,即可使用MSE微服务治理对您的Spring Cloud和Dubbo应用进行服务治理。

卸载ack-onepilot

当您不再需要治理开源K8s环境中的应用及服务时,可以卸载ack-onepilot。

  1. 执行以下命令卸载ack-onepilot。

    helm3 uninstall --namespace ack-onepilot ack-onepilot
  2. 重启您的应用Pod。