通过命令行离线部署和升级插件
前提条件
已安装 GoLand 2021.2 及以上版本。
已安装 mosn-intellij-1.0.4-all.jar 及以上版本。
开发环境 JDK 已升级至 JDK 11 及以上版本。
下载地址请参见 JDK 11。
已配置 mosn-intellij 命令行。
~/.zshrc 或者 ~/.bashrc 配置 # 指定 JDK 11 的本地配置 export JAVA_11_HOME="/Library/Java/JavaVirtualMachines/jdk-11.0.15.jdk/Contents/Home" # 设置 mosn-intellij 别名,/path/to 用于替换本地实际目录名 alias mecha="$JAVA_11_HOME/bin/java -jar /path/to/mosn-intellij-1.0.4-all.jar"
升级 Cloudmesh 至 1.15.0 及以上版本(2023 年 7 月发布)。
当前版本有部分功能无法使用,升级之后可以使用全部功能。
离线部署
离线部署解决的是全量插件部署问题,您可以将待部署的所有插件全量包含在特定结构中。离线部署允许批量上传,尤其在研发环境和测试环境网络隔离时,允许我们在跳板机或者其他机器与控制面互通执行操作。操作步骤如下:
步骤一:初始化结构。
创建初始化目录。
在首次进行离线部署时,需要创建插件结构。您可以通过
vs code
命令行创建初始化目录:mecha offline-deploy -d <project dir> --init <bool>
project dir
:指定插件存放的文件夹。bool
:是否初始化目录,取值如下:true
:执行初始化目录。false
:不执行初始化目录。
命令示例如下:
mecha offline-deploy -d /Users/****/go/src/code.alipay.com/zong/go-plugin-quickstart/build/test/offline --init true
命令创建的目录分别存放特定类型插件:
codecs
:存放插件包。stream_filters
:存放拦截器插件包。traces
:存放可观测插件包,目前支持 Zipkin、SkyWalking。transcoders
:存放协议转换包。
将全量离线部署的插件包放置在对应目录。
说明测试场景,将 xRPC 和 SkyWalking 插件
1.0.3-dev
进行全量离线部署(假设目前仅使用这 2 个插件):xRPC 插件包复制到
offline/codecs
目录中。SkyWalking 插件包复制到
offline/traces
目录中。
user@user-4 test % tree . └── offline ├── codecs │ └── xrpc-1.0.3-dev.zip ├── stream_filters ├── traces │ └── skywalking-1.0.3-dev.zip └── transcoders 5 directories, 2 files
步骤二:部署插件
创建配置文件。
在部署前,您需要提供一份配置(假设文件名
env_conf
),指明要连接的环境 ACVIP、AccessKey 信息。配置文件中必须包含以下字段:# 设置 ACVIP 的地址,不包括端口号 SOFA_ANTVIP_ENDPOINT= # 租户实例 Id,中间件租户默认为 000001 SOFA_INSTANCE_ID= # 鉴权使用的 AccessKey ID SOFA_ACCESS_KEY= # 鉴权使用的 AccessKey Secret SOFA_SECRET_KEY=
使用以下命令部署插件:
mecha offline-deploy -d <project dir> -c <conf file>
project dir
:指向包含全量插件的根目录,例如步骤一示例中使用的offline
文件夹。conf file
:包含环境配置信息,用来寻址上传的服务网格地址。例如刚刚创建的env_conf
文件。
说明如果不使用
-c
参数指定配置文件位置,则需要保证-d
参数指定的目标文件夹中存在配置文件。命令示例如下:
mecha offline-deploy -d /Users/***/go/src/code.alipay.com/zong/go-plugin-quickstart/build/test/offline -c /Users/**/go/src/code.alipay.com/zong/go-plugin-quickstart/etc/ant/env_conf
执行结果如下:
步骤三:在服务网格控制台确认插件包正确部署
通过命令行部署完成后,您需要登录服务网格控制台的 插件管理 页面查看部署包版本是否正确。
插件包部署后,您可以通过 Sidecar 注入规则进行关联。关联完成后,当应用注入 Sidecar 时,会自动激活插件。如何使用 Sidecar 注入规则请参见 HTTP 插件的上传和部署 课程中,Sidecar 注入规则关联插件部分介绍。
离线升级
离线升级解决的是全量插件兼容升级问题,您可以将待升级的所有插件全量包含在特定结构中。允许批量上传,尤其在研发环境和测试环境网络隔离时,允许我们在跳板机或者其他机器与控制面互通执行操作。
前提条件
已在服务网格控制台的 Sidecar 版本管理 页面录入需要升级的 Sidecar 镜像。
步骤一:初始化结构
创建初始化目录。
在首次进行离线升级时,您需要创建插件结构。您可以通过
vs code
命令行创建初始化目录:mecha offline-upgrade -d <project dir> --init <bool>
project dir
:指定插件存放的文件夹。bool
:是否初始化目录,取值如下:true
:执行初始化目录。false
:不执行初始化目录。
示例如下:
mecha offline-upgrade -d /Users/****/go/src/code.alipay.com/zong/go-plugin-quickstart/build/test/upgrade --init true
命令创建的目录分别存放特定类型插件:
codecs
:存放插件包。stream_filters
:存放拦截器插件包。traces
:存放可观测插件包,目前支持 Zipkin、SkyWalking。transcoders
:存放协议转换包。
将全量离线部署的插件包放置在对应目录。
说明测试场景,将 xRPC 和 SkyWalking 插件
1.0.3-dev
进行全量离线升级到1.0.4-dev
(假设目前仅使用这 2 个插件):xRPC 插件包的 1.0.4 版本复制到
upgrade/codecs
目录中。SkyWalking 插件包的 1.0.4 版本复制到
upgrade/traces
目录中。
user@user-4 test % tree . └── offline ├── codecs │ └── xrpc-1.0.4-dev.zip ├── stream_filters ├── traces │ └── skywalking-1.0.4-dev.zip └── transcoders 5 directories, 2 files
步骤二:升级插件
创建配置文件。
在升级前,您需要提供一份配置(假设文件名
env_conf
),指明要连接的环境 ACVIP、AccessKey 信息。配置文件中必须包含以下字段:# 设置 ACVIP 的地址,不包括端口号 SOFA_ANTVIP_ENDPOINT= # 设置租户实例 Id,中间件租户默认为 000001 SOFA_INSTANCE_ID= # 设置鉴权使用的 AccessKey ID SOFA_ACCESS_KEY= # 设置鉴权使用的 AccessKey Secret SOFA_SECRET_KEY=
使用以下命令部署插件:
mecha offline-upgrade -d <project dir> -c <conf file>
project dir
:指向包含全量插件的根目录,例如步骤一示例中使用的upgrade
文件夹。conf file
:包含环境配置信息,用来寻址上传的服务网格地址。例如刚刚创建的env_conf
文件。
说明如果不使用
-c
参数指定配置文件位置,则需要保证-d
参数指定的目标文件夹中存在配置文件。命令示例如下:
mecha offline-upgrade -d /Users/****/go/src/code.alipay.com/zong/go-plugin-quickstart/build/test/upgrade -c /Users/****/go/src/code.alipay.com/zong/go-plugin-quickstart/etc/ant/env_conf
确认 Sidecar 注入规则和新版本的 Sidecar 镜像序号。
执行升级命令后,会提示您输入使用的 Sidecar 注入规则(获取关联插件)和新版本的 Sidecar 镜像序号,确认无误选择后回车即可。
步骤三:在服务网格控制台确认插件包正确升级
确认插件包正确升级。
通过命令行升级完成后,您需要登录服务网格控制台的 插件管理 页面查看部署包版本已正确升级。
触发 Sidecar 升级规则。
在 Sidecar 注入规则 页面找到升级的 Sidecar 注入规则,单击 升级。
在 参数配置 步骤选择和命令行相同的镜像版本,并确认插件和 Trace 升级的版本是否正确。
重新注入 Sidecar。
如果需要插件生效,您需要在 服务目录 页面单击应用名进入应用详情。如果已经注入 Sidecar,单击 下线 后,再单击 注入,应用会使用新版本的插件。