Sahara/PluggableProvisioning/ClusterLifecycle
目录
模板模式的集群生命周期
“cluster”对象作为参数传递给多个函数。它可以用于获取集群配置和更改它。在这些调用期间,对象的一些字段是空白的。
validate_cluster(...) 和 update_infra(...) 都接收具有相同字段集的 cluster。validate_cluster(...) 不得更改 cluster 对象,而 update_infra(...) 可以(并且对于某些字段必须)进行一些调整。以下是调用时将不会设置的字段列表。所有说明插件可以或必须调整某个字段的注释仅适用于 update_infra(...) 函数
- image - 插件必须设置该字段。假设插件将此字段设置为父 cluster 对象中的 default_image,或从镜像注册表中获取的镜像。
- instances。 此时集群实例尚未创建。
插件可以完全重写 node_groups 字段。 假设插件将利用此功能来添加管理节点的规格或其他类似内容。
configure_cluster(...) 和 start_cluster(...) 都接收具有所有字段设置的“cluster”对象。
配置文件模式的集群生命周期
上一节介绍了使用模板创建集群。 本节详细介绍了从特定于提供商的配置文件创建集群。
在此模式下,用户通过提供特定于提供商的配置文件来开始创建集群。 Savanna 将该文件与空的“cluster”对象一起传递给插件的 convert(...) 方法。 预计插件将从文件中解析集群配置,并使用集群拓扑填充“cluster”对象。
在 convert(...) 返回后,Savanna 会向用户显示集群对话框。 在对话框中,用户可以更改节点数量和节点组的 flavor。 有关清晰起见,请参阅 wiki 上的集群模拟图。 用户提交表单后,流程将经历与模板模式相同的循环,除了一个事情
cluster_configs 和 node_configs 都不会提供给插件。 插件是否使用这些字段由插件决定。 或者,插件可以将配置文件保存在额外的字段中,并在以后使用它。
集群生命周期流程图
以下是 Savanna 核心和插件在集群生命周期的每个阶段对集群对象的责任描述。 字段颜色说明
| 颜色 | 已设置 | 可修改 | 必须指定? |
|---|---|---|---|
| 黑色 | 是 | - | - |
| 灰色 | - | - | - |
| 下划线蓝色 | 是 | 是 | - |
| 蓝色 | - | 是 | - |
| 红色 | - | 是 | 是 |
convert(cluster)
cluster: name plugin_name default_image cluster_configs node_groups: name flavor image node_processes node_configs anti_affinity_group count instances: id ip credentials extra extra extra
validate_cluster(cluster)
cluster:
name
plugin_name
default_image
cluster_configs
node_groups:
name
flavor
image
node_processes
node_configs
anti_affinity_group
count
instances:
id
ip
credentials
extra
extra
extra
update_infra(cluster)
cluster: name plugin_name default_image cluster_configs node_groups: name flavor image node_processes node_configs anti_affinity_group count instances: id ip credentials extra extra extra
configure_cluster(cluster), start_cluster(cluster)
cluster:
name
plugin_name
default_image
cluster_configs
node_groups:
name
flavor
image
node_processes
node_configs
anti_affinity_group
count
instances:
id
ip
credentials
extra
extra
extra