编者按:昨日,OpenStack迎来了十周年Ussuri版本的发布!Ussuri进行了许多改进优化,并提供了许多新功能,为OpenStack基础架构这些功能可以增强基础架构和租户空间中的OpenStack。其中包括围绕OVN的稳定工作以及对Cyborg项目与Nova的合作加深。此外,这一版本所有服务都将转向Python3的怀抱,并且在Train版本的基础上进行了多项更新。值此Ussuri版本发布之际,九州云特别推出新特性详解系列文章,敬请关注!
完成了Nova Cyborg Interaction功能,使两者在某些方面进行紧密的联系,用于启动和管理具有GPU等加速器的实例。
Nova API策略引入了具有scope_type功能的新默认角色
Ironic及其远程代理之间的交互身份验证得到了补充
Kolla 添加了对后端API服务的TLS加密的初始支持
各服务功能趋于饱和,转向质量和使用层面的优化:
Glance 优化了对Multiple Strores的操作,单次操作,后台同步;
Keystone对创建应用程序凭据和信任关系的用户体验进行了极大改善;
各个项目对错误修复、旧功能弃用、不推荐功能清理等工作都进行了有效的推进。
当然这里只是列举了一些新版本的特性,从中可以看出OpenStack以愈发稳定、优越的姿态持续前进。下面将列举各项目在Ussuri版本的特性:
Cinder - 块存储服务
实现服务和库,以通过抽象和自动化在其他块存储设备之上提供对块存储资源的按需自助服务访问。
Notes:
为volume-type设置最大和最小的Size;
使用时间比较运算符过滤卷列表的能力;
将卷上载到Image Service时,支持Glance multistore和镜像数据托管;
添加了一些新的后端驱动程序,并且许多当前的驱动程序都增加了对更多功能的支持。
Cyborg - 加速器生命周期管理
为加速器提供一般管理框架(FPGA,GPU,SoC, NVMe SSD,DPDK/SPDK,eBPF/XDP …)
Notes:
随着Nova-Cyborg集成的完成,用户现在可以使用由Cyborg管理的加速器启动实例;
实现了新的API,用以列出由Cyborg管理的设备,可以查看和管理加速器的列表;
Cyborg通过在v2 API中采用microversions的模式,旨在将来版本中提供向后兼容的办法;
Cyborg客户端现在基于OpenStack SDK,并支持大多数Version 2 API;
通过增加更多的单元/功能测试并减少技术负担来提高总体质量。
Glance - 镜像服务
提供服务和相关的库来存储、浏览、共享、分发和管理可引导磁盘镜像,与初始化计算资源紧密相关的其他数据以及元数据定义。
Notes:
增强了Multiple Stores功能,用户现在可以向多个Stores导入单个镜像,在多个Stores中复制现有的imgae,并从单个Store中删除镜像;
新导入了插件以解压镜像;
再次为glance-store引入了S3 driver。
Horizon - 仪表盘
为所有OpenStack服务提供可扩展的,基于Web的统一用户界面。
Notes:
该版本主要从维护角度着眼于错误修复和改进,包括对旧功能的弃用,对不推荐使用的功能的清理,对集成测试覆盖率的改进,在单元测试中向模拟用法的迁移等;
Horizon和所有Horizon插件现在都支持Django 2.2,这是Django唯一受支持的LTS。Django是一个地平线依赖的框架。请注意,不再支持python 2.7,我们已经进入python3时代;
实现了Keystone支持中的几个功能缺陷:一个允许用户更改过期密码的功能,包括首次登录,用户面板中的密码锁定选项以及对应用程序凭据的访问规则的支持。
Ironic - 裸金属服务
产生能够管理和配置物理机的OpenStack服务和关联的库,并以安全意识和容错的方式进行。
Notes:
支持范围内省的规则,该规则允许每个节点子集具有(并保留)规则,例如不同的硬件交付;
支持硬件退役工作流程,以实现托管云中硬件退役的自动化;
非管理员使用Ironic可以使用多租户概念和其他策略选项;
Ironic及其远程代理之间的交互身份验证得到了补充,从而可以在不受信任的网络上进行部署;
UEFI和设备选择现在可用于软件RAID;
Keystone - 身份校验服务
为了促进API客户端身份验证,服务发现,分布式多租户授权和审核。
Notes:
使用联合身份验证方法时,用于创建应用程序凭据和信任关系的用户体验已得到极大改善。角色分配来自映射的组成员身份的联盟用户将在令牌过期后将这些组成员身份保留为可配置的TTL,在此期间其应用程序凭证将保持有效;
现在,可以通过在Keystone中直接创建联盟用户并将其链接到其身份提供者,而无需依赖于映射API,就可以为联盟用户指定具体的角色分配;
当引导新的Keystone部署时,管理员角色现在默认设置为“ immutable”选项,这可以防止意外删除或修改它,除非有意删除了“ immutable”选项;
Keystonemiddleware不再支持Identity v2.0 API,该身份在先前的发行周期中已从keystone中删除;
恢复资源驱动程序的可配置性,因此,如果内置sql驱动程序不满足业务要求,现在可以创建自定义资源驱动程序;
Kolla - OpenStack的容器化部署
提供用于生产OpenStack云的生产就绪容器和部署工具。
Notes:
现在,所有镜像,脚本和Ansible剧本都使用Python 3,并且对Python 2的支持也已删除;
添加了对CentOS 8主机和镜像的支持;
添加了对后端API服务的TLS加密的初始支持,从而提供了API流量的端到端加密。目前支持Keystone;
增加了对开放虚拟网络(OVN)部署以及与Neutron集成的支持;
增加了对部署Zun CNI(容器网络接口)组件的支持,从而使带有容器的Docker可以支持Zun capsules(pods);
添加了对Elasticsearch Curator的支持,以帮助管理集群日志数据;
添加了将Mellanox网络设备与Neutron一起使用所必需的组件;
简化了外部Ceph集成的配置,可以轻松地从Ceph-Ansible部署的Ceph集群过渡到在OpenStack中启用它;
Kuryr - OpenStack与容器网络之间的桥梁
容器框架网络模型与OpenStack网络抽象之间的桥梁。
Notes:
支持IPv6;
DPDK支持嵌套设置以及其他各种与DPDK和SR-IOV相关功能的改进;
与NetworkPolicy支持相关的多个修复程序;
Manila - 共享文件系统服务
为多租户云环境中的共享文件系统的管理提供一套服务,类似于OpenStack通过Cinder项目提供基于块的存储管理的方式。
Notes:
共享组已从试验性功能逐渐发展成熟。从API版本2.55开始,不再需要X-OpenStack-Manila-API-Experimental标头来创建/更新/删除共享组类型,组规范,组配额和共享组本身;
兼容时,可以从跨存储池的快照创建共享。这项新功能可以通过分散先前局限于托管快照的后端的工作负载来更好地利用后端资源;
引入了新的配额控制机制,以限制项目及其用户可创建的共享副本的数量和大小;
现在可以按时间间隔查询异步用户消息;
Neutron - 网络服务
实施服务和相关的库,以提供按需,可伸缩且与技术无关的网络抽象。
Notes:
OVN驱动程序现在已合并到Neutron存储库中,并且是核心 Neutron ML2 drivers之一,例如linuxbridge或openvswitch。与openvswitch驱动程序相比,OVN驱动程序的优点包括具有分布式SNAT流量的DVR,分布式DHCP以及无需网络节点即可运行的可能性。当然其他ML2驱动程序仍然受到完全支持。当前默认代理还是openvswitch,但计划是使用OVN驱动程序成为将来的默认选择;
添加了对无状态安全组的支持。用户现在可以将安全组集创建为无状态,这意味着conntrack将不会用于该组中的任何规则。一个端口只能使用无状态或有状态安全组。在某些用例中,无状态安全组将允许操作员选择优化的数据路径性能,而有状态安全组会在系统上施加额外的处理;
已添加用于地址范围和子网池的基于角色的访问控制(RBAC)。地址范围和子通常由运营商定义并向用户公开。此更改使操作员可以在地址范围和子网池上使用更精细的访问控制;
Neutron API中添加了对创建过程中标记资源的支持。用户现在可以设置资源标签,例如直接在POST请求中移植端口。这将大大提高kubernetes网络操作的性能。API调用的数量,例如Kuryr已发送给Neutron的邮件大大减少
Nova - 计算服务
实施服务和相关的库以提供对可计算资源(包括裸机,虚拟机和容器)的大规模可扩展的按需自助访问。
Notes:
Nova不再支持Python 2,Python 3.6和3.7则受支持;
支持在Nova cells间进行冷迁移和重新调整虚拟机大小;
支持precaching glance image到计算节点;
支持在创建虚拟机时通过Cyborg来附加加速设备;
进一步支持QOS最小的带宽功能(拓展了以下操作evacuate、live migrate、unshelve);
支持nova-manage placement auditCLI,以查找和清理孤立的资源分配;
Nova API策略引入了具有scope_type功能的新默认角色。这些新更改提高了安全级别和可管理性。在处理具有“读取”和“写入”角色的系统和项目级别令牌的访问权限方面,新策略更加丰富;
从卷启动的虚拟机能够使用Rescue操作,允许将稳定的磁盘设备连接到救援实例;
计算节点支持多种虚拟GPU类型;
移除os-consoles和os-networksREST APIs;
移除nova-dhcpbridge、nova-console、nova-xvpvncproxy服务;
Octavia - 负载均衡服务
以技术不可知的方式提供按需扩展的自助服务访问负载平衡器服务
Notes:
Octavia现在支持在特定可用性区域中部署负载平衡器。这允许将负载平衡功能部署到边缘环境;
Octavia amphora驱动程序已添加了一项技术预览功能,可以改善控制平面的弹性。如果控制平面主机在负载均衡器配置操作期间发生故障,备用控制器可以恢复进行中的配置并完成请求;
用户现在可以指定侦听器和池可接受的TLS密码。这允许负载平衡器强制执行安全合规性要求;
Placement - 放置服务
跟踪云资源清单和使用情况,以帮助其他服务有效地管理和分配其资源
Notes:
通过使分配重试计数可配置,提高了常见的并发分配写入次数(例如繁忙的群集管理程序)情况下的鲁棒性;
Puppet Openstack - 用于openstack部署的puppet模块
用于OpenStack的Puppet模块为OpenStack云部署带来了可扩展且可靠的IT自动化。
Notes:
Puppet OpenStack现在可以使用管理员密码而不是旧版管理员令牌来引导Keystone;
Swift - 对象存储服务
提供用于通过简单的API存储和检索大量数据的软件。专为扩展而设计,针对整个数据集的耐用性,可用性和并发性进行了优化。
Notes:
为Swift容器和对象添加了新的系统命名空间;
使用新的名称空间添加了新的Swift对象版本API;
添加了对使用新API的S3版本控制的支持;
添加了使用SIGUSR1执行“无缝”重载的功能,其中WSGI服务器套接字从不停止接受连接;
Vitrage - 根原因分析服务
为了组织,分析和可视化OpenStack警报和事件,提供有关问题根本原因的见解,并在直接发现问题之前推断出它们的存在。
Notes:
添加了更简洁和友好的Template Version 3语法;
Watcher - 基础架构优化服务
Watcher的目标是为基于多租户OpenStack的云提供灵活,可扩展的资源优化服务。
Notes:
添加了新的webhook API和新的审核类型EVENT。现在,Watcher用户可以使用EVENT类型创建审核,审核将由webhook API触发;
计算(Nova)数据模型的构建将使用决策引擎线程池完成,从而大大减少了构建模型所需的总时间;
Zaqar - 消息服务
以有效,可扩展和高度可用的方式生产提供各种分布式应用程序模式的OpenStack消息服务,并创建和维护相关的Python库和文档。
Notes:
支持使用“ with_count”查询队列以返回队列数量。帮助用户快速获取他们拥有的队列的确切总数;
引入一个名为Topic的新资源,它是SNS的概念。用户可以将消息发送到主题,然后订阅者将根据不同的协议(例如,http,电子邮件,短信等)来获取消息;
Zun - 容器服务
提供与各种容器技术集成的OpenStack容器服务,用于管理OpenStack上的应用程序容器。
Notes:
从此版本开始,Zun添加了对CRI兼容运行时的支持。Zun使用CRI运行时来实现胶囊(pod)的概念。因此,用户可以通过CRI运行时使用Zun API在Kata容器中创建Pod。