Train 系列发布说明

9.3.2-21

新特性

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

升级说明

  • baremetal 角色现在使用 CentOS 8 包仓库用于 Docker CE(之前为 7)。

安全问题

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

错误修复

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

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

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

  • 修复了当 kolla_enable_tls_external 为 true 时无法连接到 zun 控制台的问题。当 kolla_enable_tls_external 为 true 时,访问任何 zun 容器的控制台都会失败。此修复根据 kolla_enable_tls_external 的值在 zun.conf 中设置 wsproxy base_url 的协议。 LP#1957117

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

  • 添加了通过 kolla 配置 rabbitmq 集群接口的选项 LP#1900160 <https://bugs.launchpad.net/kolla-ansible/+bug/1900160>

  • 修复了在使用 Jinja2 3.1.0 时出现的问题。

9.3.2

错误修复

  • 修复了由于 Permission denied 错误导致 sriov_agent.ini 未被复制的错误。 LP#1923467

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

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

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

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

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

  • 修复了 keepalived 在配置未更改的情况下升级期间未被重新创建的问题。 LP#1928362

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

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

9.3.1

错误修复

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

9.3.0

新特性

  • 添加了一个新的标志,docker_disable_default_iptables_rules,默认值为 no。Docker 默认情况下会操作 iptables 规则以提供网络隔离,如果主机已经具有基于 iptables 的防火墙,这可能会导致问题。一个常见的问题是 Docker 将 filter 中的 FORWARD 链的默认策略设置为 DROP。将 docker_disable_default_iptables_rules 设置为 yes 将禁用 Docker 的 iptables 操作。此功能将在 Victoria 11.0.0 版本中默认启用。

  • 通过在一个文件中生成所有 fluentd 配置来提高 common 角色的性能。

  • 通过在一个文件中生成所有 logrotate 配置来提高 common 角色的性能。

升级说明

  • 默认值 REST_API_REQUIRED_SETTINGS 与 Horizon 同步。您可能需要查看 更新的配置 中公开的设置。

安全问题

  • kolla-ansible post-deploy 生成的 admin-openrc.sh 文件先前以 root:root 所有权和 644 权限创建。这将允许具有相同目录访问权限的任何人读取该文件,包括管理员凭据。 admin-openrc.sh 的所有权现在设置为执行 kolla-ansible 的用户,并且该文件被分配了 600 模式。可以通过运行 kolla-ansible post-deploy 来应用此更改。

错误修复

  • 添加了对在代理后使用 bifrost-deploy 的支持。它使用现有的 container_proxy 变量。

  • 修复了对 /dev/kvm 权限的处理,使其对主机级别操作更加健壮。 LP#1681461

  • 重构 keystone fernet 引导,该引导在多节点设置中容易失败。有关详细信息,请参阅 bug 1846789

  • 现在允许 IPv6 完全路由拓扑(/128 寻址)(在适用情况下)。 LP#1848941

  • 修复了在未启用任何 OpenStack 服务的情况下部署 fluentd 的问题。 LP#1867953

  • 此补丁添加了 kolla-ansible 内部 logrotate 配置用于 Logstash。Logstash 2.4 使用集成的容器内 logrotate 配置来轮换 /var/log/logstash 中的日志,而 kolla-ansible 部署的 Logstash 日志位于 /var/log/kolla/logstash 中。 LP#1886787

  • 修复了 --configdir 参数应用于默认 passwords.yml 位置的问题。 LP#1887180

  • fluentd 现在将日志记录到 /var/log/kolla/fluentd/fluentd.log 而不是 stdoutLP#1888852

  • 修复了 Masakari 角色缺少 deploy-containers 操作的问题。 LP#1889611

  • 修复了一个问题,即 keystone 容器会陷入重启循环,并显示 fernet 密钥已过期。 LP#1895723

  • 修复了 haproxy_single_service_split 模板,使其适用于默认的 modehttp)。 LP#1896591

  • 修复了 Debian/Ubuntu 上错误的 fernet cron 文件路径,从 /var/spool/cron/crontabs/root/fernet-cron 改为 /var/spool/cron/crontabs/rootLP#1898765

  • 为 placement-api wsgi 配置添加 with_first_found,允许用户覆盖。 LP#1898766

  • 现在串行重启 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

  • 修复了使用 kolla_dev_mod 部署 freezer 失败的问题。 LP#1888242

  • 修复了某些 CloudKitty 命令尝试使用 HTTP 连接到外部 TLS 端点的问题。 LP#1888544

  • 修复了如果 Keystone Fernet 密钥轮换在 Keystone 容器启动之前发生,可能会导致权限被拒绝错误的问题。 LP#1899060

  • kolla-ansible post-deploy 生成的 admin-openrc.sh 文件先前以 root:root 所有权和 644 权限创建。这将允许具有相同目录访问权限的任何人读取该文件,包括管理员凭据。 admin-openrc.sh 的所有权现在设置为执行 kolla-ansible 的用户,并且该文件被分配了 600 模式。可以通过运行 kolla-ansible post-deploy 来应用此更改。

  • 修复了删除已撤离的实例时,加密块设备出现的问题。 LP#1891462

  • 修复了 Keystone Fernet 密钥轮换由于权限被拒绝错误而失败的问题,如果 Keystone 轮换发生在 Keystone 容器启动之前。 LP#1888512

  • 修复了 Keystone 启动时 Fernet 密钥轮换未在配置的间隔内发生的问题。这可能是由于 Keystone 主机在计划的轮换时间处于关闭状态,或者由于 cron 作业之间的间隔不均匀所致。 LP#1895723

  • 修复了 Grafana 实例争夺启动 Grafana DB 的问题。 参见 LP#1888681

  • 修复了 LP#1892210,其中从 neutron-server 到 Memcached 的打开连接数会随着时间的推移而增长,直到达到 memcached_connection_limit(默认值为 5000)设置的最大值,此时 Memcached 实例将停止工作。

  • Kafka 默认主题创建被使用创建 Kafka 主题时,在多节点集群中未创建冗余副本的问题。 LP#1888522。 这会影响使用 Kafka 的 Monasca,并且之前被 Monasca 使用的旧 Kafka 客户端所掩盖,而该客户端已在 Ussuri 中升级。 具有多节点 Kafka 集群的 Monasca 用户应查阅 Kafka 文档 以增加副本数。

  • 修复了计算主机上未加载 br_netfilter 内核模块的问题。 LP#1886796

  • 防止在未针对所有 Keystone 主机(例如,由于 --limit--serial 参数)时,向现有集群添加新的 Keystone 主机,以避免覆盖现有的 Fernet 密钥。 LP#1891364

  • 减少 SQLAlchemy 连接池的使用,以提高控制器具有内部 VIP 发生故障时的服务可靠性。 LP#1896635

  • 不再配置 Prometheus OpenStack 导出器使用 prometheus Docker 卷,因为从未需要过。

