Wallaby 系列发布说明

12.8.0-33

新特性

  • 添加了标志 om_enable_rabbitmq_high_availablity。将其设置为 true 将在 RabbitMQ 中启用持久队列和经典镜像队列。请注意,经典队列镜像和瞬态(即非持久)队列在 RabbitMQ 版本 4.0 中已被弃用(发布日期未知)。更改用于经典镜像的模式以排除某些队列类型。此模式为 ^(?!(amq\\.)|(.*_fanout_)|(reply_)).*

升级说明

  • 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

  • 修复了 baremetal 角色,避免了在 Debian 类系统上安装 apparmor 包时出现的“apparmor_parser apparmor_parser –version failed”错误。 LP#2004583

  • 现在自动完成使用 etcd3gw 的所有 Nova 和 Cinder 服务的服务用户令牌的配置,以确保块存储卷数据的安全性。

    有关更多详细信息,请参见 LP#[2004555]

  • 显式将 [oslo_messaging_rabbit] heartbeat_in_pthread 的值设置为 true 用于 wsgi 应用程序,或 false 用于其他应用程序。

  • 添加了必要的配置,以使应用程序凭证访问规则能够正常工作。LP#1965111

  • 修复了 Keystone 中 Cyborg 服务的错误端点 URL 和服务类型信息。 LP#2020080

  • 修复了 Keystone OIDC 无法验证 JWT,因为 Azure auth-oidc 端点缺少密钥。添加了一个包含传递缺失密钥的 JWKS uri 的新变量。LP#1990375

  • 修复了在使用 octavia_auto_configuregenconfig 命令时 Octavia 配置生成的问题。请注意,即使在生成配置时,Octavia 自动配置也需要访问 OpenStack API 才能工作。有关更多详细信息,请参见 LP#1987299

  • 移除了 dhcp-sequential-ip 配置选项,以避免在同时检查多个主机时提供相同 IP 地址的竞争条件。

  • 修复了 ironic-inspector 使用错误的选项来配置用于与 Ironic API 通信的接口的问题。LP#1995246

  • 修复 ironic-neutron-agent 使用错误的选项来配置与 Ironic API 通信的接口的问题。 LP#1990675

  • 修复了一个问题,在检查模式下运行时,某些预检查会失败或无法运行。LP#2002657

  • 升级 RabbitMQ 时,只有当 rabbitmq_remove_ha_all_policy 设置为 true 时,才会清除策略 ha-all。现在,还必须将 om_enable_rabbitmq_high_availability 设置为 false

12.8.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

12.7.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”。

  • 修复了在禁用 gnocchi-statsd 时 Gnocchi 出现的问题。 LP#1926914

  • 修复了一个问题,即 ping 可能未安装在某些系统上,导致 HAProxy 预检查失败。

  • 如果 ironic_enabled_notification_topics 设置为 true,则将 ironic_notification_level 设置为 info,以确保 Ironic 实际发送通知。

    有关详细信息,请参阅 bug 1969826

12.6.0

新特性

  • 添加变量以配置是否应将监控服务暴露到外部

    • enable_grafana_external

    • enable_kibana_external

    • enable_prometheus_alertmanager_external

错误修复

  • 修复在多区域环境中,Ironic Inspector 在没有本地 Keystone 服务的区域中被配置而没有身份验证的问题。

12.5.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

12.4.0

新特性

  • 为 Prometheus blackbox 导出器添加 tls_connect 模块。这可用于测试 TLS 服务器的连接性。

  • 添加了新的开关来控制 Masakari 监控器的部署。可以通过 enable_masakari_instancemonitorenable_masakari_hostmonitor 独立控制每种类型监控器的部署。默认情况下,当通过 enable_masakari 启用 Masakari 的部署时,两者都设置为 true

  • 为 ironic-neutron-agent 服务实现容器健康检查。请参阅 蓝图

  • 添加了对 libvirt SASL 身份验证的支持。默认情况下已启用。 LP#1964013

已知问题

  • 现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。这些日志将不会被新的 logrotate 配置删除,需要手动删除。

