特定实例退役

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 选项以选择要移除的实例

  • 单元测试

  • 文档

依赖项

测试

需要单元测试。

文档影响

没有什么特别的,但重要的是要牢记用户和开发者的视角。

参考资料