9.2.0

新特性

  • 添加了提供自定义 Elasticsearch 配置的能力。

  • 添加了 Elasticsearch Curator 用于管理聚合的日志数据。

  • Kolla Ansible 检查现在本地 Ansible Python 环境是否一致,即使用的 Ansible 可以看到 Kolla Ansible。 LP#1856346

升级说明

  • 避免使用 setup 模块进行不必要的 fact 收集。这应该可以提高使用 fact 缓存和 Ansible smart fact 收集策略的环境的性能。有关详细信息,请参阅 蓝图

  • 添加了 elasticsearch_use_v6kibana_use_v6 标志,可以将其设置为 true 以在 CentOS 7 或 8 上部署 elasticsearch6kibana6 镜像。这些标志在 CentOS 8 上默认设置为 true,在其他地方默认设置为 false。应通过 kolla-ansible upgrade elasticsearch,kibana 升级服务从 5.x 到 6.x,这可用于提供在 CentOS 7 和 8 之间兼容的 Elasticsearch 6.x 集群。

  • 在之前的稳定版本中,octavia 用户不再在 admin 项目中获得 admin 角色,并且在升级期间添加了一个任务来删除该角色。但是,octavia 配置未更新为使用 service 项目,导致负载均衡器创建失败。

    对于现有部署,简单地切换到 service 项目也存在问题。虽然现有的负载均衡器似乎仍然可以工作,但由于安全组属于 admin 项目,因此创建新的负载均衡器会失败。因此,Train 和 Stein 已恢复为默认使用 admin 项目,而从 Ussuri 版本开始,默认将使用 service 项目。

    为了提供灵活性,添加了一个 octavia_service_auth_project 变量。在 Train 和 Stein 版本中,默认设置为 admin,从 Ussuri 开始,默认设置为 service。对于 Train 和 Stein 的用户,可以将 octavia_service_auth_project 设置为 service,以避免在升级到 Ussuri 期间出现破坏性更改。

    要将现有部署从使用 admin 项目切换到 service 项目,至少需要创建所需的安全组在 service 项目中,并将 octavia_amp_secgroup_list 更新为该组的 ID。理想情况下,Amphora flavor 和网络也应在 service 项目中重新创建,尽管这似乎对操作没有必要,并且会影响现有的 Amphorae。

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

  • kibana_elasticsearch_ssl_verify 的默认值从 false 更改为 trueLP#1885110

  • 现在,只要启用 Apache Storm,Apache ZooKeeper 就会自动部署。

  • 在部署使用 Logstash 6(CentOS 8 的默认设置)的 Monasca 时,任何自定义的 Monasca Logstash 2 配置都需要更新才能与 Logstash 6 配合使用。请参阅 文档

