2025.2 系列发布说明

21.0.0

序言

Kolla Ansible 21.0.0 (Flamingo) 版本专注于加强控制平面、数据库层和可观察性堆栈的运维,同时遵循上游服务退役。主要亮点包括

  • 数据库服务现在默认使用 ProxySQLMariaDB 采用上游 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 过滤,并移除其他未使用的集成,例如 VenusVMware 驱动程序。

新特性

  • 添加了 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-dbovn-northdovn-sb-db)现在默认具有环境变量,可以方便操作员运行 ovn-nbctlovn-sbctl 命令。

  • 添加了 Valkey 角色和 Sentinel,以便部署使用 Valkey 而不是 Redis,而无需更改协调端点。

  • 通过将 prometheus_node_exporterprometheus_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_extrasironic_inspector_pxe_filter 变为 ironic_pxe_filterinspector.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-worker

    • neutron-rpc-server

    • neutron-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 设置为 TrueLP#2106557

  • 在使用外部 rabbitmq 的 kolla-toolbox 配置中,会生成不必要的“逗号”,导致容器无法启动。LP#2111267

  • 修复了一个问题,如果定义了 vendordata.json,它不会被复制到 nova-metadata 目录。LP#2111328

  • 单节点 RabbitMQ 升级不再因不受支持的 drain 命令而失败;playbook 现在在这种情况下调用 stop_appLP#2111916

  • 通过为每个 MariaDB 用户设置 default_hostgroup 并添加基于用户的规则以及基于模式的规则来改进 ProxySQL 路由。在选择模式之前运行的语句(例如 SET AUTOCOMMITROLLBACK)现在将进入有效的 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