2025.2 系列发布说明¶
21.0.0¶
序言¶
Kolla Ansible 21.0.0 (Flamingo) 版本专注于加强控制平面、数据库层和可观察性堆栈的运维,同时遵循上游服务退役。主要亮点包括
数据库服务现在默认使用
ProxySQL,MariaDB采用上游healthcheck.sh脚本,通过ProxySQL为所有MariaDB连接启用 TLS,以及Valkey替换Redis。遗留的HAProxy/clustercheck路径和容器已被移除。日志记录和监控经过了全面改造:
Fluentd移至其自己的角色,并直接将日志发送到OpenSearch节点,Prometheus节点导出器从专用角色运行,OpenSearch Dashboards连接到数据节点,而无需中间HAProxy跃点。控制平面服务获得了多项生命周期改进。
Neutron现在镜像上游布局,具有新的维护/RPC 工作器,包装容器管理 OVN 元数据代理 HAProxy 进程,nova-metadata在其自己的容器中运行,Horizon在由HAProxy代理时使用端口8080,并且默认uWSGI提供程序现在涵盖更多服务。工具和可靠性改进:支持的
ansible版本窗口为 11–12,主机引导任务已移至ansible-collection-kolla,企业 Linux 主机上的 CA 捆绑信任路径已对齐,mod_oidc获得了模板化的错误页面,并且着陆了几个 HA 修复(Let’s Encrypt ACME 清理、Horizon memcached 弹性、RabbitMQ 单节点升级和ProxySQL路由改进)。由于
ironic-inspector在上游已退役,Kolla Ansible 现在提供ironic-pxe-filter服务,以涵盖裸机 PXE 过滤,并移除其他未使用的集成,例如Venus和VMware驱动程序。
新特性¶
添加了 Keystone mod_auth_openidc 集成的旋钮:通过
OIDCStateTimeout调整超时管理器,并在{{ node_custom_config }}/keystone/federation/modoidc-error-page.html提供自定义错误页面。
只要启用 MariaDB,ProxySQL 就会自动启用,并且容器健康检查现在使用上游 healthcheck.sh 脚本,而不是
clustercheck。
Fluentd 现在直接将日志发送到 OpenSearch 节点 IP,而不是使用负载均衡器。此更改可减少高日志量带来的负载均衡器开销。OpenSearch 的负载均衡器仍然存在,因为它仍然被 OpenSearch Dashboards 使用。Fluentd 继续处理节点可用性,通过轮询自动将日志分发到可用节点,即使单个 OpenSearch 节点不可用也能确保日志传递。
添加了可选的
ironic-pxe-filter服务,由enable_ironic_pxe_filter控制。这与独立的 inspector 保持一致。上游目前将 PXE 过滤器归类为实验性的。
为 neutron-ovn-metdata-agent 实现
neutron_agents_wrappers。这允许转发 ml2/ovn 设置中元数据请求的 haproxy 进程在单独的容器中生成。
OVN 容器镜像(
ovn-nb-db、ovn-northd和ovn-sb-db)现在默认具有环境变量,可以方便操作员运行ovn-nbctl和ovn-sbctl命令。
添加了 Valkey 角色和 Sentinel,以便部署使用 Valkey 而不是 Redis,而无需更改协调端点。
通过将
prometheus_node_exporter和prometheus_cadvisor服务分离到新的prometheus-node-exporters角色,提高了 Prometheus 部署的性能。
在使用 ProxySQL 时,已为 MariaDB 连接启用 TLS 支持。
bootstrap-servers现在始终使用系统 Python 解释器,通过auto_silent自动检测。octavia-certificates现在使用与运行kolla-ansible命令的 Python 解释器相同的 Python 解释器。
默认情况下,所有
uWSGI服务都启用了 HTTP 分块输入。
添加了使用 uWSGI(不使用 Apache+mod_wsgi)运行以下服务的支持,默认情况下已启用。要禁用它,请将 <service>_wsgi_provider 设置为
apache(默认值为uwsgi)服务
变量
Aodh
aodh_wsgi_provider
Gnocchi
gnocchi_wsgi_provider
Heat
heat_wsgi_provider
Horizon
horizon_wsgi_provider
Ironic
ironic_wsgi_provider
Keystone
keystone_wsgi_provider
Masakari
masakari_wsgi_provider
Octavia
octavia_wsgi_provider
升级说明¶
受支持的 Ansible 最低版本现在是
11(ansible-core 2.18),最高版本是12(ansible-core 2.19)。
在 EL 系统上,haproxy 和 rabbitmq 默认受信任的 CA 存储路径已更改为
ca-bundle.crt,而不是ca-bundle.trust.crt。
cron 任务现在位于自己的 Ansible 角色中,而不是在
common内部发送。
部署现在在
ansible/roles/keystone/templates/modoidc-error-page.html.j2处提供默认模板,以处理联合身份验证错误。操作员可以覆盖整个模板,或通过keystone_federation_oidc_error_page_retry_login_delay_milliseconds调整重定向延迟。默认重定向延迟为 5 秒。
不再支持 HAProxy +
clustercheck后端用于 MariaDB。运行kolla-ansible upgrade现在部署 ProxySQL 并自动删除旧的clustercheck容器。
由于上游服务已退役,因此不再支持部署
ironic-inspector。剩余变量和工件已重命名以保持一致性:ironic_inspector_kernel_cmdline_extras变为ironic_kernel_cmdline_extras,ironic_inspector_pxe_filter变为ironic_pxe_filter,inspector.ipxe变为ipa.ipxe。
bifrost也移除了其遗留的 inspector 集成,因此已删除bifrost_enable_ironic_inspector选项。
neutron_legacy_iptables及其处理已被删除。
不再支持部署
Venus容器镜像。
Nova、Cinder 和 Neutron 中的
VMware驱动程序不再部署。上游项目移除了集成,并且第三方库不再维护。
fluentd现在有自己的 Ansible 角色,而不是从common角色部署。
当使用 HAProxy 时,
Horizon默认端口 (80/443) 已更改为8080,而旧默认值已保留用于使用enable_haproxy设置为no的开发环境。
现在默认启用 Neutron 代理包装器。包装容器重新启动 DHCP、L3 和相关代理,而无需重新生成主服务容器,从而减少升级和重新启动期间的数据平面中断。需要以前行为的操作员可以将
neutron_agents_wrappers设置为"no"在/etc/kolla/globals.yml中。
Neutron现在在 uWSGI 下运行其 API 工作器,并将辅助进程移动到专用容器中,与上游部署模型匹配。TLS 直接在 uWSGI 上终止,因此移除了neutron-tls-proxy服务。此更改引入的新容器包括neutron-ovn-maintenance-workerneutron-rpc-serverneutron-periodic-workers
OpenSearch Dashboards 现在直接连接到 OpenSearch 节点,而不是通过 HAProxy 端点。这不应产生任何用户可见的影响。
已移除对 Linux Bridge 机制驱动程序的支持。该驱动程序已从 neutron 中移除。
Redis 已被 Valkey 替换。在运行
kolla-ansible upgrade之前,将enable_redis: "no"和enable_valkey: "yes"设置在globals.yml中。升级 playbook 会自动使用临时端口将 Redis 数据迁移到 Valkey,然后切换回默认值。
使用基于文件的外部证书和 Let’s Encrypt 用于内部证书(单独的 VIP)的部署默认使用 Let’s Encrypt 管理外部证书。要保留基于文件的外部证书,请设置
letsencrypt_external_cert_server: ""。
安全问题¶
通过单个前端拒绝访问 /server-status。 LP#2121626
错误修复¶
修复了错误 LP#2118452,该错误阻止了 RabbitMQ 从版本 3.13 升级到 4.1,即使它受支持。
修复了
ovs-dpdk角色中处理程序调用失败的问题。 LP#2088197
修复了 haproxy 配置,这些配置即使在禁用 Let’s Encrypt 支持时,也会继续呈现
acme_client_back后端和path_reg ^/.well-known/acme-challenge/.+ACL。LP#2097452
修复了一个问题,当 Memcached 节点之一不可用时,Horizon 返回 HTTP 500 错误,方法是将缓存后端中的
ignore_exc设置为True。 LP#2106557
在使用外部 rabbitmq 的 kolla-toolbox 配置中,会生成不必要的“逗号”,导致容器无法启动。LP#2111267
修复了一个问题,如果定义了 vendordata.json,它不会被复制到 nova-metadata 目录。LP#2111328
单节点 RabbitMQ 升级不再因不受支持的
drain命令而失败;playbook 现在在这种情况下调用stop_app。LP#2111916
通过为每个 MariaDB 用户设置
default_hostgroup并添加基于用户的规则以及基于模式的规则来改进 ProxySQL 路由。在选择模式之前运行的语句(例如SET AUTOCOMMIT或ROLLBACK)现在将进入有效的 hostgroup,而不是针对NULL后端失败。LP#2112339
修复了 Let’s Encrypt 角色中的证书脚本渲染。LP#2115230
修复了当网络节点与控制器分离时后端 TLS 配置的问题。 LP#2117084
移除了触发 nova_libvirt 和 ovn_sb_db_relay 容器重新启动的处理器,现在这些服务的重新启动由 service-check-containers 角色控制。LP#2123946。
修复了一个问题,导致 etcd 后端 TLS 证书未被模板化,因为
kolla_copy_backend_tls_files变量由于etcd_enable_tls_backend变量未定义而评估为 false。
修复了开发模式下 Cyborg 的部署。LP#2030849
移除文档中对 EXTRA_OPTS 的引用。
修复了一个错误,当尝试通过 Horizon 用户界面上传图像时,CORS 可能会被阻止。
修复了一个错误,Nova 使用的 Cinder 端点由于使用了无效选项而无法被覆盖。LP#2115064
修复了当在
wsgi-keystone.conf中将OIDCXForwardedHeaders选项设置为空字符串时,Keystone 无法启动的错误。LP#2119344
修复了 RabbitMQ 版本检查,该检查总是会被跳过。LP#2102662
修复了一个错误,K-A 可能会因为尝试将某些主机的后端 TLS 证书复制到容器而导致服务部署失败,而这些主机和容器都不属于后端 TLS,并且没有要复制的证书。
修复了 Fluentd 配置文件模板,以避免在未设置可选参数时生成不必要的空行。
防止在
nova_libvirt容器镜像部署和升级期间发生意外的降级。添加了一个nova_libvirt版本检查,该检查在第一个计算主机上一次性解析目标镜像摘要,并且仅在运行容器摘要与目标不同的超visor 上运行。
将修改主机配置的任务从 kolla-ansible role common 移动到 a-c-k,因为它们只需要在主机引导时运行一次,并且与通用服务没有强关联。
添加了对
octavia_notification_topics的缺失覆盖,以便操作员可以为 Octavia 添加自己的通知主题。默认情况下,当启用 ceilometer 时,它会将通知发送到 ceilometer。
允许操作员在
kolla-ansible post-deploy的情况下,在部署节点上无需提升权限即可运行,只要该用户对node_config具有写入权限即可。
恢复用于外部证书的默认 Let’s Encrypt ACME 服务器,以便启用
enable_letsencrypt再次开箱即用,而无需显式设置letsencrypt_external_cert_server。默认值为https://acme-v02.api.letsencrypt.org/directory。