错误修复

  • 修复了使用新的 E*K 堆栈(6+)的 Kibana 部署。 LP#1799689

  • 如果启用了容器化的 chrony,则从 docker 主机中移除 chrony 包和 AppArmor 配置文件。 LP#1882513

  • 修复了 mariadb 升级过程中的表名转义问题。 LP#1883141

  • 修复了在启用 enable_manila_backend_genericFalse 时,Manila 部署启动 openvswitchneutron-openvswitch-agent 容器的问题。 LP#1884939

  • 修复了 Elasticsearch Curator cron 调度运行。 LP#1885732

  • 修复了应用自定义 Nova 策略时 nova-conductor 的配置错误,导致 nova_conductor 容器无法成功启动。 LP#1886170

  • 添加了在某些 VMware 相关任务上缺失的“become: true”。修复了 复制 VMware vCenter CA 文件复制 nsx.ini 中的问题。

  • 修复了使用 kolla_dev_mod 部署 nova 失败的问题。

  • 与 Magnum、Cinder 和 Octavia 使用的服务的客户端保持一致,这些服务现在使用全局定义的 openstack_region_name

  • 修复了默认 CloudKitty 配置,其中包含在 Stein 中已弃用并在 Train 中删除的 gnocchi_collectorkeystone_fetcher 选项。有关详细信息,请参阅 bug 1876985

  • 修复了 Cinder 升级中导致在线模式迁移失败的问题。 LP#1880753

  • 修复了 cyborg api 容器无法加载 api paste 文件的问题。有关详细信息,请参阅 bug 1874028

  • 修复了 etcd 服务的配置,使其协议与 internal_protocol 参数的值无关。 etcd 服务不由 HAProxy 进行负载均衡,因此在 internal_protocol 配置为 https 时,没有代理层进行 TLS 终止。

  • 修复了 fernet_token_expiry 即使设置为有效值,也会导致预检查失败的问题。请参阅 bug 1856021 以获取更多详细信息。

  • kolla_logs Docker 卷现在挂载到 Elasticsearch 容器中,以暴露先前错误地写入容器文件系统中的日志(bug 1859162)。用户可以选择迁移任何现有日志(如果他们愿意),并且应在应用此修复之前完成此操作。

  • 在之前的稳定版本中,octavia 用户不再在 admin 项目中获得 admin 角色,并且在升级期间添加了一个任务来删除该角色。但是,octavia 配置未更新为使用 service 项目,导致负载均衡器创建失败。有关详细信息,请参阅升级说明。 LP#1873176

  • 修复了 RabbitMQ 中存在的问题,在部署 Nova 后,标签会从 openstack 用户中删除。这会阻止用户访问 RabbitMQ 管理 UI。 LP#1875786

  • 添加了一个新的变量 fluentd_elasticsearch_cacert,其默认值为 openstack_cacert。 如果设置,这将用于设置 Fluentd 与 Elasticsearch 通信时使用的 CA 证书包的路径。 LP#1885109

  • 改进了 kolla-genpwdkolla-mergepwd 在输入文件格式不符合预期时错误报告。 LP#1880220

  • 修复了多区域部署中的 Magnum trust 操作。

  • 如果显式启用 Apache Storm,则部署 Apache ZooKeeper。 只有在也启用 Monasca 时,ZooKeeper 才会部署,通常是隐式完成的。

  • 在部署 Elasticsearch 6(CentOS 8 的默认设置)时,默认部署了 Logstash 2,该版本与 Elasticsearch 6 不兼容。现在,当使用 CentOS 8 容器时,默认部署 Logstash 6。

9.1.0

新特性

  • 添加了对 CentOS 8 作为主机操作系统和基本容器镜像的支持。 这是从 Ussuri 版本开始支持的 CentOS 的唯一主要版本。 Train 版本支持 CentOS 7 和 8 主机,并提供迁移路线。

  • 添加了对 Ironic 的对象存储服务(Swift)的支持。

  • 添加了一个新的变量,openstack_tag,它用作 Docker 镜像的默认标签,代替 openstack_release。默认值为 openstack_release,后缀通过 openstack_tag_suffix 设置。后缀为空,除非在 CentOS 8 上设置为 -centos8。这允许提供基于 CentOS 7 和 8 的镜像。

