Xena 系列发布说明¶
13.9.0-24¶
新特性¶
添加了两个新标志来改变 RabbitMQ 中的行为:* rabbitmq_message_ttl_ms,它允许您为消息设置 TTL。* rabbitmq_queue_expiry_ms,它允许您为队列设置到期时间。有关两者的更多信息,请参见 https://rabbitmq.cn/ttl.html。
升级说明¶
现在
ironic_tftp服务不再绑定到 0.0.0.0,默认情况下它使用api_interface的 IP 地址。要恢复到以前的行为,请在globals.yml中设置ironic_tftp_interface_address: 0.0.0.0。
Influxdb 变量
infuxdb_internal_endpoint已修复为influxdb_internal_endpoint。操作员可能需要检查相关变量。
安全问题¶
kolla-genpwd、kolla-mergepwd、kolla-readpwd 和 kolla-writepwd 命令现在会创建或使用正确的权限更新 passwords.yml。它们还会显示有关权限不正确的警告消息。
默认情况下限制对通过 HAProxy 在公共端点暴露的 http Openstack 服务 /server-status 的访问。修复了 Ubuntu/Debian 安装的问题。RockyLinux/CentOS 不受影响。 LP#1996913
错误修复¶
当
kolla_externally_managed_cert设置为true时,RabbitMQ 的预检查会错误地失败。LP#1999081
修复在配置文件准备好之前创建 sasl 帐户。LP#2015589
修复了当 Kolla 将 producer 任务设置为 None 时的问题,这禁用了所有 designate producer 任务。 LP#1879557
现在自动完成使用 etcd3gw 的所有 Nova 和 Cinder 服务的服务用户令牌的配置,以确保块存储卷数据的安全性。
有关更多详细信息,请参见 LP#[2004555]。
修复了
ironic_tftp,它绑定到系统上的所有 ip 地址。添加了ironic_tftp_interface、ironic_tftp_address_family和ironic_tftp_interface_address参数,以设置ironic_tftp服务的地址。 LP#2024664
添加了必要的配置,以使应用程序凭证访问规则能够正常工作。LP#1965111
修复在使用 Ansible 检查模式时部署的问题。LP#2002661
修复了 Keystone 中 Cyborg 服务的错误端点 URL 和服务类型信息。 LP#2020080
在升级或部署 RabbitMQ 时,如果 om_enable_rabbitmq_high_availability 设置为 false,则会清除策略 ha-all。
13.9.0¶
新特性¶
由于 CVE-2022-29404 已修复,Apache HTTP Server 中 LimitRequestBody 指令的默认值已从 0(无限制)更改为 1073741824(1 GiB)。这限制了上传到 Horizon 的图像的大小(例如)。现在可以通过
horizon_httpd_limitrequestbody进行配置。LP#2012588
etcd 现在通过 HAProxy 在
etcd_client_port上内部暴露。
添加了配置选项 rabbitmq_ha_replica_count,以允许更改 RabbitMQ 中镜像队列的复制因子。在未设置该标志的情况下,队列将使用“ha-mode”:”all”在所有节点上进行镜像。请注意,只有当标志 `om_enable_rabbitmq_high_availability` 设置为 True 时,此设置才会生效,因为否则队列不会被镜像。
添加了配置选项 rabbitmq_ha_promote_on_shutdown,它允许更改 RabbitMQ 定义 ha-promote-on-shutdown。默认情况下 ha-promote-on-shutdown 为“when-synced”。我们建议将其更改为“always”。这意味着我们不在乎丢失一些消息,而是优先考虑 rabbitmq 的可用性。这在重启 rabbitmq(例如在升级时)时最相关。请注意,即使将此标志的值设置为默认值“when-synced”,也会在下一次部署时重启 RabbitMQ。有关更多详细信息,请参见:https://rabbitmq.cn/ha.html#cluster-shutdown
通过 tooz 使用 etcd3gw 的服务现在通过 haproxy 使用 etcd。这消除了一个单点故障,我们硬编码了第一个 etcd 主机作为 backend_url。
升级说明¶
ironic.conf现在设置[pxe]\kernel_append_params而不是[pxe]\pxe_append_params,后者已被弃用。如果您正在覆盖旧配置选项,请覆盖新的配置选项。
neutron_tls_proxy和glance_tls_proxy的默认标签已更改为haproxy_tag,因为这两个服务都使用haproxy容器镜像。升级前应更改对这些服务的任何自定义标签覆盖。
错误修复¶
设置 etcd 内部主机名和 cacert,用于启用 TLS 内部的部署。这允许服务在使用 etcd 进行协调的 TLS 内部部署时与 etcd 协同工作。如果没有此修复,协调后端将无法连接到 etcd,并且服务本身将崩溃。
修复 masakari.conf.j2 中缺失的 [taskflow] 部分 LP#1966536
升级 RabbitMQ 时,仅当 rabbitmq_remove_ha_all_policy 设置为 true 时,才会清除策略 ha-all。现在,还必须将 om_enable_rabbitmq_high_availability 设置为 false。
13.8.0¶
新特性¶
添加了标志
om_enable_rabbitmq_high_availablity。将其设置为true将在 RabbitMQ 中启用持久队列和经典镜像队列。请注意,经典队列镜像和瞬态(即非持久)队列在 RabbitMQ 版本 4.0 中已被弃用(发布日期未知)。更改用于经典镜像的模式以排除某些队列类型。此模式为^(?!(amq\\.)|(.*_fanout_)|(reply_)).*。
错误修复¶
修复了
kolla_docker模块,该模块没有考虑到 common_options 参数,因此始终存在模块的默认值。LP#2003079
修复了 baremetal 角色,以避免在类似 Debian 的系统上安装 apparmor 包时出现“apparmor_parser apparmor_parser –version failed”错误。 LP#2004583
显式将
[oslo_messaging_rabbit] heartbeat_in_pthread的值设置为true用于 wsgi 应用程序,或false用于其他应用程序。
修复了在使用
octavia_auto_configure且genconfig命令时 Octavia 配置生成的问题。请注意,即使在生成配置时,Octavia 自动配置也需要访问 OpenStack API 才能工作。有关更多详细信息,请参见 LP#1987299。
修复了一个问题,在检查模式下运行时,某些预检查会失败或无法运行。LP#2002657
13.7.0¶
错误修复¶
修复了
ironic-inspector使用错误的选项来配置用于与 Ironic API 通信的接口的问题。LP#1995246
13.6.0¶
升级说明¶
image_upload_use_cinder_backend = True不再设置为 Cinder 的默认 Ceph RBD 后端,现在使用常见的上游默认值(当前为False)。请参见 LP#1991516
错误修复¶
image_upload_use_cinder_backend = True不再设置为 Cinder 的默认 Ceph RBD 后端。防止了 Cinder 和 Glance 日志中的相关错误和警告。LP#1991516
修复了 Keystone OIDC 无法验证 JWT,因为 Azure auth-oidc 端点缺少密钥。添加了一个包含传递缺失密钥的 JWKS uri 的新变量。LP#1990375
移除了
dhcp-sequential-ip配置选项,以避免在同时检查多个主机时提供相同 IP 地址的竞争条件。
13.5.0¶
错误修复¶
修复了 AlertManager 外部 Web URL 无法配置的问题。引入了一个新变量
prometheus_alertmanager_external_url,用户可以使用它将 web.external-url 设置为公共地址。
在 Fluentd-ElasticSearch 集中日志记录管道长时间中断的情况下,有可能生成足够数量的未发送日志数据,其传输缓冲区的时间超过默认 Fluentd 请求超时时间(默认 5 秒)。默认请求超时值增加到
60s,并使用新参数fluentd_elasticsearch_request_timeout可进行配置。LP#1983031
修复了启用后端 TLS 加密时 Ironic API 健康检查的问题。LP#1990819
修复
ironic-neutron-agent使用错误的选项来配置与 Ironic API 通信的接口的问题。 LP#1990675
13.4.0¶
安全问题¶
Kolla Ansible 以前以非特权 root 用户身份运行 Ironic 的 tftpd。现在,它将显式地使用 nobody 用户。
错误修复¶
修复 1982777。将 multipathd user_friendly_names 设置为“no”,以便 os-brick 能够在线调整卷大小。添加了覆盖 multipathd 配置的能力。 LP#1982777
修复了 bug #1987982。此错误导致在 keystone 升级后数据库 log_bin_trust_function_creators 变量未被重置为“OFF”。
修复了一个问题,即在某些系统上 ping 可能未安装,导致 HAProxy 预检查失败。
如果
ironic_enabled_notification_topics设置为true,则将ironic_notification_level设置为info,以确保 Ironic 实际发送通知。有关详细信息,请参阅 bug 1969826。
13.3.0¶
新特性¶
添加变量以配置是否应将监控服务暴露到外部
enable_grafana_externalenable_kibana_externalenable_prometheus_alertmanager_external
错误修复¶
修复在多区域环境中,Ironic Inspector 在没有本地 Keystone 服务的区域中被配置而没有身份验证的问题。
13.2.0¶
新特性¶
添加了支持,可以使用
prometheus_openstack_exporter_compute_api_version变量配置 OpenStack 导出器用于 Prometheus 的 Openstack Compute API 微版本。默认值为2.1,以在使用最新导出器版本时保持指标不变。
错误修复¶
修复了在重启 kolla-toolbox 容器时 /run/openvswitch 挂载呈指数增长的问题。 LP#1979295
修复了恢复多节点 MariaDB Galera 集群的问题。
将
prometheus_openstack_exporter_timeout增加到 45 秒,以减少在具有大量 OpenStack 资源的部署中出现抓取失败的可能性。 LP#1976629
13.1.0¶
新特性¶
作为 Prometheus 监控堆栈的一部分,部署并配置 prometheus-libvirt-exporter 镜像。
为 Prometheus blackbox 导出器添加
tls_connect模块。这可用于测试 TLS 服务器的连接性。
添加了新的开关来控制 Masakari 监控器的部署。可以通过
enable_masakari_instancemonitor和enable_masakari_hostmonitor独立控制每种类型监控器的部署。默认情况下,当通过enable_masakari启用 Masakari 的部署时,两者都设置为true。
为 ironic-neutron-agent 服务实现容器健康检查。请参阅 蓝图
添加了对 libvirt SASL 身份验证的支持。默认情况下已启用。 LP#1964013
添加了对 Rocky Linux 8 作为宿主机操作系统分发的支持。
已知问题¶
现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。这些日志将不会被新的 logrotate 配置删除,需要手动删除。
升级说明¶
如果未部署 Prometheus,RabbitMQ 的 Prometheus 插件不再默认启用。如果使用外部 Prometheus,则需要启用
rabbitmq_enable_prometheus_plugin以获得旧行为。
添加 libvirt SASL 身份验证需要在
passwords.yml中添加新的密码,即libvirt_sasl_password。可以使用现有的kolla-genpwd和kolla-mergepwd工具生成此密码。
添加 libvirt SASL 身份验证需要同时更新
nova_libvirt和nova_compute容器,使用包含必要的 Cyrus SASL 依赖项的新镜像,以及包含 SASL 凭据的配置。
不再可以覆盖 Monasca Log Metrics 服务的删除,如果尚未在 Wallaby 版本中删除,则会自动删除。运营商有责任删除任何相关的 docker 卷。
更新 node_custom_config 的默认值为 {{ node_config }}/config,在使用 –configdir 指定时。
安全问题¶
显式地从具有 Neutron L3 Agent 的主机的
/etc/sysctl.conf中删除net.ipv4.ip_forwardsysctl。如果没有其他来源提供此 sysctl,则在下次重新启动后它应恢复为默认值 0。这是对先前更改的后续操作,该更改停止设置 sysctl,但使现有系统保留原始值 1。希望更积极地更改值的部署者可以使用 Kolla Ansible 的 Yoga 版本将
neutron_l3_agent_host_ipv4_ip_forward设置为 0。此选项将在未来版本中删除。任何仍然依赖于先前值的部署都可以将neutron_l3_agent_host_ipv4_ip_forward设置为 1。 LP#1945453
修复了一个问题,即 libvirt 的默认配置未对通过内部 API 网络暴露的 TCP 上的 API 使用身份验证。这允许任何访问内部 API 网络的人员对 libvirt 进行读写访问。虽然内部 API 网络通常是可信的,但此网络上的其他服务通常至少需要身份验证。
默认情况下现在已为 libvirt 启用 SASL 身份验证。Kolla Ansible 自 Train 版本以来就支持 libvirt TLS,建议使用它来提供更高层次的安全性。 LP#1964013
错误修复¶
修复了 OIDC 身份验证流程中需要用户进行不必要操作的问题。现在自动重定向到目标 IdP 页面。 LP#930055
删除了
barbican.conf中max_allowed_secret_in_bytes的自定义值。Barbican 中的默认最大大小翻倍,以避免某些证书出现问题。 LP #1957795
修复了使用 Cinder Ceph 支持部署 Zun 的问题。为 Zun 添加了在配置了外部 Ceph 的 Cinder 时访问 Cinder 卷的支持。 LP#1848934
通过自定义 RabbitMQ 的
prometheus.tcp.port来解决端口冲突,从而修复了 outward_rabbitmq 的部署失败。 LP #1885106
在 OpenStack 导出器中使用 Volume V3 API。Volume V2 API 已在 OpenStack Wallaby 中移除。 LP#1938194
修复 grafana 自定义 home dashboard 文件的复制任务。grafana home dashboard 文件的复制任务需要以特权模式运行,否则会发生权限被拒绝的错误。 LP#[1947710]
通过将
ovn_sb_connection添加到octavia.conf来修复 Octavia 的“连接被拒绝”错误。 LP#195011
Ironic API 和 Ironic Inspector API 使用单独的策略文件。Ironic 角色已更新,能够分别处理这两个策略。
即使一个操作失败,也要继续运行 Elasticsearch curator 中的所有操作。 LP#1954720
修复 Placement 没有 logrotate 配置 LP#1954723
修复 Nova 在自定义
migration_interface时调整大小失败的问题。 LP#1956976
修复了当
kolla_enable_tls_external为 true 时无法连接到 zun 控制台的问题。当kolla_enable_tls_external为 true 时,访问任何 zun 容器的控制台都会失败。此修复根据kolla_enable_tls_external的值在zun.conf中设置 wsproxybase_url的协议。 LP#1957117
修复了“注册 OpenStack 中的身份提供程序”任务,该任务在 openstack 命令中缺少一个“=”号,导致任务无法使用 Keystone 注册 IDP。 LP#1959022
修复 Glance 与 Cinder iSCSI 后端由于缺少 lock_path 设置而失败的问题。 LP#1959663
修复 openvswitch 和 prometheus 服务缺少 logrotate 配置的问题。 LP#1961795
修复升级时 Ironic 的 PXE 组件未更新的问题。 LP#1963752
修复在 CloudKitty 中使用 Prometheus 收集器时 Prometheus HTTP API URL 的配置。 LP#1961615
修复了一个 Prometheus 抓取的问题,当目标的 Ansible 库存主机名 (
inventory_hostname) 无法解析为可访问的 IP 地址时,会出现该问题。恢复到以前的行为,即使用 IP 地址与目标通信。这种副作用是目标实例将再次使用 IP 地址而不是主机名进行标记。 LP#1955563
修复在 Debuntu 二进制版本中 aodh 服务的 apache wsgi 配置。 LP#1953059
修复 baremetal 角色以避免错误“无法删除“libvirtd””。现在该角色会创建符号链接 /etc/apparmor.d/disable/usr.sbin.libvirtd。 LP#1960302
现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。标准化使用 logrotate 进行日志轮转和删除。
修复了使用基于 OIDC 的 Keystone 联合与具有不同响应类型的 IDP 时的问题。现在可以使用新的变量
keystone_federation_oidc_response_type来设置此项。 LP#1959781
添加了通过 kolla 配置 rabbitmq 集群接口的选项 LP#1900160 <https://bugs.launchpad.net/kolla-ansible/+bug/1900160>
修复了在使用 Jinja2 3.1.0 时出现的问题。
修复启用 libvirt SASL 时 Masakari 实例监控出现的问题。libvirt SASL 在 Kolla Ansible 的最近一次更改中默认已启用。 LP#1965754
修复了配置选项,该选项设置了 Neutron 发送请求到 Placement 使用的端点类型。 LP#1960503
修复了 Node Exporter 的配置问题,导致主机的所有文件系统指标都相同。 LP#1961438
修复了一个问题,即任何 Nova 计算服务未能注册自身,将导致只有查询 nova API 的主机失败。现在,只有未能注册的主机会使 Kolla Ansible 运行失败。或者,要使单元中的所有主机在任何计算服务未能注册时都失败,请将
nova_compute_registration_fatal设置为true。 LP#1940119
prometheus openstack 导出器现在位于 haproxy 之后,在 prometheus 数据库中提供唯一的时序。同时,确保在任何给定时间间隔内只有一个导出器查询 openstack API。以前的行为是每个 openstack 导出器都在同一时间被抓取。这导致每个导出器同时查询 openstack API,引入了不必要的负载以及由于实例标签对每个导出器都是唯一的,导致 prometheus 数据库中的重复时序。
修复 RabbitMQ 被配置为镜像所有服务的经典瞬态队列的问题。根据 RabbitMQ 文档,这不是受支持的配置,并导致了许多错误报告。为了避免对 RabbitMQ 集群进行意外更改,有必要将
rabbitmq_remove_ha_all_policy设置为yes以应用此修复。此变量将在 Yoga 版本中删除。 LP#1954925
修复 Cinder 升级时 Cinder 服务仍然固定到先前版本 RPC 和对象版本的问题。 LP#1954932
13.0.1¶
安全问题¶
添加了针对 Elasticsearch 中 Apache Log4j2 远程代码执行 (RCE) 漏洞 - CVE-2021-44228 的缓解措施。
错误修复¶
修复了
cyborg.conf的生成。 LP#1941704
仅在 ovn-controller 主机上运行
configure ovn in ovsdb任务。该任务将在没有隧道接口的主机(如 controller 节点)上失败。 LP#1953367
修复 Nova API 日志写入以 -wsgi.log 结尾的文件的问题,这影响了 Fluentd 管道中这些日志的处理。 LP#1950185
在较慢的节点上,grafana 的初始启动可能会遇到超时失败,因为设置数据库的迁移需要比预期更长的时间。已通过增加默认超时来解决此问题。可以通过新的参数 grafana_start_first_node_delay 和 grafana_start_first_node_retries 来更改超时设置,用于 grafana 角色。 LP#1769962
其他说明¶
容器
ironic-dnsmasq现在创建dnsmasq.log,就像容器neutron-dhcp-agent一样。对于两个日志文件,可以通过openstack_logging_debug或ironic_logging_debug或neutron_logging_debug变量全局提高详细程度。
13.0.0¶
新特性¶
添加了在 Prometheus 中抓取 Alertmanager 指标的支持。
添加了将 Fluentd 指标集成到 Prometheus 的支持。默认情况下,当 Prometheus 启用时,现在已启用此功能。可以通过 enable_prometheus_fluentd_integration 标志覆盖此行为。默认情况下,该集成提供与 Fluentd 处理日志相关的指标。这些指标可用于监控 Fluentd 服务的状态。还可以通过自定义 Fluentd 配置从日志中提取其他指标。
添加了配置参数
haproxy_nova_spicehtml5_proxy_tunnel_timeout以配置 spicehtml5proxy haproxy 服务的Tunnel TimeOut指令。
添加了对 CentOS Stream 8 作为宿主机操作系统和基础容器镜像的支持。这是 Wallaby 版本中唯一受支持的 CentOS 发行版。Victoria 版本将支持 CentOS Linux 8 和 CentOS Stream 8 宿主机和镜像,并提供迁移路径。
添加了对与 Ceph RadosGW 集成的支持。
支持 Debian Bullseye (11) 作为宿主机发行版。
添加了一个新的变量
disable_firewall,默认值为true。如果设置为false,则主机防火墙在kolla-ansible bootstrap-servers期间将不会被禁用。
默认情况下禁用 Kibana 中的使用情况收集(遥测)。用户仍然可以通过 GUI 启用它。
在
kolla_docker模块中添加了设置 Docker 容器的CgroupnsMode(通过cgroupns_mode模块参数)的功能。需要 Docker 20.10。请注意,在 20.10 之前,所有容器的行为都好像以模式host运行一样。
添加了一个新的 haproxy 配置文件变量,
haproxy_host_ipv4_tcp_retries2,允许用户修改此内核选项。此选项设置在建立连接状态下 TCP 数据包重传的最大次数,之后放弃。默认内核值为 15,对应于大约 13 到 30 分钟的持续时间,具体取决于重传超时。可以使用此变量来缓解 VIP 故障转移时连接卡住的问题,有关详细信息,请参阅 bug 1917068。
添加了一个
kolla-ansible gather-facts命令,可用于收集 Ansible 主机事实。
haproxy-config 角色现在允许用户为 haproxy 的后端设置权重。可以通过在库存文件中设置主机变量
haproxy_{{ service }}_weight来实现,该变量的值为 1 到 256 之间的任何整数,权重越高,负载越高。可以为每个{{ service }}设置。如果未指定主机变量,则最终 haproxy 配置中不会渲染后端的权重。
添加了两个新的变量
service_images_pull_retries和service_images_pull_delay,它们控制镜像拉取任务的行为。如果您的注册表不是 100% 可靠(通常由于负载),这些变量很有用。默认值设置为 3 次重试和 5 秒延迟,以确保更好的默认体验(这些实际上是启用任务重试时的 Ansible 默认值)。
实现了 memcached 服务的容器健康检查。请参阅 蓝图
实现了 rabbitmq 服务的容器健康检查。请参阅 蓝图
为以下服务实现了容器健康检查:
ceilometer、kafka、keystone-fernet、kuryr、mistral、nova-spicehtml5proxy、qdrouterd、zun。请参阅 蓝图
为
kolla-ansible命令添加了两个新参数,--check和--diff。它们直接传递给ansible-playbook。
过渡到在使用 Keystone 管理员用户身份验证时使用系统范围的令牌。这是能够启用服务中更新的 oslo 策略,从而可以对系统级资源和 API 进行更细粒度的访问控制的必要步骤。从 Queens 开始,管理员角色被分配给具有系统范围以及管理员项目中的管理员用户。
添加了使用和启用 neutron 数据包日志记录框架的能力。
添加了覆盖自动检测 fluentd_version 和 fluentd_binary 的能力。现在可以将它们定义为额外的变量。这消除了配置生成对配置 docker 的依赖。
添加了对在
kolla-toolbox容器中覆盖 rabbitmq 配置(erl_inetrc和rabbitmq-env.conf)的支持。
OVN 部署现在将配置
external_ids:ovn-chassis-mac-mappings以使 DVR 在 VLAN 租户网络上工作。
更改 Prometheus 中的目标名称为用户友好的基于 Ansible 库存的值。
添加了一个新的变量
prometheus_cadvisor_cmdline_extras,用于将额外的运行时选项传递给 cAdvisor。默认情况下,系统 cgroups 的指标被禁用,并且容器标签不会暴露给 Prometheus。通常不应导出的昂贵指标也被强制禁用 - 请参阅 https://github.com/google/cadvisor/blob/2025.2/docs/runtime_options.md#metrics 以获取列表。这些默认设置通过 cAdvisor 和 Prometheus 节省了资源使用量。
由于删除了 Monasca Grafana 分支,Monasca 数据源现在配置在 vanilla Grafana 中。
添加了对通过
kolla_ansible_setup_filter和kolla_ansible_setup_gather_subset分别配置setup模块的filter和gather_subset参数的支持。这些可用于减少事实的数量,这会对 Ansible 的性能产生重大影响。
添加了功能,允许将为 Kolla Ansible 生成的密码存储在 Hashicorp Vault 中。使用新的 CLI 命令 kolla-readpwd 和 kolla-writepwd 将 Kolla Ansible 密码读写到配置的 Hashicorp Vault kv secrets 引擎。
添加了“manila_cephfs_filesystem_name”变量以支持多 fs Ceph Pacific+ 部署。
现在可以向
kolla-ansible传递多个库存。为此,应多次指定--inventory。
添加了新的变量
ironic_enable_keystone_integration。如果我们需要连接到现有的 keystone(而不是同时安装它),它有助于将 keystone 连接信息添加到ironic.conf中。
升级说明¶
支持的 Ansible 最低版本现在是
2.10,最高版本是4(ansible-core 2.11)。
更新了 Kolla Ansible 中所有对 Ansible facts 的引用,从使用单个 fact 变量到使用
ansible_facts字典中的项目。这允许用户禁用 Ansible 配置中的 fact 变量注入,这可能会提高一些性能。检查本地配置文件中引用的 facts,并在禁用 fact 变量注入之前更新为使用ansible_facts。
rp_filter不再由 Kolla Ansible 默认设置。用户可能希望从kolla_sysctl_conf_path(默认情况下为/etc/sysctl.conf)中删除相关的设置。
Kolla Ansible 现在默认将
docker_registry_insecure设置为false。如果您依赖于以前的行为,请将其重新打开,但请注意相关安全说明以及链接的错误报告中讨论的后果。 LP#1940547
为了修复 LP#1941940,
nova_libvirt_dimensions现在默认情况下与nova_libvirt_default_dimensions组合。请在自定义该变量时考虑这一点。
将最低要求的 Docker 版本提高到 18.09,将最低要求的 Docker Python SDK 版本提高到 3.4.1。这两个版本都在预检查中进行检查。
CentOS Linux 8 不再支持作为宿主机操作系统或基础容器镜像。CentOS 用户应迁移到 CentOS Stream 8。Victoria 版本将支持 CentOS Linux 8 和 CentOS Stream 8 宿主机和镜像,并提供迁移路径。
将默认镜像类型更新为
source。如果希望部署binary类型镜像的用户应在globals.yml中将kolla_install_type设置为binary。此更改是为了反映源镜像经过更彻底的测试,并且我们(作为 OpenStack 社区)可以更好地控制它们这一事实。
添加了一个新的标志
docker_disable_ip_forward,它默认为docker_disable_default_iptables_rules,用于禁用 docker 的ip-forward选项,该选项使 docker 将 sysctlnet.ipv4.ip_forward设置为1。默认情况下,docker_disable_default_iptables_rules为true,在这种情况下,docker 的ip-forward选项被disabled。对于现有主机,当通过
kolla-ansible bootstrap-servers配置 Docker 时,此配置更改将被应用。Docker 以非持久的方式更改 sysctl,因此如果未在其他地方配置,它将在重启后恢复到默认值0。这不应引起问题,因为 Kolla Ansible 会在必要时应用 sysctl。操作员可能希望主动执行重启,或通过其他方式应用默认值。
enable_host_ntp变量已根据弃用流程删除。
在升级之前,需要在 inventory 文件中添加一个新的组
loadbalancer。loadbalancer组是haproxy组的替代品。
现在,无论是否启用了 iPXE,Ironic conductor 都会始终部署 HTTP 服务器,而之前仅在启用 iPXE 时才部署。
在 Xena 版本中,Ironic 移除了 iSCSI 驱动程序。推荐的部署驱动程序是
direct,它使用 HTTP 传输磁盘镜像。这需要一个 HTTP 服务器,最简单的选择是使用之前在设置enable_ironic_ipxe为true时部署的 HTTP 服务器。
haproxy 角色中不再支持
haproxy_single_service_listen.cfg.j2模板,并已将其删除。
将
mariadb_clustercheck_tag和mariabackup_tag的默认值从openstack_tag更改为mariadb_tag。这允许一个变量为所有 MariaDB 镜像设置标签。
将
monasca_ntp_server的默认值从external_ntp_servers[0]更改为0.pool.ntp.org。这是由于移除了external_ntp_servers变量,作为 Chrony 部署移除的一部分。
修改了
ceph_nova_user的默认值,从nova变为ceph_cinder_user的值,与ceph_nova_keyring的默认值一致。如果已经覆盖ceph_nova_keyring以使用 Nova 和 Cinder 之间的单独 keyring 的用户,还应覆盖ceph_nova_user以匹配 Nova keyring。 LP#1934145
更改 Prometheus 目标命名。这使得它们的名称更易于使用,但也创建了一组全新的时间序列数据。新的目标名称来自 Ansible inventory,并去除了导出器端口号。任何依赖于目标特定、硬编码命名模式的 Grafana 仪表板在升级后将停止显示指标。
cAdvisor 现在默认导出的 Prometheus 指标和标签数量减少。这意味着相应的时序数据将不再创建。如果现有设置依赖于这些数据,例如用于可视化或告警,可以在升级之前使用新的变量
prometheus_cadvisor_cmdline_extras显式启用它们。有关可能的选项,请参阅:https://github.com/google/cadvisor/blob/2025.2/docs/runtime_options.md#metrics。
修改了
rabbitmq_server_additional_erl_args的默认值,从空字符串变为+S 2:2 +sbwt none +sbwtdcpu none +sbwtdio none。
已移除 chrony 部署的支持。
Monasca Grafana 服务的容器和配置将被自动移除。操作员需要移除相关的 HAProxy 配置、Monasca Grafana 数据库和相关的 Docker 卷。
由于上游已停止维护,已移除对 panko 的支持。
移除了对 Prometheus v1 部署的支持。任何先前部署的 Prometheus v1 实例将在升级期间产生冲突。应该手动停止/移除它们,或者通过将
enable_prometheus设置为no来禁用 Prometheus v2 部署。
Rally和tempest项目不是 OpenStack 服务,而是客户端。由于 Xena 周期,它们的镜像和支持已被移除。
移除了
wsrep-notify.sh脚本(在 Wallaby 中已弃用)。
将默认镜像源 (
docker_registry) 切换到quay.io。docker_namespace也更改为openstack.kolla以匹配。这样做是为了改善默认体验,特别是对于中国用户、部署多次的用户以及/或超出用于开发、测试和评估的全合一 (AIO) 环境的用户。请注意,对于多节点和生产部署,仍然建议使用本地 registry,如文档所述。LP#1942134
弃用说明¶
通过 Kolla Ansible 设置
rp_filter已被弃用。
弃用对 NTP 守护程序配置的支持(通过
enable_host_ntp)。将在下一个 Kolla Ansible 版本 (Xena) 中移除。请使用其他方式配置 NTP。
由于缺乏维护,Monasca 的 Grafana 分支已被弃用,并将从 Xena 版本中移除。相反,将提供支持,允许 Monasca 用户迁移到带有 Monasca 数据源的 vanilla Grafana 服务。
弃用对部署
tempest和rally的支持,并将从 Xena 周期中移除。原因是这些不是 OpenStack 云的服务,而是其客户端。
关键问题¶
修复了一个关键的 bug,该 bug 导致使用 libvirtd(默认/常用选择)的 Nova 实例在 libvirtd (
nova_libvirt) 容器停止时(以及因此任何重启 - 无论是手动重启还是通过运行 Kolla Ansible 完成的重启)被杀死。它影响了 CentOS、Ubuntu 和 Debian Buster(不包括 Bullseye)上的 Wallaby+。如果您的部署也受到影响,请阅读引用的 Launchpad bug 报告,评论 #22,了解如何在不冒数据丢失风险的情况下修复它。简而言之:修复需要重新部署,这将触发该 bug,因此首先必须迁移重要的虚拟机,然后才能重新部署空的计算节点。LP#1941706
安全问题¶
此前,Kolla Ansible 默认情况下(如在多个地方记录)将 Docker 配置为配置的 registry 的不安全模式(即,如果未使用默认 registry)。这由
docker_registry_insecure变量控制。如果操作员没有注意到这个小技巧,他们可能会使他们的部署面临潜在的中间人攻击。有关更多讨论,请参阅 bug 报告。LP#1940547
修复了
net.ipv4.ip_forward不被 Kolla Ansible 在默认网络命名空间中启用。它在具有 Neutron L3 Agent 的主机上启用(因此在大多数具有 OVS 和/或 Linux Bridge 的常见设置中,但不是 OVN),并且除非用户有额外的 iptables 规则来避免这种情况,否则允许任何流量被接受进行转发(只要它是可路由的并且通过了其他检查)。建议现有设置的用户重新评估是否需要启用此 sysctl,如果不需要则禁用。Kolla Ansible 将不再尝试设置此 sysctl。Neutron L3 Agent 处理每个管理命名空间的转发启用。
Bug 修复¶
修复了 monasca-thresh 未能正确地将拓扑提交到 Storm。以前的容器在本地模式(在容器内)中运行拓扑,并且未使用 Storm 云。新的容器处理将拓扑提交到 Storm,并处理在配置更改时杀死和替换拓扑。因此,monasca-thresh 容器仅用于提交,并在完成后退出。拓扑的日志现在将在 storm worker-artifact 日志中可用。 LP#1808805
通过默认跳过它来解决
rp_filter设置问题。LP#1837551
修复了一个问题,即容器中的配置可能会变得陈旧。这阻止了具有更新配置的容器重新启动,例如,如果使用了
kolla-ansible genconfig和kolla-ansible deploy-containers命令一起使用。 LP#1848775
chronyd 在服务器重启时崩溃循环 (Debian) LP#1915528
修复了在 Debian/Ubuntu 上启动后配置 Docker 的问题,导致在禁用它们之前创建 iptables 规则。 LP#1923203
修复用户禁用 Octavia 自动配置时 Octavia SSH 密钥复制出现的问题。 LP##1927727
修复了 elasticsearch fluentd 输出在未启用 elasticsearch 时被启用的问题。 LP#1927880
修复了由于缺少 six 而导致 docker python SDK 5.0.0 失败的问题 - 引入了约束以安装低于 5.x 的版本。 LP#1928915
修复了超过 2 个节点的 RabbitMQ 升级随机失败的问题。 LP#1930293。
修复了启用 TLS 时的 Swift 部署。添加了缺少的处理程序并更正了容器名称。 LP#1931097
修复了 keystone_auth 部分中缺失的 region_name。有关详细信息,请参阅 bug 1933025。
修复了当前基于 CentOS 8 的镜像中
iscsid失败的问题,因为 pid 文件被不必要地设置。 LP#1933033
修复了 Debian 主机引导程序未删除冲突软件包的问题。现在它的行为符合文档。
修复了默认 Masakari 主机监控配置,使其与 Kolla Ansible 设置的其他配置一起工作。这设置了
disable_ipmi_check,因为restrict_to_remotes已设置。它防止了主机监控在需要采取行动时发生的TypeError。到目前为止,这不会影响任何功能,因为 Kolla Ansible 不管理 Pacemaker 中的 IPMI 凭据。LP#1933209
修复部署主机上的 timesync 检查问题。请参阅 bug 1933347 以获取详细信息。
修复 horizon 在启用 SSL 时的健康检查。 LP#1933846
修复了在 CentOS 上自定义 Docker Yum 存储库 URL 时,
docker_yum_gpgkey变量未一致使用的错误。 LP#1934913
修复了一个问题,spice 控制台在一段时间后会冻结,请参阅 LP#1938549。
修复 Masakari 在多区域部署中查询 Nova API 在其自身区域中的问题。 LP#1939291
修复从先前版本升级时的 nova 健康检查。 LP#1939679
修复了在禁用 RabbitMQ 且使用 IPv6 时损坏的
kolla-toolbox容器。 LP#1939883
修复了在 Debian Bullseye 上将设备(例如,通过 iSCSI/FC 的卷)附加到实例的问题。LP#1941940
修复了 kolla-toolbox ansible.log 日志记录,用于不同于 ansible 的用户。LP#1942846
修复了
mariadb-clustercheck在没有 HAProxy 时不会运行的问题。 LP#1944114
不再创建 haproxy 和 swift 日志的目录,这些目录是不需要的。 LP#1945070
修复了多节点 MariaDB 部署中可能因 Galera 4 的新行为导致 playbook 执行在 WSREP 检查时失败的问题。 LP#1947485。
修复了禁用 HAProxy 的单节点 MariaDB 部署的问题。有关详细信息,请参阅 bug 1947534。
修复了在部署 MariaDB 节点时使用
--limit时在galera.cnf中生成wsrep_cluster_address的问题。 LP#1947589
修复了 placement 角色中的一个错误,该错误阻止在使用了自定义策略文件时部署 placement 服务。 LP#1948835
修复了错误消息中缺少当前的 Ansible 版本。 LP#1948979
修复 octavia 角色未设置 amphora 网络的 gateway_ip LP#1949260
修复了一个问题,当使用错误的命令名称执行
kolla-ansible时,kolla-ansible会以零退出代码退出。 LP#1929397
修复了 Cyborg 部署中的一个问题。 LP#1937911
移除了 Designate 配置中的已弃用的
export_synchronous选项。
修复了非 HA 部署中 Alertmanger 的潜在问题。在这种情况下,对等八卦协议现在被禁用,Alertmanger 不会尝试与不存在的其他实例形成集群。 LP#1926463
添加了一个新的标志,
docker_disable_ip_forward,它默认为docker_disable_default_iptables_rules,并用于禁用 docker 的ip-forward选项,该选项使 docker 将 sysctlnet.ipv4.ip_forward设置为1。这样做是为了防止创建全转发主机。LP#1931615
修复了在
kolla-ansible bootstrap-servers期间生成/etc/hosts时,一个或多个主机具有api_interface中带有破折号 (-) 的名称的问题。 LP#1927357
修复了 Debian 和 Ubuntu 系统上
ironic_ipxe容器的容器健康检查。LP#1937037
修复了禁用 gnocchi-statsd 时 Gnocchi 的问题。LP#1926914
修复了在使用
kolla_externally_managed_cert时 HAProxy 预检查的问题。
修复了启用 TLS 时的 Magnum 问题。 LP#781062
修复了
neutron-server的config.json中存在的问题,当使用了 VMware 插件代理时。
停止了 Fluentd 在发布到 Elasticsearch 7 bulk API 时的警告消息。
修复了当
neutron_external_interface包含多个接口时,NeutronlinuxbridgeML2 代理出现的问题。 LP#1863935
修复了 Manila 配置中缺少
[glance]部分的问题,这阻止了一些驱动程序运行。
修复了 mariabackup 使用的容器镜像。它使用的是
mariadb镜像,该镜像在 Victoria 中已弃用,并在 Wallaby 中移除。LP#1928129
修复了 Nova 默认配置中 Ceph 的问题,RBD 用户设置为
nova,但仅复制了cinderkeyring。ceph_nova_user的默认值更改为ceph_cinder_user的值,与ceph_nova_keyring的默认值一致。 LP#1934145
修复了在使用自定义服务身份验证项目部署 Octavia 时的问题。如果
octavia_service_auth_project设置为不存在的项目,Octavia 部署将失败。现在会创建该项目。 LP#1922100
修复了一个 Libvirt 密钥未持久保存的问题。目前尚无已知的副作用,但已作为预防措施进行了修复。LP#1821696
修复了一个问题,即 RabbitMQ 消耗大量 CPU,尤其是在多核系统上。RabbitMQ 的默认调优假设 RabbitMQ 正在专用主机上运行,这与典型的 Kolla Ansible 容器设置相反。有关在您的环境中调优 RabbitMQ 的更多详细信息,请参阅:https://rabbitmq.cn/runtime.html#busy-waiting https://rabbitmq.cn/runtime.html#scheduling
移除了与 Wallaby 之前的 Manila 使用子文件夹相关的“fix_cephfs_owner.yaml”。Post-wallaby Manila 现在使用 cephfs 卷,因此此文件不再需要。 LP#1938285 LP#1935784
移除了在 Manila 配置中使用“cephfs_enable_snapshots”的方法,因为此选项已在 Wallaby 版本中从 Manila 中移除。
其他说明¶
由于 Cinder 上游,已删除对使用 ZFSSA 与 Cinder 的支持。ZFSSA 在 Train 中不受支持,并在 Ussuri 中删除。
优化了镜像拉取,以避免循环遍历禁用的服务。