升级说明

  • 如果未部署 Prometheus,RabbitMQ 的 Prometheus 插件不再默认启用。如果使用外部 Prometheus,则需要启用 rabbitmq_enable_prometheus_plugin 以获得旧行为。

  • 现在始终为 Ironic conductor 部署 HTTP 服务器,而之前只有在启用 iPXE 时才部署。

    在 Wallaby 版本中,Ironic 将默认部署驱动程序从 iSCSI 更改为 direct。在 Xena 版本中,Ironic 删除了 iSCSI 驱动程序。推荐的部署驱动程序是 direct,它使用 HTTP 传输磁盘镜像。这需要一个 HTTP 服务器,最简单的选择是之前在启用 enable_ironic_ipxe 时部署的 HTTP 服务器。

  • 添加 libvirt SASL 身份验证需要在 passwords.yml 中添加新的密码,即 libvirt_sasl_password。可以使用现有的 kolla-genpwdkolla-mergepwd 工具生成此密码。

  • 添加 libvirt SASL 身份验证需要同时更新 nova_libvirtnova_compute 容器,使用包含必要的 Cyrus SASL 依赖项的新镜像,以及包含 SASL 凭据的配置。

  • 更新 node_custom_config 的默认值为 {{ node_config }}/config,在使用 –configdir 指定时。

安全问题

  • 显式地从具有 Neutron L3 Agent 的主机的 /etc/sysctl.conf 中删除 net.ipv4.ip_forward sysctl。如果没有其他来源提供此 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.confmax_allowed_secret_in_bytes 的自定义值。Barbican 中的默认最大大小翻倍,以避免某些证书出现问题。 LP #1957795

  • 通过自定义 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 中设置 wsproxy base_url 的协议。 LP#1957117

  • 修复 Glance 与 Cinder iSCSI 后端由于缺少 lock_path 设置而失败的问题。 LP#1959663

  • 修复 openvswitch 和 prometheus 服务缺少 logrotate 配置的问题。 LP#1961795

  • 修复升级时 Ironic 的 PXE 组件未更新的问题。 LP#1963752

  • 修复在 CloudKitty 中使用 Prometheus 收集器时 Prometheus HTTP API URL 的配置。 LP#1961615

  • 修复在 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 设置为 trueLP#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

12.3.0

新特性

  • 添加了一个新的变量 disable_firewall,默认值为 true。如果设置为 false,则主机防火墙在 kolla-ansible bootstrap-servers 期间将不会被禁用。

  • 为 keystone-fernet 容器实现了容器健康检查。请参阅 蓝图

  • 为 memcached 服务实现了容器健康检查。请参阅 蓝图

  • 为 nova-spicehtml5proxy 服务实现了容器健康检查。请参阅 蓝图

  • kolla-ansible 命令添加了两个新参数,--check--diff。它们直接传递给 ansible-playbook

  • 添加了“manila_cephfs_filesystem_name”变量以支持多 fs Ceph Pacific+ 部署。

升级说明

  • 为了修复 LP#1941940,nova_libvirt_dimensions 现在默认情况下与 nova_libvirt_default_dimensions 结合使用。请在自定义该变量时考虑这一点。

安全问题

  • 修复了 net.ipv4.ip_forward 不被 Kolla Ansible 在默认网络命名空间中启用。它在具有 Neutron L3 Agent 的主机上启用(因此在大多数具有 OVS 和/或 Linux Bridge 的常见设置中,但不是 OVN),并且除非用户有额外的 iptables 规则来避免这种情况,否则允许任何流量被接受进行转发(只要它是可路由的并且通过了其他检查)。建议现有设置的用户重新评估是否需要启用此 sysctl,如果不需要则禁用。Kolla Ansible 将不再尝试设置此 sysctl。Neutron L3 Agent 处理每个管理命名空间的转发启用。

  • 添加了针对 Elasticsearch 中 Apache Log4j2 远程代码执行 (RCE) 漏洞 - CVE-2021-44228 的缓解措施。