升级说明

  • 某些镜像受 CentOS 7 支持,但缺乏 CentOS 8 中所需的软件包,因此不支持 CentOS 8。有关详细信息,请参阅 Kolla 发布说明

  • 添加了一个 rabbitmq_use_3_7_24_on_centos7 标志,可以将其设置为 true 以在 CentOS 7 上部署 rabbitmq-3.7.24 镜像。应通过 kolla-ansible upgrade 部署该镜像,并且可用于提供与 CentOS 8 rabbitmq 镜像兼容的 RabbitMQ 集群。

  • 已删除对 SCSI 目标守护程序(tgtd)在 CentOS/RHEL 8 上的支持。 cinder_target_helper 的默认值现在在 CentOS/RHEL 8 上为 lioadm,但在其他平台上仍然为 tgtadm

  • octavia 用户不再在 admin 项目中获得 admin 角色。Octavia 不需要此角色,而是使用在 service 项目中具有 admin 角色的 octavia 用户。在升级期间,octavia 用户将从 admin 项目中删除。有关详细信息,请参阅 bug 1873176

安全问题

  • 修复了 RabbitMQ 密码泄漏到 Ansible 日志中的问题。 LP#1865840

错误修复

  • 修复了 cyborg conductor 无法与 placement 通信的问题。有关详细信息,请参阅 bug 1873717

  • 修复了 cyborg agent 无法启动 privsep 守护程序的问题。为 cyborg agent 添加了特权功能。有关详细信息,请参阅 bug 1873715

  • enable_barbican 设置为 true 时,向 octavia.conf 添加必要的 region_nameLP#1867926

  • Debian/Ubuntu 容器添加 /etc/timezoneLP#1821592

  • 修复了 Nova 实时迁移未使用 migration_interface_address 的问题,即使未使用 TLS。当将实例迁移到新添加的计算主机时,如果寻址依赖于 /etc/hosts 并且尚未在源计算主机上更新以包含新的计算主机,则实时迁移将失败。这不会影响基于 DNS 的名称解析。类似地,如果 DNS//etc/hosts 中的地址与用户自定义的 migration_interface_address 不相同,Nova 实时迁移将失败。 LP#1729566

  • 修复 qemu 加载 ceph.conf(权限错误)。 LP#1861513

  • 移除 Neutron 服务中的 /run 绑定挂载,导致 dbus 主机级别错误,并为 neutron-dhcp-agent 和 neutron-l3-agent 添加 /run/netns。 LP#1861792

  • 修复了 fluentd 部署中,即使从 node_custom_config 目录中移除,旧的 fluentd 配置文件在容器重启后仍然存在的问题。 LP#1862211

  • 使用更宽松的正则表达式移除 /etc/hosts 中的冒犯性 127.0.1.1 行。 LP#1862739

  • 每个 Prometheus mysqld 导出器现在指向其本地 mysqld 实例(MariaDB),而不是 VIP 地址。 LP#1863041

  • Cinder Backup 现在可以访问内核模块以加载例如 iscsi_tcp 模块。 LP#1863094

  • 通过要求解析的唯一性来加强 RabbitMQ 主机名地址解析的预检查,以避免后续问题。 LP#1863363

  • 修复了 neutron-metadata-agent 连接到 Nova 元数据服务的协议。这可能影响内部 TLS 设置。修复了 LP#1864615

  • 修复了 haproxy 角色,以避免在单个 Ansible 运行中多次重启 haproxy 服务。 LP#1864810 LP#1875228

  • 修复了在使用 IPv6 部署 Grafana 时的问题。 LP#1866141

  • 修复了 IPv6 环境中的 elasticsearch 部署。 LP#1866727

  • 修复了由于引用了错误的变量而导致 telegraf 无法监控 zookeeper 的问题。 LP#1867179

  • 修复了 ceph 部署重新配置错误,在收集 OSD 步骤由于 Kolla-Ansible 用户无法访问 /var/lib/ceph/osd/_FSID_/whoami 而失败。 LP#1867946

  • 修复了 glance.conf 中缺少 glance_ca_certificates_file 变量的问题。 LP#1869133

  • 在 heat 中添加客户端 ca_cert 文件 LP#1869137

  • 修复了 designate-worker 不使用 etcd 作为其协调后端,因为 Designate 不支持它(通过 tooz 没有可用的组成员资格支持)。 LP#1872205

  • 修复了在使用“拆分”HAProxy 服务模板时,Horizon 基于源 IP 的负载均衡的问题。

  • 修复了在使用“拆分”配置模板样式时,HAProxy 在其配置文件中没有后端服务器的问题。

  • 通过 openstack_service_workers 变量管理 nova 调度器工作进程。 LP#1873753

  • 移除 Swift 环的元字段,从默认 rsync_module 模板中移除。默认情况下拥有它,未记录,可能导致在 Swift 文档声明该字段未被处理时出现意外行为。

  • 修复了当 kolla_enable_tls_internal 为 true 时,fluentd 中的 elasticsearch 模式。

  • 修复了在使用 --limit--serial 进行扩展时,HAProxy 预检查出现的问题。 LP#1868986

  • 修复了当某些 HAProxy 实例正在运行而另一些实例未运行时,HAProxy 监视 VIP 预检查出现的问题。请参阅 bug 1866617

  • 修复了 MariaDB 在多节点场景中的问题,这些问题影响了部署、重新配置、升级和 Galera 集群调整大小。它们通常表现为各种地方的 WSREP 问题,并且可能导致需要恢复 Galera 集群。请注意,这些问题是由于 Kolla Ansible 运行期间处理 MariaDB 的方式造成的,不会影响 Galera 集群在正常操作期间,除非 Kolla Ansible 稍后接触到 MariaDB。强烈建议希望使用 Kolla Ansible 对 Galera 集群执行操作的用户进行更新。有关详细信息,请参阅以下 Launchpad 错误记录:bug 1857908bug 1859145

  • 修复了在使用 --limit 部署新计算主机时 Nova 存在的问题。 LP#1869371

  • 调整 Octavia 以适应最新的双 CA 证书配置。以下文件应存在于 /etc/kolla/config/octavia/

    • client.cert-and-key.pem

    • client_ca.cert.pem

    • server_ca.cert.pem

    • server_ca.key.pem

    有关详细信息,请参阅 Octavia 文档

  • 由于 Openstack 服务现在可以配置为使用启用 TLS 的 REST 端点,因此应使用 {{ internal_protocol }} 和 {{ external_protocol }} 配置参数构造 URL。

  • 使用 kolla_internal_fqdn 而不是 kolla_internal_vip_address 构造服务 REST API URL。否则,当使用域名颁发证书时,SSL 验证将失败。

  • 修复了 kolla-ansible stop 命令中的一个问题,该问题可能在尝试停止不存在的容器时失败。 LP#1868596

  • 修复了 Ubuntu/Debian 二进制部署中 gnocchi-api 脚本名称的问题。 LP#1861688

  • 修复了一个问题,即主机配置任务 (sysctl、加载内核模块) 可能会在 kolla-ansible genconfig 命令期间执行。详情请参阅 bug 1860161

  • 修复了一个问题,即 openstack_release 默认设置为 master,导致部署了标记为 master 的容器。它已更改为 train。同样适用于 kolla_source_version,这会影响开发模式。有关详细信息,请参阅 bug 1866054

  • 修复了 Placement 服务端口预检查的问题。详情请参阅 bug 1861189

  • 移除了默认 InfluxDB 配置中的 [http]/max-row-limit = 10000 设置,该设置导致 CloudKitty v1 API 在使用 InfluxDB 作为存储后端时仅返回 10000 个数据帧。详情请参阅 bug 1862358

  • Skydive 的 API 和 Web UI 现在依赖于 Keystone 进行身份验证。只有在 skydive_admin_tenant_name 定义的 Keystone 项目中的用户才能进行身份验证。有关更多详细信息,请参阅 LP#1870903 <https://launchpad.net/bugs/1870903>

  • masakari-monitor 现在将使用内部 API 来访问 masakari-api。 LP#1858431

  • 将 octavia 与 barbican 服务通信的 endpoint_type 从 public 更改为 internal。详情请参阅 bug 1875618

