特定实例退役¶
https://blueprints.launchpad.net/sahara/+spec/decommission-specific-instance
当集群出现问题时,移除特定实例可能很有用。目前 Sahara 的构建方式允许用户缩小集群规模,但它会从所选节点组中随机选择一个实例进行移除。我们希望赋予用户选择要从集群中移除的实例(或实例)的机会。
问题描述¶
用户可能需要移除特定的节点以使集群更健康。目前这不可能实现。
提议的变更¶
我们将添加用户选择从集群中移除的特定实例的可能性。
在选择要移除实例的节点组后,用户将被允许选择要移除的实例或实例。
我们还将允许使用通配符移除,如果用户想随机选择实例,可以将其留空。如果删除多个实例,用户可以选择每个要删除的实例或仅选择一个子集,Sahara 将选择其余实例。
替代方案¶
继续随机选择要缩减规模的实例。
数据模型影响¶
无
REST API 影响¶
我们将更改缩放集群的请求体。
目前请求体应如下所示
- {
- “add_node_groups”: [
- {
“count”: 1, “name”: “b-worker”, “node_group_template_id”: “bc270ffe-a086-4eeb-9baa-2f5a73504622”
}
],
- “resize_node_groups”: [
- {
“count”: 4, “name”: “worker”
}
]
}
我们将更改第二部分以支持额外的参数
- {
- “add_node_groups”: [
- {
“count”: 1, “name”: “b-worker”, “node_group_template_id”: “bc270ffe-a086-4eeb-9baa-2f5a73504622”
}
],
- “resize_node_groups”: [
- {
“count”: 4, “name”: “worker”, “instances”: [“instance_id1”, “instance_id2”]
}
]
}
如果用户未指定要移除的实例,则将不会传递该参数,我们将按照当前方法进行移除。
其他最终用户影响¶
CLI 命令将有一个新的选项来选择实例。
部署者影响¶
无
开发者影响¶
无
Sahara-image-elements impact¶
无
Sahara-dashboard / Horizon 影响¶
我们需要添加一个让用户选择要移除的实例的地方。这可以在 NG 选择之后进行,并添加要移除的实例的选择器数量,并可以选择将其留空。
实现¶
负责人¶
- 主要负责人
Telles Nobrega
- 其他贡献者
无
工作项¶
添加在缩减规模时选择实例的可能性
添加 CLI 选项以选择要移除的实例
添加 UI 选项以选择要移除的实例
单元测试
文档
依赖项¶
无
测试¶
需要单元测试。
文档影响¶
没有什么特别的,但重要的是要牢记用户和开发者的视角。
参考资料¶
无