错误修复

  • 修复了在禁用 RabbitMQ 且使用 IPv6 时损坏的 kolla-toolbox 容器。 LP#1939883

  • 修复了在 Debian Bullseye 上附加设备(例如,通过 iSCSI/FC 的卷)到实例的问题。 LP#1941940

  • 修复了 mariadb-clustercheck 在没有 HAProxy 时不会运行的问题。 LP#1944114

  • 不再创建 haproxy 和 swift 日志的目录,这些目录是不需要的。 LP#1945070

  • 修复了多节点 MariaDB 部署中可能因 Galera 4 的新行为导致 playbook 执行在 WSREP 检查时失败的问题。 LP#1947485

  • 修复了在禁用 HAProxy 的 Debian 上单节点 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

  • 仅在 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

  • 移除了与 Wallaby 之前的 Manila 使用子文件夹相关的“fix_cephfs_owner.yaml”。Post-wallaby Manila 现在使用 cephfs 卷,因此此文件不再需要。 LP#1938285 LP#1935784

  • 移除了在 Manila 配置中使用“cephfs_enable_snapshots”的方法,因为此选项已在 Wallaby 版本中从 Manila 中移除。

12.2.0

新特性

  • 添加了配置参数 haproxy_nova_spicehtml5_proxy_tunnel_timeout 以配置 spicehtml5proxy haproxy 服务的 Tunnel TimeOut 指令。

  • 添加了两个新的变量 service_images_pull_retriesservice_images_pull_delay,它们控制镜像拉取任务的行为。如果您的注册表不是 100% 可靠(通常由于负载),这些变量很有用。默认值设置为 3 次重试和 5 秒延迟,以确保更好的默认体验(这些实际上是启用任务重试时的 Ansible 默认值)。

  • 为 rabbitmq 服务实现了容器健康检查。请参阅 蓝图

  • 添加了对通过 kolla_ansible_setup_filterkolla_ansible_setup_gather_subset 分别配置 setup 模块的 filtergather_subset 参数的支持。这些可用于减少事实的数量,这会对 Ansible 的性能产生重大影响。

  • 添加了新的变量 ironic_enable_keystone_integration。如果我们需要连接到现有的 keystone(而不是同时安装它),它有助于将 keystone 连接信息添加到 ironic.conf 中。

升级说明

  • 更新了 Kolla Ansible 中所有对 Ansible facts 的引用,从使用单个 fact 变量到使用 ansible_facts 字典中的项目。这允许用户禁用 Ansible 配置中的 fact 变量注入,这可能会提高一些性能。检查本地配置文件中引用的 facts,并在禁用 fact 变量注入之前更新为使用 ansible_facts

  • 修改了 ceph_nova_user 的默认值,从 nova 变为 ceph_cinder_user 的值,与 ceph_nova_keyring 的默认值一致。如果已经覆盖 ceph_nova_keyring 以使用 Nova 和 Cinder 之间的单独 keyring 的用户,还应覆盖 ceph_nova_user 以匹配 Nova keyring。 LP#1934145

  • 修改了 rabbitmq_server_additional_erl_args 的默认值,从空字符串变为 +S 2:2 +sbwt none +sbwtdcpu none +sbwtdio none

关键问题

  • 修复了一个关键错误,该错误导致使用 libvirtd(默认/常用选择)的 Nova 实例在 libvirtd 容器停止(以及因此进行的任何重启 - 无论是手动重启还是通过运行 Kolla Ansible 完成的重启)时被杀死。它影响了 CentOS、Ubuntu 和 Debian Buster(不包括 Bullseye)上的 Wallaby+。如果您的部署也受到影响,请阅读引用的 Launchpad 错误报告,评论 #22,了解如何在不冒数据丢失风险的情况下修复它。简而言之:修复需要重新部署,这将触发该错误,因此必须先迁移重要的虚拟机,然后才能重新部署空闲的计算节点。 LP#1941706

