应用管理与运维平台 ServiceStage-设置组件实例调度策略:亲和性概念阐述

时间:2023-11-01 16:19:35

亲和性概念阐述

在应用没有容器化之前,原先一个虚拟机上会装多个组件,进程间会有通信。

但在做容器化拆分的时候,通常直接按进程拆分容器。比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中两个较远的点,请求经过多次转发,性能会很差。

亲和性可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。

反亲和性主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对应用的影响只是N分之一或者只是一个实例。

  • 应用与可用区的亲和性
    • 亲和:决定应用组件部署在特定的可用区中。
    • 反亲和:决定应用组件不能部署在特定的可用区中。
  • 应用与节点间的亲和性
    • 亲和:决定应用组件部署在某些特定的主机中。
    • 反亲和:决定应用组件不能部署在某些特定的主机中。
  • 应用间的亲和性
    决定应用组件部署在相同或不同节点中。
    • 亲和:用户可根据业务需求进行应用组件的就近部署,应用组件间通信就近路由,减少网络消耗。如图1所示,APP1、APP2、APP3和APP4部署在相同节点上,为亲和性部署。
      图1 应用间亲和
    • 反亲和:同个应用组件的多个实例反亲和部署,减少宕机影响;互相干扰的应用反亲和部署,避免干扰。
      图2所示,APP1、APP2、APP3和APP4分别部署在不同节点上,这四个应用为反亲和性部署。
      图2 应用间反亲和
support.huaweicloud.com/usermanual-servicestage-new/servicestage_03_0057.html