9.0.1

错误修复

  • 外部 Ceph:也将 cinder 密钥环复制到 nova-compute。由于 Train nova-compute 在设置了 Cinder 的 rbd 用户的情况下也需要 cinder 密钥,因为卷/池检查已移动到使用 rbd python 库。修复了 LP#1859408

  • 添加了配置,以便在为 Designate 使用 Infoblox 后端时,在 pools.yaml 文件中设置 also_notifies

    向主节点推送 DNS NOTIFY 数据包不会导致 DNS 更新传播到群集中的其他节点。这意味着需要向每个节点发送 DNS NOTIFY 数据包,否则如果用户查询任何工作节点,可能会收到陈旧的 DNS 记录。有关详细信息,请参阅 bug 1855085

  • 修复了 Docker 客户端超时问题,其中 Docker 报告“读取超时”。客户端超时可以通过 docker_client_timeout 进行配置。默认超时已增加到 120 秒。有关详细信息,请参阅 bug

  • 修复了 fluentd 解析 Aodh、Masakari、Qinling、Vitrage 和 Zun 的 WSGI 日志的问题。详情请参阅 bug 1720371

  • 修复了 glance_api 以特权模式运行,并添加了缺失的挂载点,以便它可以将 iscsi cinder 后端用作其存储。 LP#1855695

  • 从 Rocky 升级到 Stein 时,HAProxy 配置从使用单个配置更改为为每个服务组装一个文件。将 HAProxy 标签应用于整个 playbook 确保在指定 HAProxy 标签时为所有服务生成 HAProxy 配置。有关详细信息,请参阅 bug 1855094

  • 修复了 ironic_ipxe 容器提供实例镜像的问题。有关详细信息,请参阅 bug 1856194

  • 修复了禁用 Alertmanager 时 Prometheus 配置的模板问题。在启用了 Prometheus 且禁用了 Alertmanager 的部署中,由于变量 prometheus_alert_rules 不包含键 files,因此在模板化时 Prometheus 的配置将失败。 LP#1854540