错误修复

  • 修复了 monasca-thresh 未能正确地将拓扑提交到 Storm。以前的容器在本地模式(在容器内)中运行拓扑,并且未使用 Storm 云。新的容器处理将拓扑提交到 Storm,并处理在配置更改时杀死和替换拓扑。因此,monasca-thresh 容器仅用于提交,并在完成后退出。拓扑的日志现在将在 storm worker-artifact 日志中可用。 LP#1808805

  • 修复了一个问题,即容器中的配置可能会变得陈旧。这阻止了具有更新配置的容器重新启动,例如,如果使用了 kolla-ansible genconfigkolla-ansible deploy-containers 命令一起使用。 LP#1848775

  • 修复了 elasticsearch fluentd 输出在未启用 elasticsearch 时被启用的问题。 LP#1927880

  • 修复部署主机上的 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

  • 修复了 Cyborg 部署中的一个问题。 LP#1937911

  • 修复了在使用 kolla_externally_managed_cert 时 HAProxy 预检查的问题。

  • 修复了 neutron-serverconfig.json 中存在的问题,当使用了 VMware 插件代理时。

  • 停止了在将消息发布到 Elasticsearch 7 bulk API 时 Fluentd 警告消息。

  • 修复了当 neutron_external_interface 包含多个接口时,Neutron linuxbridge ML2 代理出现的问题。 LP#1863935

  • 修复了 Manila 配置中缺少 [glance] 部分的问题,这阻止了一些驱动程序运行。

  • 修复了 Nova 默认配置中 Ceph 的问题,RBD 用户设置为 nova,但仅复制了 cinder keyring。 ceph_nova_user 的默认值更改为 ceph_cinder_user 的值,与 ceph_nova_keyring 的默认值一致。 LP#1934145

其他说明

  • 优化了镜像拉取,以避免循环遍历禁用的服务。

12.1.0

新特性

  • 添加了一个新的 haproxy 配置文件变量,haproxy_host_ipv4_tcp_retries2,允许用户修改此内核选项。此选项设置在建立连接状态下 TCP 数据包重传的最大次数,之后放弃。默认内核值为 15,对应于大约 13 到 30 分钟的持续时间,具体取决于重传超时。可以使用此变量来缓解 VIP 故障转移时连接卡住的问题,有关详细信息,请参阅 bug 1917068

  • 添加了覆盖自动检测 fluentd_versionfluentd_binary 的能力。现在可以将它们定义为额外的变量。这消除了配置生成对配置 docker 的依赖。

错误修复

  • 修复了 keystone_auth 部分中缺失的 region_name。有关详细信息,请参阅 bug 1933025

  • 修复了默认 Masakari 主机监视器配置,使其能够与其他 Kolla Ansible 设置的配置一起工作。这设置了 disable_ipmi_check,因为 restrict_to_remotes 已设置。它防止了主机监视器需要采取行动时发生的 TypeError。到目前为止,这不会影响任何功能,因为 Kolla Ansible 不在 Pacemaker 中管理 IPMI 凭据。 LP#1933209

  • 修复了一个问题,当使用错误的命令名称执行 kolla-ansible 时,kolla-ansible 会以零退出代码退出。 LP#1929397

  • 修复了 Debian 和 Ubuntu 系统上 ironic_ipxe 容器的容器健康检查。 LP#1937037

  • 修复了启用 TLS 时的 Magnum 问题。 LP#781062

其他说明

  • 由于 Cinder 上游,已删除对使用 ZFSSA 与 Cinder 的支持。ZFSSA 在 Train 中不受支持,并在 Ussuri 中删除。

12.0.0

