流量引擎节点管理功能方案.md

概述

流量引擎是一个集群组成的具备流量转发 流量监控 的逻辑组件.
1.6 之前, 流量引擎分为三种逻辑组件: 管理节点 调度节点 工作节点, 管理节点 调度节点 工作节点同样由多台机器集群组成.
在 1.6 后, 流量引擎重新定义节点概念, 将节点定义为机器, 而管理 调度 工作 的职能定义为服务, 所以一个流量引擎集群现在的描述可能为: 该流量引擎有 3 台节点, 节点 A 中部署了管理 调度 服务, 节点 B C 中只部署了 工作 服务.

产品需求

此需求重新定义了引擎节点的概念,并对引擎节点管理进行了重新设计。

主要需求:

  • 节点列表:
  • 节点新增: 为已有流量引擎新增节点, 可以批量添加多台, 如果失败则停止, 已经安装成功的节点不卸载
  • 节点详情
  • 节点编辑(???)
  • 节点删除(暂时不做)
  • 节点替换: 将对已有节点做替换
  • 节点状态: 点击查看节点状态,跳转『系统管理-运行状态』页面,并将当前引擎、当前节点的数据查询出来

设计

节点新增功能实现流程图

graph LR
    a[数据库操作]
    b[发布任务]
    c[返回任务 ID]
    d("AddSENodes(req)")
    e("AddMemberIntoCluster(newNode, clusterInfo)")
    f(更新任务状态)
    
    a--->b--->c
    b-.->|异步任务|d-->e
    e -->|循环| e
    e --> f

AddSENodes 实现

  • 查询前面 cluster Info
  • 遍历要添加的 Nodes , 为每个 Node 调用 AddMemberInfoCluster

AddMemberInfoCluster 实现

  • ssh 连接 node
  • 组织 InstallConfigV1
  • 上传 SE 包, 并对 SE 执行 able 安装程序
  • 执行成功, 则对 前面 cluster 每个节点执行 able member add newNode

able install

几乎跟引擎节点安装相同, 但是需要新增 –is-cluster-exist 参数, 标记是加入引擎集群, 在安装中, 会设置 IsClusterExist 的值为 true, 对这个值敏感的程序在自己的 install 程序中可以获取到这个值, 来决定一些特别的操作

able member add newNode

执行已安装节点的 member_add action , 如果没有定义这个 action 的组件不执行.
在执行 member_add action 时, 会用环境变量表示 newNodeInfo ,


流量引擎节点管理功能方案.md
https://abrance.github.io/2024/08/19/mdstorage/project/sr/流量引擎节点管理功能方案/
Author
xiaoy
Posted on
August 19, 2024
Licensed under