计算 CDM 包含所有实例

https://blueprints.launchpad.net/watcher/+spec/compute-cdm-include-all-instances

问题描述

在构建计算 CDM 时,我们会排除范围排除的实例。这对 Watcher 产生非常糟糕的影响。

为了工作负载均衡和服务器整合,范围中排除的实例不会被添加到工作负载中。因此,它会获得计算节点的错误工作负载,并执行不合理的迁移。

为了服务器整合,它会禁用仍然运行排除实例的节点。

用例

作为最终用户,我希望 Watcher 在工作负载计算期间考虑排除的实例,但不迁移排除的实例。

提议的变更

Watcher 应该拥有集群的完整范围,包括所有实例。这样它才能获得节点的正确工作负载,并做出正确的优化。

Watcher 中的计算 CDM 应该拥有完整的范围,包括所有实例。需要明确哪些实例被排除,哪些实例未被排除。

  • 我们可以向“Instance”资源添加“watcher_exclude”字段来区分它们,如下所示。

    class Instance(compute_resource.ComputeResource)
    fields = {

    “watcher_exclude”: wfields.BooleanField(default=False), “state”: wfields.StringField(default=InstanceState.ACTIVE.value), …

    }

    在构建计算 CDM 时,如果实例被范围排除,则将“watcher_exclude”标志设置为“True”。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人:sue

工作项

  • 在计算 CDM 中添加和识别排除的实例

  • 调整工作负载均衡和服务器整合,在计算计算节点的工作负载并生成解决方案时

依赖项

测试

单元测试

文档影响

参考资料

https://docs.openstack.org/watcher/latest/glossary.html#cluster-data-model-definition

历史