全部产品

透明劫持

通过透明劫持功能,应用无需改造,即可获得服务治理和观测能力。应用开启透明劫持功能后,出入应用的业务流量将会被 Sidecar Proxy 自动拦截,继而按照您在控制台配置的规则进行观测与治理。

注意

当前仅适用于 HTTP 协议的服务端应用。后续版本将会同时适用于客户端和服务端,也将支持更多协议。

透明劫持流程

透明劫持流程图如下:

123

透明劫持流程说明如下:

  1. Init 流程(0):下方紫色虚线表示在 Pod 启动时,通过 Init Container 特权容器,开启流量劫持并设置流量劫持规则(分为 Inbound 规则和 Outbound 规则)。Init Container 在设置结束后立即退出。

  2. Inbound 流程(1,2,3):左边橙色实线表示 Inbound 请求,被 traffic intercetion 劫持,根据 Inbound 规则请求被转发到 Sidecar,然后 Sidecar 再转发给应用。

  3. Outbound 流程(4,5,6):右边黑色实线表示 Outbound 请求,App 发出的 Outbound 请求会被 traffic interception 劫持,根据 Outbound 规则请求被转发给 Sidecar,然后 Sidecar 处理之后将请求发送给目的地。

使用透明劫持功能的完整操作步骤如下:

  1. 添加应用:添加需要进行透明劫持的目标应用。

  2. 开启并配置劫持参数:在目标节点开启透明劫持功能,并配置劫持参数。

  3. 运行透明劫持脚本:下载并运行透明劫持脚本,以安装并启动 Sidecar proxy。

  4. 应用治理:为应用配置治理最大请求数,实现应用治理。

添加应用

  1. 前往 微服务平台 > 服务网格 > 透明劫持 页面,点击 添加应用

  2. 添加应用 窗口中,输入需要进行透明劫持的应用的相关信息,包括应用名称、端口信息以及节点信息。

    注意

    应用添加成功后,暂无法修改或新增应用治理的端口,请在添加时确保端口信息正确。

    添加应用
  3. 单击 提交

开启并配置劫持参数

  1. 返回 透明劫持 页面,找到刚刚添加的应用,单击该应用名称,进入应用详情页面。

  2. 在应用详情页的 节点管理 页签,开启透明劫持功能:

    • 单独启用:在节点列表中找到需要开启透明劫持的节点,在 透明劫持状态 列开启透明劫持功能。

    • 批量启用:在节点列表中勾选需要开启透明劫持的节点,单击列表左上方的 开启透明劫持启用透明劫持功能

  3. 在应用详情页,单击右上角的 参数配置 按钮,配置劫持参数。

    • 入方向:劫持黑名单中端口范围之外的所有TCP流量。

    • 出方向:劫持黑名单网段范围和端口范围之外的TCP流量。参数配置

  4. 单击 确定,完成参数配置。

运行透明劫持脚本

透明劫持开启并配置完成后,您需要下载并安装透明劫持脚本。

注意

  • 在控制台页面中开启/关闭透明劫持功能后,必须运行透明劫持脚本,以安装/卸载 Sidecar。

  • Sidecar 安装完成后,如重新修改了劫持参数配置。修改后,还必须重新运行脚本,进行 Sidecar 卸载与安装。

  1. 服务网格 > 透明劫持 页面,单击右上角 查看环境信息,获取以下信息。

    • tenant:即所在的租户名称。

    • workspace:即所在的工作空间名称。

    • instanceid:即所在环境的中间件实例 ID。

    • region:即所在环境的区域。环境信息

  2. 根据您当前所在的环境(即region)与网络环境,下载透明劫持脚本到您的目标应用节点上。

  3. 运行 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,以打印更详细的执行安装过程。

    参数说明

  4. 脚本执行完成后,节点完成初始化,请求将被MOSN劫持转发。

应用治理

  1. 在应用详情页,点击右上角的 应用治理 按钮。

  2. 在右侧出现的 应用治理 窗口中,选择需要劫持的端口,并配置治理最大请求数。

    注意

    最大请求数不能超过 2147483647,设置为 0 则表示无限制。

    应用治理
  3. 在应用详情页,选择 应用治理记录 页签,即可查看应用治理记录,包括了修改人、修改时间、针对的端口号以及修改值变化信息,如下图所示。应用治理记录