9.0.0

序言

Kolla Ansible 9.0.0 版本是 Train 周期中的第一个版本。亮点包括对 Masakari 实例高可用性服务和 Qinling 功能即服务部署的支持。现在可以部署多个 Nova 单元,并且控制平面可以配置为通过 IPv6 进行通信。

新功能

  • 添加了一个新的 kolla-ansible 子命令:deploy-containers。此操作仅执行容器比较,并在检测到需要更改时部署新的容器。如果只需要更新容器镜像,而不需要新的配置更改,则应使用此命令快速部署。

  • 添加了变量 horizon_wsgi_processeshorizon_wsgi_threads,以配置 Horizon 容器中 WSGI 的进程数和线程数。

  • 添加了配置变量 kolla_enable_tls_internalkolla_internal_fqdn_certkolla_internal_fqdn_cacert,以可选地为 OpenStack 在内部 API 网络上的端点启用 TLS 加密。

  • 添加了通过 {{ node_custom_config}}/neutron/dnsmasq.conf{{ node_custom_config }}/neutron/{{ inventory_hostname }}/dnsmasq.conf 覆盖 Neutron DHCP 代理使用的 dnsmasq.conf 配置文件。

  • 添加了对 Qinling 的支持。Qinling 是一个 OpenStack 项目,旨在提供“功能即服务”。该项目旨在提供一个平台来支持无服务器函数。

  • 添加了对 Kolla-Ansible 的 Cloudkitty InfluxDB 存储系统部署的支持。

  • Kolla Ansible 现在可以配置部署的 docker 以供 Zun 使用。默认禁用 docker_configure_for_zun(为了保持向后兼容性)。

  • 添加了支持,可以通过 docker_custom_config 变量(JSON 格式)提供 Docker 守护程序的自定义配置选项。

  • 可以使用变量 enable_neutron_port_forwarding 启用 Neutron port_forwarding 服务插件和 l3 扩展。

  • 合并操作插件(用于 config/ini 和 yaml 文件)现在允许像上游模板模块一样进行相对导入,例如,现在可以从与基本模板相同的目录中包含子模板。

  • HAProxy - 添加在 {{ node_custom_config }}/haproxy/services.d/ 中定义自定义 HAProxy 服务的支持。

  • 添加了对 IPv6 网络环境部署的支持。

    有关 IPv6 支持的详细信息,请参阅相关文档。

  • 添加了对使用 TLS 支持配置 libvirt 的支持。这允许 nova-compute 和 libvirt 之间以及不同 hypervisor 之间的安全通信,在实时迁移期间。默认配置通过 TCP 以明文形式传输数据,且没有身份验证。

  • 添加了对部署 Masakari(实例高可用性服务)的支持。

  • Cinder 协调后端现在可以通过 cinder_coordination_backend 变量进行配置。协调是可选的,现在可以设置为 redis 或 etcd。

  • 添加了通过 designate_coordination_backend 变量配置 Designate 协调后端的支持。在部署多个 worker 时,协调是必需的。可能的值是 redisetcd

  • 添加了对部署多个 Nova 单元的初步支持。单元允许 Nova 云扩展到大尺寸,方法是将计算主机分成多个称为 *单元* 的池。

    此功能仍在发展中,相关的配置可能会在下一个版本中发生变化,以支持更高级的部署拓扑。

  • 添加了对部署 Prometheus blackbox exporter 的支持

    添加了一个示例 blackbox-exporter 模块(默认禁用),名为 os_endpoint。这允许通过 HTTP 和 HTTPS 探测端点。这可用于监视 OpenStack 端点是否返回 200 或 300 状态码,以及有效负载中是否包含“versions”一词。

  • 添加了支持,可以向 Prometheus 传递额外的选项。

  • 现在可以通过新引入的 rabbitmq_server_additional_erl_args 变量向 RabbitMQ 服务器的 Erlang VM 传递 RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS。有关详细信息,请参阅 Kolla Ansible 文档的 RabbitMQ 部分。

  • 添加了一种标准化的方法来配置不同服务的通知。

  • 添加了支持配置 Kolla 容器的额外 Docker 卷。这些通过 <service_name>_extra_volumes 进行配置。

  • 添加了一个新的变量,供 swift 角色使用,swift_extra_ring_files。它允许传递额外的环文件,以便在多策略设置的上下文中部署。

  • 添加了对 Swift Recon 的支持。

    已向 Swift account、container 和 object 配置文件添加必要的配置,以启用 Swift recon cli。

    为了使每个 Swift 主机上的 object 服务器访问 recon 文件,将一个 Docker 卷挂载到每个容器中,该容器生成这些文件。然后,该卷以只读方式挂载到 object 服务器容器中。请注意,多个容器附加到同一文件。这不应该成为问题,因为 Swift 在附加时使用锁。

    示例用法:sudo docker exec swift_object_server swift-recon –all

  • 添加了对 Swift S3 API 的支持,通过 enable_swift_s3api 标志启用。

  • 添加了对配置受信任 CA 证书文件的支持。为了使此功能正常工作,必须将 CA 捆绑文件添加到 Horizon 和 Kolla Toolbox 容器中。

  • 添加了对 Zun 部署中基于 iSCSI(包括 LVM)的 Cinder 卷的支持。