新特性

  • 添加了 HAcluster Ansible 角色。此角色包含由 Corosync、Pacemaker 和 Pacemaker Remote 组成的 High Availability 集群解决方案。

    HAcluster 作为 Masakari 的辅助角色添加,后者需要它来进行主机监视,从而为故障计算主机上的实例提供 HA。

  • 添加了配置参数 kolla_httpd_timeout,以配置使用 Apache HTTP 服务器处理 HTTP 请求的服务的 TimeOut 指令。默认值为 60 秒,与原始默认值匹配,但您可能希望增加此值。

  • 添加了为 Monasca 在 Kafka 中显式创建可自定义主题的支持。

  • 添加了对 Keystone 中 OpenID Connect 身份验证协议的支持,并启用了 ID 和访问令牌身份验证流程。

  • 添加了对 Masakari 主机监视器的支持。

  • 添加了新的选项 prometheus_openstack_exporter_timeout,以覆盖 openstack 导出器作业的默认 scrape_timeout

  • 添加了 Prometheus 2.x 部署。默认情况下启用此版本,并取代了不兼容的 1.x 版本。可以将变量 prometheus_use_v1 设置为 yes 以保留 1.x 部署及其数据。否则,Prometheus 将使用新卷启动,忽略所有先前收集的指标。

  • 添加了对 GlusterFS NFS Manila 后端的支持。

  • 添加了对 Cloudkitty 使用 Elasticsearch 存储后端的支持:此功能允许将 Cloudkitty 评分文档直接存储在 Elasticsearch 集群中。

    如果您已经有一个用于日志记录的 Elasticsearch 集群,将使用一个新的 cloudkitty 特定索引。这允许您使用 Kibana、Grafana 或其他界面浏览您的评分数据并创建适当的仪表板或构建适当的计费服务。

  • 添加了对使用 Prometheus 作为 Cloudkitty 的提取器/收集器的支持:此功能允许使用 Prometheus 指标作为您的评分来源。使用 Prometheus 允许您直接从 Kolla 提供的导出器(openstack_exporter)或您自己的自定义导出器对几乎任何 OpenStack 对象进行评分。

  • 添加了 octavia-driver-agentOctavia 部署中,以允许其他提供程序,例如 ovn-octavia-provider。当 Octavia 启用且 neutron_plugin_agent 设置为 ovn 时,它会自动部署。也可以通过将 enable_octavia_driver_agent 设置为 yes 来启用它。

  • 添加了对 CentOS Stream 8 作为宿主机操作系统和基础容器镜像的支持。这是 Wallaby 版本中唯一受支持的 CentOS 发行版。Victoria 版本将支持 CentOS Linux 8 和 CentOS Stream 8 宿主机和镜像,并提供迁移路径。

  • 添加了对 cinder_volume 容器的图像转换目录使用 tmpfs 挂载的支持。默认情况下禁用此功能,但可以通过将 cinder_enable_conversion_tmpfs 设置为 true 来启用。

  • 添加了导入自定义 Grafana 仪表板的支持。仪表板 JSON 文件应放置在 {{ node_custom_config }}/grafana/dashboards/ 下。

  • 支持 Debian Bullseye (11) 作为主机发行版。

  • kolla_docker 模块中添加了支持,以设置 Docker 容器的 CgroupnsMode(通过 cgroupns_mode 模块参数)。需要 Docker 20.10。请注意,在 20.10 之前,所有容器的行为都好像以模式 host 运行一样。

  • 添加了一个新的标志 docker_disable_default_network,默认值为 no。Docker 默认情况下为 docker0 使用 172.17.0.0/16 进行桥接网络,这可能会导致操作员网络的路由问题。将此标志设置为 yes 将禁用 Docker 的桥接网络。此功能将在 Wallaby 12.0.0 版本中默认启用。

  • 添加了支持配置 Docker Engine http/https 代理的功能。

  • 添加了对 kolla_docker 模块的支持,用于创建容器的 tmpfs 挂载。

  • 添加了 kolla_externally_managed_cert 选项,以禁用从操作员主机到 Kolla Ansible 管理的主机复制证书的功能。

  • 实现了以下服务的容器健康检查:aodhbarbicanblazarcindercloudkittycyborgdesignateelasticsearchgnocchihaproxyironickibanamagnummanilaoctaviaredissaharasenlinskydivetackertrovevitragewatcher。请参阅 蓝图

  • Mariadb 角色现在允许创建多个集群。这为操作员带来了好处,因为他们可以使用 kolla-ansible 安装和维护多个集群。这在部署用于单元格或对数据库有大量需求的服务的数据库集群时很有用。

  • octavia-api 切换到在 Apache 下运行的 WSGI。

  • 添加了配置从 HAProxy 到 Octavia 服务的后端 TLS 加密选项。与启用服务 API 端点 TLS 结合使用时,网络通信将从客户端通过 HAProxy 到 Octavia 服务进行端到端加密。

  • 现在可以使用 Neutron DHCP 代理与 OVN 网络一起使用。添加了一个新的变量来控制此功能:neutron_ovn_dhcp_agent,默认值为 no

  • OVN 部署现在将配置 external_ids:ovn-chassis-mac-mappings 以使 DVR 在 VLAN 租户网络上工作。

  • 添加了从 RabbitMQ 收集 Prometheus 指标的支持。默认情况下,当 Prometheus 和 RabbitMQ 启用时启用此功能,可以通过将 enable_prometheus_rabbitmq_exporter 设置为 false 来禁用它。

  • Elasticsearch 可以选择性地在 Keystone 目录中注册为内部服务。默认情况下关闭此功能。

  • 由于删除了 Monasca Grafana 分支,Monasca 数据源现在在 vanilla Grafana 中配置。

  • 支持将控制平面日志直接发送到启用 Monasca 时的 Elasticsearch。

  • 已添加支持以选择性地禁用 Monasca 警报管道。如果未使用警报管道,这可以帮助减少 Monasca 服务主机的资源消耗。

  • 添加了一种覆盖单个服务的 haproxy 配置的方法。可以将自定义模板文件放置在 {{ node_custom_config }}/haproxy-config/ 下,并使用与通用模板相同的变量进行渲染。模板文件名必须与要覆盖的服务匹配,例如 nova-novncproxy.cfg

