Kolla 部署理念

概述

Kolla 的目标是用灵活、无痛、低成本的部署流程取代 OpenStack 僵化、痛苦、资源密集型的部署流程。通常,要在 100+ 节点的规模上部署 OpenStack,小型企业可能需要建立一个 OpenStack 专业团队来维护和管理 OpenStack 部署。寻找具有 OpenStack 部署经验的人非常困难且昂贵,这给 OpenStack 的采用带来了很大的障碍。Kolla 旨在通过简化部署流程并实现灵活的部署模型来解决这些问题。

Kolla 默认情况下是一个高度定制化的部署工具。这使得 Kolla 能够通过简单配置三个键/值对即可部署。随着操作员对 OpenStack 经验的增长以及定制 OpenStack 服务需求的增加,Kolla 提供了完全覆盖部署中每个 OpenStack 服务配置选项的能力。

为什么不使用模板定制?

Kolla 上游社区不希望在 Ansible playbook 配置选项中放置对获得功能性部署非必要的键/值对。如果 Kolla 上游开始走模板配置选项的道路,Ansible 配置可能会增长到数百个配置键/值对,这将难以管理。此外,随着 Kolla 新版本的发布,不同版本将会有独立的定制,从而创建一个不受支持且难以记录的环境。最后,为配置选项添加键/值对会造成开发和发布周期需要才能成功添加新的定制的情况。本质上,配置选项中的模板化不是一个可扩展的解决方案,并且会导致项目无法执行其使命。

Kolla 定制的解决方案

Kolla 不愿处理 Kolla Ansible playbook 中模板化配置选项的定制混乱,而是通过一个简单、整洁的设计消除了现有部署工具的所有效率低下:自定义配置段。

在部署 OpenStack 服务期间,一组基本的默认配置选项将与自定义 ini 配置段合并并被覆盖。 Kolla 部署定制就是如此简单!这确实会造成操作员必须参考上游文档以在 OpenStack 部署中进行定制的情况。幸运的是,配置选项文档非常成熟且表达良好。

例如,考虑在虚拟机中运行 Kolla。为了在虚拟环境中从 Nova 启动虚拟机,有必要使用 QEMU 超visor,而不是 KVM 超visor。要实现此结果,只需 mkdir -p /etc/kolla/config 并修改文件 /etc/kolla/config/nova.conf,内容如下

[libvirt]
virt_type=qemu
cpu_mode = none

在此更改之后,Kolla 将使用性能较低的模拟超visor。 Kolla 可以模板化这个常用的配置选项。如果 Kolla 走上这条道路,Kolla 项目可能会最终拥有数百个配置选项,所有这些选项都必须主观地评估是否包含或排除在源代码树中。

Kolla 的方法产生了一种解决方案,它可以在没有任何上游维护负担的情况下实现完全定制。操作员不必依赖主观的配置选项审批流程,也不必依赖开发/测试/发布周期来获得所需的定制。相反,操作员可以立即自由地做出所需的部署选择,而无需获得第三方的批准。