通过透明劫持功能,应用无需改造,即可获得服务治理和观测能力。应用开启透明劫持功能后,出入应用的业务流量将会被 Sidecar Proxy 自动拦截,继而按照您在控制台配置的规则进行观测与治理。
当前仅适用于 HTTP 协议的服务端应用。后续版本将会同时适用于客户端和服务端,也将支持更多协议。
透明劫持流程
透明劫持流程图如下:

透明劫持流程说明如下:
Init 流程(0):下方紫色虚线表示在 Pod 启动时,通过 Init Container 特权容器,开启流量劫持并设置流量劫持规则(分为 Inbound 规则和 Outbound 规则)。Init Container 在设置结束后立即退出。
Inbound 流程(1,2,3):左边橙色实线表示 Inbound 请求,被 traffic intercetion 劫持,根据 Inbound 规则请求被转发到 Sidecar,然后 Sidecar 再转发给应用。
Outbound 流程(4,5,6):右边黑色实线表示 Outbound 请求,App 发出的 Outbound 请求会被 traffic interception 劫持,根据 Outbound 规则请求被转发给 Sidecar,然后 Sidecar 处理之后将请求发送给目的地。
使用透明劫持功能的完整操作步骤如下:
添加应用:添加需要进行透明劫持的目标应用。
开启并配置劫持参数:在目标节点开启透明劫持功能,并配置劫持参数。
运行透明劫持脚本:下载并运行透明劫持脚本,以安装并启动 Sidecar proxy。
应用治理:为应用配置治理最大请求数,实现应用治理。
添加应用
前往 微服务平台 > 服务网格 > 透明劫持 页面,点击 添加应用。
在 添加应用 窗口中,输入需要进行透明劫持的应用的相关信息,包括应用名称、端口信息以及节点信息。
注意应用添加成功后,暂无法修改或新增应用治理的端口,请在添加时确保端口信息正确。
单击提交。
开启并配置劫持参数
返回透明劫持页面,找到刚刚添加的应用,单击该应用名称,进入应用详情页面。
在应用详情页的节点管理页签,开启透明劫持功能:
单独启用:在节点列表中找到需要开启透明劫持的节点,在透明劫持状态列开启透明劫持功能。
批量启用:在节点列表中勾选需要开启透明劫持的节点,单击列表左上方的开启透明劫持。
在应用详情页,单击右上角的参数配置按钮,配置劫持参数。
入方向:劫持黑名单中端口范围之外的所有TCP流量。
出方向:劫持黑名单网段范围和端口范围之外的TCP流量。
单击确定,完成参数配置。
运行透明劫持脚本
透明劫持开启并配置完成后,您需要下载并安装透明劫持脚本。
在控制台页面中开启/关闭透明劫持功能后,必须运行透明劫持脚本,以安装/卸载 Sidecar。
Sidecar 安装完成后,如重新修改了劫持参数配置。修改后,还必须重新运行脚本,进行 Sidecar 卸载与安装。
在 服务网格 > 透明劫持 页面,单击右上角查看环境信息,获取以下信息。
tenant:即所在的租户名称。
workspace:即所在的工作空间名称。
instanceid:即所在环境的中间件实例 ID。
region:即所在环境的区域。
根据您当前所在的环境(即region)与网络环境,下载透明劫持脚本到您的目标应用节点上。
运行
chmod +x sofamesh.sh
,继而执行以下透明劫持脚本(bash 脚本),安装并启动 Sidecar proxy。sofamesh.sh install \ --tenant <租户名>,也支持使用-t,可在透明劫持页面上点击右上角“查看环境信息”获取 \ --workspace <工作空间名称>,也支持使用-w,可在透明劫持页面上点击右上角“查看环境信息”获取 \ --instanceid <中间件实例 ID>,也支持使用-i,可在透明劫持页面上点击右上角“查看环境信息”获取 \ --appname <应用名称>,也支持使用-n,必须与您添加应用时的应用名称保持一致 \ --accesskey <阿里云AccessKey>,也支持使用-a \ --secretkey <阿里云SecretKey>,也支持使用-s \ --artifacts <安装包链接>,也支持使用-f,脚本依赖的安装包下载链接,下载地址参见下方参数说明 \ --verbose,也支持使用-v,以打印更详细的执行安装过程。
参数说明:
阿里云AccessKey与SecretKey获取方法,参见创建 AccessKey。
artifacts 参数的下载地址(根据您当前所在region选取地址):
脚本执行完成后,节点完成初始化,请求将被MOSN劫持转发。
应用治理
在应用详情页,点击右上角的应用治理按钮。
在右侧出现的应用治理窗口中,选择需要劫持的端口,并配置治理最大请求数。
注意最大请求数不能超过2147483647,设置为0则表示无限制。
在应用详情页,选择应用治理记录页签,即可查看应用治理记录,包括了修改人、修改时间、针对的端口号以及修改值变化信息,如下图所示。
在文档使用中是否遇到以下问题
更多建议
匿名提交