升级说明

  • 更新了 Ansible 的最低要求版本为 2.6。

  • 删除了 Bifrost 容器中 RabbitMQ 的支持。在 Train 周期中,Bifrost 切换到使用 JSON-RPC 而不是 RabbitMQ 进行内部 Ironic 通信。这简化了部署并应提高可靠性。

  • 将 RabbitMQ cluster_partition_handling 设置为 pause_minority。这是为了避免脑裂。可以使用自定义配置覆盖此设置。请注意,此新配置需要至少 3 个节点的 RabbitMQ 集群才能提供 HA(高可用性)。有关更多信息,请参阅生产架构指南。

  • 修改了 Cloudkitty 的默认存储后端为 InfluxDB,以匹配从 Stein 开始的 Cloudkitty 中的默认设置。这由 cloudkitty_storage_backend 控制。要使用以前的默认设置,请将 cloudkitty_storage_backend 设置为 sqlalchemy。有关详细信息,请参阅 bug 1838641

  • 修改了 openstack_release 的默认值,从 auto 更改为发布名称(例如 train),或在 master 分支上为 masterauto 的值将不再检测 kolla-ansible Python 包的版本。

  • Docker 引擎配置更改现在应用于 /etc/docker/daemon.json 文件,而不是更改 systemd 单元(如果存在则将其删除)。

  • 增加了 docker_graceful_timeout 的默认值,从 10 增加到 60。这设置了 docker 在发出 KILL 信号之前等待容器优雅停止的时间。

  • 基于 RHEL 的目标不再需要 EPEL 存储库。如果未使用,可以从目标主机中安全地将其删除。

  • InfluxDB TSI 现在默认启用。InfluxData 建议所有客户使用它。如果您不想启用它,可以在 globals.yml 中将变量 influxdb_enable_tsi 设置为 False。可以在 https://docs.influxdb.org.cn/influxdb/v1.7/administration/upgrading/ 找到将现有数据迁移到新的基于磁盘格式的说明。如果您不遵循迁移过程,InfluxDB 应该继续工作,但这不建议这样做。

  • Keystone fernet 密钥轮换调度算法已修改,以避免密钥过度轮换的问题。

    变量 fernet_token_expiryfernet_token_allow_expired_windowfernet_key_rotation_interval 可以设置为配置令牌过期和密钥轮换计划。

    默认情况下,fernet_token_expiry 为 86400,fernet_token_allow_expired_window 为 172800,fernet_key_rotation_interval 是这两个变量之和。这允许最小数量的活动密钥 - 3。

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

  • MariaDB 现在通过 HAProxy 在 database_port 上暴露,而不是在 mariadb_port 上。默认情况下,这两个端口相同,但如果您已自定义 mariadb_port,使其与 database_port 不同,并且有一个服务通过 HAProxy 在该端口上与其通信,则应查看您的配置。

  • 修改了 swift.conf 自定义配置的路径,从 /etc/kolla/config/swift/<service>.conf 更改为 /etc/kolla/config/swift/<service>/swift.conf,以避免与 <service>.conf 的自定义配置冲突。在这里,<service> 可以是 proxy-serveraccount-*container-*object-*

  • Freezer 现在使用 MariaDB 作为默认数据库后端。

    Elasticsearch 仍然是一个可选的后端,因为 Freezer 需要 Elasticsearch 版本 2.3.0。kolla-ansible 中的 Elasticsearch 是 5.6.x,并且与 Freezer 不兼容。

    已添加新的变量:freezer_database_backendfreezer_database_namefreezer_database_userfreezer_database_addressfreezer_elasticsearch_replicasfreezer_es_protocolfreezer_es_addressfreezer_es_port

  • HAProxy 后端默认连接限制为 2000,但是 MariaDB 默认最大连接数为 10000。已将其更改为匹配 MariaDB 限制。

    ‘haproxy_max_connections’ 也已增加到 40000 以适应此更改。

  • 从源代码安装 kolla-ansible 时,现在必须安装 kolla_ansible python 模块,除了在 requirements.txt 中列出的 python 依赖项之外。这是通过

    pip install /path/to/kolla-ansible
    

    如果 git 仓库在当前目录中,请使用以下命令以避免从 PyPI 安装软件包

    pip install ./kolla-ansible
    
  • 更改了数据库备份过程,以使用 mariabackup,该工具与 MariaDB 10.3 兼容。先前使用的基于 qpress 的压缩现在已替换为 gzip。已相应修改记录的恢复过程。有关更多信息,请参阅 Mariabackup 文档

  • 删除了 cinder_iscsi_helper 变量,该变量在 Stein 周期中已被弃用,转而使用 cinder_target_helper

  • Heat 角色已停止禁用已弃用的插件。要将此更改应用于现有部署,将在升级期间自动删除文件 /etc/kolla/heat-engine/_deprecated.yaml

  • 删除了对使用传统 Docker 包安装 Docker 的支持,以及变量 docker_legacy_packages。现在始终使用 Community Edition (CE) 包安装 Docker。

  • 不再部署 nova-consoleauth 服务。自 Rocky 以来的 nova 已将其 弃用,并且其他 nova 服务不再使用它。

  • Nova的遗留升级方法已被移除,取而代之的是自Stein版本以来默认的滚动升级。 nova_enable_rolling_upgrade 不应再被设置。

  • 已移除对OracleLinux容器部署的支持。

  • 在Train版本中,Tacker开始使用本地文件系统来存储VNF包和CSAR文件。Kolla Ansible不提供共享文件系统功能,因此每个Tacker服务只部署一个实例,并且全部部署在同一主机上。之前的多节点部署在升级时将被降级。