升级说明

  • 新的 Prometheus 版本忽略先前存储的指标。如果您想继续使用 1.x 及其旧数据,请将 prometheus_use_v1 变量设置为 yes。旧数据不会被删除,请阅读文档了解详细信息。此外,请确保如果您曾经在环境中自定义过命令行选项,请进行相应的更改,因为 Prometheus 2.x 具有不同的语法(带有双破折号的 --option,而不是 -option)。

  • 将所需的 Docker 最低版本升级到 18.09,将所需的 Docker Python SDK 最低版本升级到 3.4.1。这两个版本都在预检查中进行检查。

  • CentOS Linux 8 不再支持作为宿主机操作系统或基础容器镜像。CentOS 用户应迁移到 CentOS Stream 8。Victoria 版本将支持 CentOS Linux 8 和 CentOS Stream 8 宿主机和镜像,并提供迁移路径。

  • trove-taskmanager.conftrove-conductor.conf 合并到 trove.conf。您应该将 /etc/kolla/config/trove/trove-taskmanager.conf/etc/kolla/config/trove/trove-conductor.conf 中的所有自定义选项移动到 /etc/kolla/config/trove/trove.conf。在 Wallaby 版本中,trove-taskmanager.conftrove-conductor.conf 将不再使用

  • 由于弃用,chrony 默认情况下不再启用。要启用它,请将 enable_chrony 设置为 true

    如果禁用,可以通过运行 kolla-ansible chrony-cleanup 来删除容器和配置。

    如果禁用 Chrony 且容器正在运行,kolla-ansible prechecks 命令将失败。如果禁用 Chrony 且未检测到主机 NTP 守护进程,它也会失败。如果使用 chrony、ntpd 或 systemd-timesyncd 以外的其他 NTP 守护进程,可以通过将 prechecks_enable_host_ntp_checks 设置为 false 来禁用此检查。

  • Monasca 日志指标服务已被弃用,现在默认情况下已禁用。如果您希望启用它,可以在 globals.yml 中将 monasca_enable_log_metrics_service 设置为 True

  • Docker iptables 操作和桥接网络现在默认情况下已禁用。这可以避免 Docker 将 filter 表中 FORWARD 链的默认策略设置为 DROP 引起的潜在问题。要恢复到以前的行为,请将 docker_disable_default_iptables_rules 设置为 no。这将设置 docker_disable_default_network 的默认值。

  • 添加了一个新的标志 docker_disable_ip_forward,其默认值为 docker_disable_default_iptables_rules,用于禁用 Docker 的 ip-forward 选项,该选项会使 Docker 将 net.ipv4.ip_forward sysctl 设置为 1。默认情况下,docker_disable_default_iptables_rulestrue,在这种情况下,Docker 的 ip-forward 选项被 disabled

    对于现有主机,当通过 kolla-ansible bootstrap-servers 配置 Docker 时,将应用此配置更改。Docker 以非持久方式更改 sysctl,因此如果未在其他地方配置,它将在重启后恢复到默认值 0。这不应该引起问题,因为 Kolla Ansible 会在必要时应用 sysctl。操作员可能希望主动重启,或通过其他方式应用默认值。

  • 移除对 Cinder v2 API 的支持。该 API 计划在 Wallaby 版本中从 Cinder 中移除,但已推迟到 Xena。升级时,Cinder v2 API 端点将从 Keystone 端点目录中移除。 API v2 支持在 Wallaby 中移除

  • Karbor 项目不再维护,并且自 Wallaby 周期以来已 退役。其支持和角色也自 Wallaby 周期以来已被移除。

  • 通过 ml2_conf.ini 自定义 Neutron Linux 桥接和 Open vSwitch 代理配置已被移除。该配置已为这些代理拆分为 linuxbridge_agent.iniopenvswitch_agent.ini。旧行为在 Ussuri 中已被弃用。

  • Monasca Grafana 服务的容器和配置将被自动移除。操作员需要移除相关的 HAProxy 配置、Monasca Grafana 数据库和相关的 Docker 卷。

  • Monasca 日志转换器已与 Monasca 日志持久化程序合并,以提高性能并减少资源消耗。任何自定义 Monasca 日志转换器配置都应合并到 Monasca 日志持久化程序配置中,或移至 Monasca 管道之外,例如 Fluentd。任何自定义 Monasca 日志指标配置也需要更新,以从原始日志管道读取,而不是转换后的日志管道。转换后的日志管道将自动从 Kafka 中移除,以及任何日志转换器容器。在管道更新期间,日志服务将出现短暂的中断。在此期间,从转换后的日志 Kafka 队列中可能会丢失一小段日志。如果这是一个问题,应在升级 Monasca 之前停止所有节点上的 Monasca API。这将允许转换后的日志主题在重新配置管道之前排入 Elasticsearch。诸如 Fluentd 之类的将日志发布到 Monasca API 的服务应在发生这种情况时缓冲日志,直至达到配置的最大缓冲区。请注意,可能还有其他服务正在转发日志,需要单独检查这些服务。日志转换器卷将保留在监控节点上,可以按照 文档 中所述手动移除。

  • Qinling 项目不再维护,并且自 Wallaby 周期以来已 退役。其支持和角色也自 Wallaby 周期以来已被移除。

  • Searchlight 项目不再维护,并且自 Wallaby 周期以来已 退役。其支持和角色也自 Wallaby 周期以来已被移除。

  • 更新 ELK 7 OSS 版本的服务配置。支持从 ELK 6 滚动升级。有关更多详细信息,请参阅官方 升级说明

