计算 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
历史¶
无