弃用说明

  • 弃用对Ceph部署的支持。在未来的版本中,Kolla Ansible将移除对Ceph部署的支持。在此之前,我们将确保提供迁移到其他工具(例如Ceph Ansible)的路径。对于新的部署,建议使用其他工具来部署Ceph,以避免未来的迁移。可以通过遵循外部Ceph指南将其与OpenStack集成。

  • 弃用对ONOS集成配置部署的支持。它将在Ussuri周期中被移除。Neutron(网络)项目自2017年起就不再支持ONOS。

  • 弃用对OpenDaylight (ODL)部署的支持。在Ussuri周期中,对ODL部署的支持将被移除。Kolla提供的ODL版本自Rocky版本以来Neutron就不再支持。建议使用ODL上游文档来部署它。

  • 通过docker_custom_option(在systemd单元文件中使用)配置Docker守护进程已被弃用,取而代之的是docker_custom_config变量,它将选项添加到/etc/docker/daemon.json

  • 变量enable_xtrabackup已被弃用,取而代之的是enable_mariabackup

  • 移除了hnas_iscsi cinder后端。Hitachi NAS Platform iSCSI驱动程序在Ocata版本中已被Cinder标记为不支持

  • Neutron LBaaS项目已退役,Kolla-Ansible中对其的支持已被移除。

  • 变量enable_cadf_notifications已被弃用。CADF是keystone中的默认通知格式。要启用keystone通知,用户现在应将keystone_default_notifications_topic_enabled设置为yes,或通过enable_ceilometer启用Ceilometer。

错误修复

  • 如果短主机名不同,则将系统主机名添加到/etc/hosts。这可以在某些情况下修复Nova实例的实时迁移。有关详细信息,请参阅bug 1830023

  • etcdcinder_coordination_backend和/或designate_coordination_backend一起使用时,配置已更改为使用etcd3gw(也称为etcd3+httptooz协调驱动程序,而不是etcd3,因为后者可用性和稳定性存在问题。etcd3无法很好地处理基于eventlet的服务,例如cinder和designate的服务。有关详细信息,请参阅bug 18520861854932。另请参阅引入etcd3gw的tooz变更

  • 修复了一个问题,镜像拉取失败可能导致容器被移除且无法替换。详情请参阅 bug 1852572

  • 修复了 Swift 卷在内核 4.19 及更高版本上挂载失败的问题,原因是 XFS 挂载选项中移除了 nobarrier。详情请参阅 bug 1800132

其他说明

  • 上游已弃用的Nova RetryFilter已从Blazar启用和假Nova配置中移除。自Queens版本以来,它没有效果。

  • 虽然Kolla Ansible现在避免在消息传递或数据库连接信息更改时复制Nova单元,但现有部署的操作员应使用运行nova_api镜像的容器中的nova-manage cell_v2命令手动清理重复的单元,只留下两个单元,一个名为cell0,另一个具有正确的连接信息。

  • Tempest不再禁用IPv6测试。现在使用上游默认设置。