Train 系列发布说明¶
9.3.2-21¶
新特性¶
添加了一个新的标志
docker_disable_default_network,默认值为no。Docker 默认情况下为docker0使用172.17.0.0/16进行桥接网络,这可能会导致操作员网络的路由问题。将此标志设置为yes将禁用 Docker 的桥接网络。此功能将在 Wallaby 12.0.0 版本中默认启用。
升级说明¶
baremetal角色现在使用 CentOS8包仓库用于 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中设置 wsproxybase_url的协议。 LP#1957117
添加了一个新的标志,
docker_disable_ip_forward,默认值为no,可用于(设置为yes)禁用 docker 的ip-forward选项,该选项会使 docker 将net.ipv4.ip_forwardsysctl 设置为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而不是stdout。 LP#1888852
修复了 Masakari 角色缺少
deploy-containers操作的问题。 LP#1889611
修复了一个问题,即
keystone容器会陷入重启循环,并显示 fernet 密钥已过期。 LP#1895723
修复了
haproxy_single_service_split模板,使其适用于默认的mode(http)。 LP#1896591
修复了 Debian/Ubuntu 上错误的 fernet cron 文件路径,从
/var/spool/cron/crontabs/root/fernet-cron改为/var/spool/cron/crontabs/root。 LP#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 导出器使用
prometheusDocker 卷,因为从未需要过。
更新 Horizon
local_settings中REST_API_REQUIRED_SETTINGS的默认值,启用了一些功能,例如 选择实例的默认启动源。 LP#1891024
9.2.0¶
新特性¶
添加了提供自定义 Elasticsearch 配置的能力。
添加了 Elasticsearch Curator 用于管理聚合的日志数据。
Kolla Ansible 检查现在本地 Ansible Python 环境是否一致,即使用的 Ansible 可以看到 Kolla Ansible。 LP#1856346
升级说明¶
避免使用
setup模块进行不必要的 fact 收集。这应该可以提高使用 fact 缓存和 Ansiblesmartfact 收集策略的环境的性能。有关详细信息,请参阅 蓝图。
添加了
elasticsearch_use_v6和kibana_use_v6标志,可以将其设置为true以在 CentOS 7 或 8 上部署elasticsearch6和kibana6镜像。这些标志在 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更改为true。 LP#1885110
现在,只要启用 Apache Storm,Apache ZooKeeper 就会自动部署。
在部署使用 Logstash 6(CentOS 8 的默认设置)的 Monasca 时,任何自定义的 Monasca Logstash 2 配置都需要更新才能与 Logstash 6 配合使用。请参阅 文档。
错误修复¶
修复了使用新的 E*K 堆栈(6+)的 Kibana 部署。 LP#1799689
修复了 Grafana 数据源更新。 LP#1881890
如果启用了容器化的 chrony,则从 docker 主机中移除 chrony 包和 AppArmor 配置文件。 LP#1882513
修复了 mariadb 升级过程中的表名转义问题。 LP#1883141
修复了在启用
enable_manila_backend_generic为False时,Manila 部署启动openvswitch和neutron-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_collector和keystone_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-genpwd和kolla-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 8rabbitmq镜像兼容的 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_name。 LP#1867926
向
Debian/Ubuntu容器添加/etc/timezone。 LP#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 1857908 和 bug 1859145。
修复了在使用
--limit部署新计算主机时 Nova 存在的问题。 LP#1869371。
调整 Octavia 以适应最新的双 CA 证书配置。以下文件应存在于
/etc/kolla/config/octavia/中client.cert-and-key.pemclient_ca.cert.pemserver_ca.cert.pemserver_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。
修复了 CentOS 7 上的 IPv6 部署。RabbitMQ 和 MariaDB 的问题已得到解决。有关详细信息,请参阅以下 Launchpad 错误记录:bug 1848444、bug 1848452、bug 1856532 和 bug 1856725。
修复了 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_processes和horizon_wsgi_threads,以配置 Horizon 容器中 WSGI 的进程数和线程数。
添加了配置变量
kolla_enable_tls_internal、kolla_internal_fqdn_cert和kolla_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 时,协调是必需的。可能的值是redis或etcd。
添加了对部署多个 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 分支上为master。auto的值将不再检测kolla-ansiblePython 包的版本。
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_expiry、fernet_token_allow_expired_window和fernet_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-server、account-*、container-*或object-*。
Freezer 现在使用 MariaDB 作为默认数据库后端。
Elasticsearch 仍然是一个可选的后端,因为 Freezer 需要 Elasticsearch 版本 2.3.0。kolla-ansible 中的 Elasticsearch 是 5.6.x,并且与 Freezer 不兼容。
已添加新的变量:
freezer_database_backend、freezer_database_name、freezer_database_user、freezer_database_address、freezer_elasticsearch_replicas、freezer_es_protocol、freezer_es_address、freezer_es_port
HAProxy 后端默认连接限制为 2000,但是 MariaDB 默认最大连接数为 10000。已将其更改为匹配 MariaDB 限制。
‘haproxy_max_connections’ 也已增加到 40000 以适应此更改。
从源代码安装
kolla-ansible时,现在必须安装kolla_ansiblepython 模块,除了在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容器部署的支持。
Neutron LBaaS项目已退役。升级到Train版本将不会升级Neutron LBaaS。请参阅https://wiki.openstack.org/wiki/Neutron/LBaaS/Deprecation了解其退役情况以及Octavia作为其继任者。
在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_iscsicinder后端。Hitachi NAS Platform iSCSI驱动程序在Ocata版本中已被Cinder标记为不支持。
Neutron FWaaS v1自Stein周期以来已被弃用并移除[0]。因此,移除kolla中的相关选项。
Neutron LBaaS项目已退役,Kolla-Ansible中对其的支持已被移除。
变量
enable_cadf_notifications已被弃用。CADF是keystone中的默认通知格式。要启用keystone通知,用户现在应将keystone_default_notifications_topic_enabled设置为yes,或通过enable_ceilometer启用Ceilometer。
错误修复¶
如果短主机名不同,则将系统主机名添加到
/etc/hosts。这可以在某些情况下修复Nova实例的实时迁移。有关详细信息,请参阅bug 1830023。
当
etcd与cinder_coordination_backend和/或designate_coordination_backend一起使用时,配置已更改为使用etcd3gw(也称为etcd3+http)tooz协调驱动程序,而不是etcd3,因为后者可用性和稳定性存在问题。etcd3无法很好地处理基于eventlet的服务,例如cinder和designate的服务。有关详细信息,请参阅bug 1852086和1854932。另请参阅引入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测试。现在使用上游默认设置。