节点智能调度
此功能为商业版功能。在v1.1.0版本加入。
从 GoEdge v1.1.0 开始,可以为节点设置智能调度动作,以便于节点在满足条件的情况下可以切换到备用节点、备用IP等。
原理
可以看到,管理员为节点设置调度条件后,当满足调度条件后,会自动执行调度动作,调度动作中会自动调整节点的DNS解析记录,以便于让用户访问到不同的节点或者IP,同时也会发送消息通知。
节点智能调度设置
可以在单个节点设置中”智能调度”中设置当前节点智能调度信息:
基础设置
可以在节点设置 – “智能调度”页面中设置一些当前节点的基础信息:
当前节点租期结束日期
- 当然节点的租期结束日期,比如某个服务器的租期到2023-12-31
日结束,那么此节点的IP会在此日期后从DNS记录中删除当前节点为集群备用节点
- 设置当前节点是否为所在集群的备用节点,设置为集群备用节点后,同集群的其他节点可以通过调度动作切换到此节点当前节点为分组备用节点
- 设置当前节点是否为所在节点分组的备用节点,设置为节点分组备用节点后,同分组的其他节点可以通过调度动作切换到此节点当前节点备用IP
- 当前节点的备用IP,可以通过调度动作切换到这些备用IP
调度动作
可以在节点设置 – “智能调度”页面中添加一些调度动作,当执行条件满足时就会触发调度动作,从而可以实现切换节点和IP等。
添加调度动作
在节点设置 – “智能调度”页面 – 调度动作标题中点击”添加”:
其中:
执行条件
- 触发调度动作需要的条件,通常由”参数”、”操作符”、”对比值(带宽、流量等)”组成,设置后别忘记点击”确定”按钮保存设置执行动作
- 满足执行条件后执行的动作持续时间
- 触发后保持状态的时间,超出此时间后,系统自动还原节点执行前的状态;但是如果节点没有可以访问的IP(比如全都离线),那么将不会恢复节点状态,并在下次循环后再次检查
添加后的显示类似于:
如果单个节点添加了多个调度动作,那么系统会按照添加顺序依次检查是否匹配,并只执行第一个匹配的调度动作。
复制到分组
可以在节点设置 – “智能调度”页面中 – 调度动作标题 – 更多操作 点击 “复制到分组xxx”。
此功能可以使用的前提是当前节点在节点分组中。
复制到集群
可以在节点设置 – “智能调度”页面中 – 调度动作标题 – 更多操作 点击 “复制到集群xxx”。
集群统一管理
可以在集群设置 – “智能调度”中管理当前集群下的所有节点的智能调度:
调度参数
节点出口带宽
当前节点当前时间点的出口平均带宽(从节点服务器发送到客户端)。
带宽单位为比特(bit),是字节的八分之一。
节点入口带宽
当前节点当前时间点的入口平均带宽(从客户端发送到节点服务器)。
带宽单位为比特(bit),是字节的八分之一。
节点当月流量
当前节点在当月的出口流量,即从节点服务器发送到客户端的当月流量总和。
流量单位为字节,为比特的八倍。
节点当日流量
当前节点在当天的出口流量,即从节点服务器发送到客户端的当天流量总和。
流量单位为字节,为比特的八倍。
节点CPU利用率
节点当前CPU利用率,取值范围为0-100。
节点内存利用率
节点当前内存利用率,取值范围为0-100。
节点负载
节点当前负载,取值范围为0-∞,通常超过10表示系统负载较重。
节点健康检查失败
当前节点任一IP健康检查失败,此功能需要在集群设置中开启 健康检查 功能。
节点UDP数据报发送速率
在Goedge v1.2.0中加入,当前节点当前时间点的UDP数据报发送速率,比如超过100000/秒可以认为正在被攻击。
节点UDP数据报接收速率
在Goedge v1.2.0中加入,当前节点当前时间点的UDP数据报接收速率,比如超过比如超过100000/秒可以认为正在被攻击。
调度动作
注意:调度动作对备用节点不会起作用。
上线当前节点
将当前节点状态设置为在线。
此动作相当于恢复当前节点的状态,上线后的节点的所有IP都会自动创建为DNS解析记录,所以用户可以正常访问。
下线当前节点
将当前节点状态设置为离线。
此时当前节点的所有IP都会从DNS解析记录里删除,这样用户就无法通过域名解析访问到此节点。
切换到集群备用节点
下线当前节点并启用节点所在集群备用节点。
前提条件是集群下已经设置了一些集群备用节点(参考本文中的 基础设置),如果当前集群没有设置集群备用节点,则不会发生任何变化;如果当前集群中已经有一些备用节点,那么此动作会在DNS解析记录中删除当前节点的IP解析记录,并添加集群备用节点的IP解析记录,这样用户通过域名解析访问到的节点就是集群备用节点。
如果多个节点同时设置并触发了当前动作,那么只会添加一组集群备用节点的IP解析记录,不会重复添加。
切换到分组备用节点
下线当前节点并启用节点所在分组备用节点。
前提条件是当前节点已经在某个节点分组下,而且此节点分组下也已经设置了一些分组备用节点(参考本文中的 基础设置),如果当前节点没有在节点分组,或者当前所在的节点分组下没有设置分组备用节点,则不会发生任何变化;如果当前节点所在节点分组中已经有一些备用节点,那么此动作会在DNS解析记录中删除当前节点的IP解析记录,并添加节点分组下的备用节点的IP解析记录,这样用户通过域名解析访问到的节点就是节点分组下的备用节点。
如果节点所在节点分组下的多个节点同时设置并触发了当前动作,那么只会添加一组节点分组备用节点的IP解析记录,不会重复添加。
切换到备用IP
将当前节点的IP切换到当前节点配置的备用IP。
前提条件是当前节点已经设置了备用IP(参考本文中的 基础设置),如果没有设置备用IP,则不会发生任何变化;如果已经设置了备用IP,那么此动作会在DNS解析记录中删除当前节点的IP解析记录,并添加备用IP的解析记录,这样用户通过域名解析访问到的节点使用的就是备用IP。
启用集群备用节点
保持当前节点并启用节点所在集群备用节点。
同本文中的 切换到集群备用节点 类似,只不过仍然保留当前节点的IP解析记录。
启用分组备用节点
保持当前节点并启用节点所在分组备用节点。
同本文中的 切换到分组备用节点 类似,只不过仍然保留当前节点的IP解析记录。
启用备用IP
保持当前节点的IP并启用当前节点配置的备用IP。
同本文中的 切换到备用IP 类似,只不过仍然保留当前节点的IP解析记录。
WebHook
通过WebHook发送通知到URL。
在动作被触发时,会以GET的方式调用你填入的WebHook URL,并传入节点角色(role)、集群ID(clusterId)、节点ID(nodeId)等参数,比如你填入的WebHook为:
https://example.com/notify
那么调用时的完整URL就是:
https://example.com/notify?role=node&clusterId=集群ID&nodeId=节点ID
URL里也可以使用参数:
https://example.com/notify?name=monitor&v=1
那么调用时的完整URL就是:
https://example.com/notify?name=monitor&v=1&role=node&clusterId=集群ID&nodeId=节点ID
可以看到保留了原来的URL参数。
场景演示
服务器租期到后自行下线
比如某台服务器租用期限在2023年12月31日,那么可以在节点”智能调度”–“基础设置”中设置”当前节点租期结束日期为”2023-12-31”,这样到此日期时会自动将此服务器对应的IP从域名解析中移除。
在实际操作中,设置的结束日期最好提前几天,以便于DNS解析记录可以及时生效,比如实际结束日期为”2023-12-31”,表单里的结束日期就可以设置为”2023-12-29”。
服务器流量满时自行下线
比如某台服务器限制每个月流量为500GB,那么可以在节点”智能调度”添加调度动作”节点当月流量 大于 450GB”时执行”下线当前节点”动作,这样当节点超过450GB时就自动从DNS域名解析中移除节点的IP。之所以是450GB而不是500GB,是为了留有余量,一方面统计方法可能不同,另外一方面域名解析生效需要时间。
服务器被攻击时自动切换到高防
不需要新部署高防节点的情形:为服务器对应的节点设置备用IP(节点”智能调度”–“基础设置”–“当前节点备用IP”选项),这些IP为高防实例的IP,然后添加调度动作”节点入口带宽 大于 100Mpbs”,动作为”切换到备用IP”,持续时间”60分钟”,这样当节点上行带宽超过100Mbps时会自动将域名解析中的节点IP切换到备用IP(高防实例IP),并且在60分钟后自动恢复。
需要部署高防节点的情形:为集群或者节点分组设置一些备用节点,备用节点的IP为高防实例的IP,选中备用节点的”智能调度”–“基础设置”–“当前节点为集群备用节点”或者”当前节点为分组备用节点”,然后添加调度动作”节点入口带宽 大于 100Mpbs”,动作为”切换到集群备用节点”或者”切换到分组备用节点”,持续时间”60分钟”,这样当节点上行带宽超过100Mbps时会自动将域名解析中的节点IP切换到备用节点的IP(高防实例IP),并且在60分钟后自动恢复。
节点无法访问时下线节点
首先在集群中启用健康检查,然后增加调度执行条件”健康检查失败”,执行动作为”下线当前节点”,这样在健康检查失败时会从DNS域名解析中自动下线当前节点下的所有IP。