弃用说明

  • 对部署 chrony 的支持已被弃用,并将于 Xena 周期中移除。容器默认情况下不再启用。要启用它,请将 enable_chrony 设置为 true

  • 对 NTP 守护进程配置的支持(通过 enable_host_ntp)已被弃用,并将于下一个 Kolla Ansible 版本(Xena)中移除。请使用其他方式配置 NTP。

  • Monasca Grafana 由于缺乏维护已被弃用,并将于 Xena 版本中移除。相反,将提供支持,以允许 Monasca 用户迁移到具有 Monasca 数据源的 vanilla Grafana 服务。

  • Monasca 日志指标服务已被弃用,并将于 Xena 版本中移除。

  • 弃用对 Prometheus v1.x 的支持。在 Xena 版本周期中,将从 Kolla Ansible 中移除对该镜像的支持。

  • 对部署 tempestrally 的支持已被弃用,并将于 Xena 周期中移除。原因是这些不是 OpenStack 云的服务,而是其客户端。

  • 用于在没有 mariadb-clustercheck 的部署中禁用 haproxy 用户,当节点未准备好接受连接时使用的 wsrep-notify.sh 脚本已被弃用,并将于 Xena 版本中移除。它一直不可靠,推荐(默认启用)的方法是部署 mariadb-clustercheck

安全问题

  • Monasca Grafana 服务实际上未维护,不应公开到外部,或在租户之间存在监控数据泄露风险的情况下使用。

错误修复

  • 修复了一个问题,即很难设置 Apache HTTP 超时指令,默认的 60 秒会导致在运行缓慢的服务中出现问题。请参阅 LP#1917648

  • 修复了一个小问题,即某些 Monasca 容器在最初争夺在 Kafka 中创建主题时可能会短暂重启。

  • 修复了启用 Zun 时 kolla-ansible bootstrap-servers 的问题,其中 Zun 特定的 Docker 配置应用于所有节点。 LP#1914378

  • 修复了启用 S3 Token Middleware 时 Swift 部署的问题。修复了 LP#1862765

  • 当启用 neutron_ovn_distributed_fip 时,OVN 将不再在计算节点上调度 SNAT 路由器。 LP#1901960

  • 现在串行重启 RabbitMQ 服务,以避免脑裂。 LP#1904702

  • 通过向 monasca log-metrics drop 配置添加 notice 和 note 日志级别来修复 LP#1906796

  • 修复了 Swift 的停止操作。它将不再尝试再次启动 swift-object-updater 容器。 LP#1906944

  • 修复了在使用 Docker 20.10 时 kolla-ansible prechecks 命令出现的问题。 LP#1907436

  • 修复了当 mariadb 容器未在一个或多个主机上存在时,kolla-ansible mariadb_recovery 出现的问题。 LP#1907658

  • 修复了 OVN 中的 Northbound 和 Southbound 数据库套接字路径。

  • chronyd 在服务器重启时崩溃循环 (Debian) LP#1915528

  • 修复了一个问题,阻止预检查在使用的 NTP 守护进程“非原生”时成功,例如 Debian/Ubuntu 系统上的 ntpd,或 CentOS/RHEL 系统上的 chronydLP#1922721

  • 修复了在 Debian/Ubuntu 上启动后配置 Docker 的问题,导致在禁用它们之前创建 iptables 规则。 LP#1923203

  • 修复用户禁用 Octavia 自动配置时 Octavia SSH 密钥复制出现的问题。 LP##1927727

  • 修复了由于缺少 six 而导致 docker python SDK 5.0.0 失败的问题 - 引入了约束以安装低于 5.x 的版本。 LP#1928915

  • 修复了超过 2 个节点的 RabbitMQ 升级随机失败的问题。 LP#1930293

  • 修复了启用 TLS 时的 Swift 部署。添加了缺少的处理程序并更正了容器名称。 LP#1931097

  • 修复了当前基于 CentOS 8 的镜像中 iscsid 失败的问题,因为 pid 文件被不必要地设置。 LP#1933033

  • 修复了 Debian 主机引导程序未删除冲突软件包的问题。现在它的行为符合文档。

  • 修复了非 HA 部署中 Alertmanger 的潜在问题。在这种情况下,对等八卦协议现在被禁用,Alertmanger 不会尝试与不存在的其他实例形成集群。 LP#1926463

  • 添加了一个新的标志 docker_disable_ip_forward,其默认值为 docker_disable_default_iptables_rules,用于禁用 Docker 的 ip-forward 选项,该选项会使 Docker 将 net.ipv4.ip_forward sysctl 设置为 1。这是为了防止创建全转发主机。 LP#1931615

  • 修复了在 kolla-ansible bootstrap-servers 期间生成 /etc/hosts 时,一个或多个主机具有 api_interface 中带有破折号 (-) 的名称的问题。 LP#1927357

  • 修复了 Barbican 日志记录的一些配置问题。 LP#1891343

  • 修复了 Cinder 日志记录的一些配置问题。 LP#1916752

  • 修复 cyborg api 未监听 api 接口。将 cyborg.conf 中的 host 更改为 host_ip。请参阅 cyborg 文档

  • 修复了 ovs-dpdk 服务的错误配置,这破坏了 kolla-ansible 的部署。有关更多详细信息,请参阅 bug 1908850

  • 修复了通过 pip install --user 安装时执行 kolla-ansible 的问题。 LP#1915527

  • 修复了一个问题,Libvirt AppArmor 配置文件被禁用,并且 bootstrap-servers 进程尝试将其移除。有关详细信息,请参阅 bug 1909874

  • 修复了 mariabackup 使用的容器镜像。它使用的是 mariadb 镜像,该镜像在 Victoria 中已被弃用,并在 Wallaby 中移除。 LP#1928129

  • 修复了一个问题,即 masakari.confmasakari-instancemonitor 服务生成,但未被使用。

  • 修复了一个问题,即 masakari-monitors.confmasakari-apimasakari-engine 服务生成,但未被使用。

  • 使用一致的变量名来表示 masakari-instancemonitor 的容器维度 - masakari_instancemonitor_dimensions。旧名称 masakari_monitors_dimensions 仍然受支持。

  • 修复了在使用自定义服务身份验证项目部署 Octavia 时的问题。如果 octavia_service_auth_project 设置为不存在的项目,Octavia 部署将失败。现在会创建该项目。 LP#1922100

  • 修复了 LP#1892376,通过更新 Monasca Elasticsearch 模板中的已弃用语法来修复。

  • 删除了 zookeeper.cfg 中等号周围的空格,这些空格阻止了 zkCleanup.sh 脚本正确运行。