Victoria 系列发布说明¶
11.4.0-18¶
安全问题¶
Kolla Ansible 以前以非特权 root 用户身份运行 Ironic 的 tftpd。现在,它将显式地使用 nobody 用户。
错误修复¶
修复 grafana 自定义 home dashboard 文件的复制任务。grafana home dashboard 文件的复制任务需要以特权模式运行,否则会发生权限被拒绝的错误。 LP#[1947710]
修复了 bug #1987982。此错误导致在 keystone 升级后数据库 log_bin_trust_function_creators 变量未被重置为“OFF”。
修复在多区域环境中,Ironic Inspector 在没有本地 Keystone 服务的区域中被配置而没有身份验证的问题。
修复
ironic-neutron-agent使用错误的选项来配置与 Ironic API 通信的接口的问题。 LP#1990675
修复启用 libvirt SASL 时 Masakari 实例监控出现的问题。libvirt SASL 在 Kolla Ansible 的最近一次更改中默认已启用。 LP#1965754
修复了一个问题,即任何 Nova 计算服务未能注册自身,将导致只有查询 nova API 的主机失败。现在,只有未能注册的主机会使 Kolla Ansible 运行失败。或者,要使单元中的所有主机在任何计算服务未能注册时都失败,请将
nova_compute_registration_fatal设置为true。 LP#1940119
prometheus openstack 导出器现在位于 haproxy 之后,在 prometheus 数据库中提供唯一的时序。同时,确保在任何给定时间间隔内只有一个导出器查询 openstack API。以前的行为是每个 openstack 导出器都在同一时间被抓取。这导致每个导出器同时查询 openstack API,引入了不必要的负载以及由于实例标签对每个导出器都是唯一的,导致 prometheus 数据库中的重复时序。
11.4.0¶
新特性¶
为 Prometheus blackbox 导出器添加
tls_connect模块。这可用于测试 TLS 服务器的连接性。
为 ironic-neutron-agent 服务实现容器健康检查。请参阅 蓝图
添加了对 libvirt SASL 身份验证的支持。默认情况下已启用。 LP#1964013
已知问题¶
现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。这些日志将不会被新的 logrotate 配置删除,需要手动删除。
升级说明¶
添加 libvirt SASL 身份验证需要在
passwords.yml中添加新的密码,即libvirt_sasl_password。可以使用现有的kolla-genpwd和kolla-mergepwd工具生成此密码。
添加 libvirt SASL 身份验证需要同时更新
nova_libvirt和nova_compute容器,使用包含必要的 Cyrus SASL 依赖项的新镜像,以及包含 SASL 凭据的配置。
更新 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
错误修复¶
即使一个操作失败,也要继续运行 Elasticsearch curator 中的所有操作。 LP#1954720
修复 Nova 在自定义
migration_interface时调整大小失败的问题。 LP#1956976
修复 Glance 与 Cinder iSCSI 后端由于缺少 lock_path 设置而失败的问题。 LP#1959663
修复 openvswitch 和 prometheus 服务缺少 logrotate 配置的问题。 LP#1961795
修复升级时 Ironic 的 PXE 组件未更新的问题。 LP#1963752
修复在 CloudKitty 中使用 Prometheus 收集器时 Prometheus HTTP API URL 的配置。 LP#1961615
修复 baremetal 角色以避免错误“无法删除“libvirtd””。现在该角色会创建符号链接 /etc/apparmor.d/disable/usr.sbin.libvirtd。 LP#1960302
现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。标准化使用 logrotate 进行日志轮转和删除。
添加了通过 kolla 配置 rabbitmq 集群接口的选项 LP#1900160 <https://bugs.launchpad.net/kolla-ansible/+bug/1900160>
修复 Libvirt AppArmor 配置文件被禁用,bootstrap-servers 进程尝试删除它的问题。请参阅 bug 1909874 以获取详细信息。
修复了在使用 Jinja2 3.1.0 时出现的问题。
修复了配置选项,该选项设置了 Neutron 发送请求到 Placement 使用的端点类型。 LP#1960503
修复了 Node Exporter 的配置问题,导致主机的所有文件系统指标都相同。 LP#1961438
修复 RabbitMQ 被配置为镜像所有服务的经典瞬态队列的问题。根据 RabbitMQ 文档,这不是受支持的配置,并导致了许多错误报告。为了避免对 RabbitMQ 集群进行意外更改,有必要将
rabbitmq_remove_ha_all_policy设置为yes以应用此修复。此变量将在 Yoga 版本中删除。 LP#1954925
修复 Cinder 升级时 Cinder 服务仍然固定到先前版本 RPC 和对象版本的问题。 LP#1954932
11.3.0¶
升级说明¶
如果未部署 Prometheus,RabbitMQ 的 Prometheus 插件不再默认启用。如果使用外部 Prometheus,则需要启用
rabbitmq_enable_prometheus_plugin以获得旧行为。
错误修复¶
删除了
barbican.conf中max_allowed_secret_in_bytes的自定义值。Barbican 中的默认最大大小翻倍,以避免某些证书出现问题。 LP #1957795
通过自定义 RabbitMQ 的
prometheus.tcp.port来解决端口冲突,从而修复了 outward_rabbitmq 的部署失败。 LP #1885106
通过将
ovn_sb_connection添加到octavia.conf来修复 Octavia 的“连接被拒绝”错误。 LP#195011
Ironic API 和 Ironic Inspector API 使用单独的策略文件。Ironic 角色已更新,能够分别处理这两个策略。
修复 Placement 没有 logrotate 配置 LP#1954723
修复了当
kolla_enable_tls_external为 true 时无法连接到 zun 控制台的问题。当kolla_enable_tls_external为 true 时,访问任何 zun 容器的控制台都会失败。此修复根据kolla_enable_tls_external的值在zun.conf中设置 wsproxybase_url的协议。 LP#1957117
修复在 Debuntu 二进制版本中 aodh 服务的 apache wsgi 配置。 LP#1953059
11.2.0¶
新功能¶
添加新的选项 prometheus_openstack_exporter_timeout 以覆盖 openstack 导出器作业的默认 scrape_timeout。
添加对使用 elasticsearch 存储后端的 CloudKitty 的支持:该功能允许您将 CloudKitty 评级文档直接存储在您的 elasticsearch 集群中。
如果您已经有一个用于日志记录的 elasticsearch 集群,它将创建一个新的 CloudKitty 特定索引。这允许您使用 Kibana、Grafana 或任何其他界面浏览您的评级数据并创建适当的仪表板或构建适当的计费服务。
添加对使用 prometheus 作为 CloudKitty 的提取器/收集器的支持:该功能允许您使用 prometheus 指标作为评级来源。使用 prometheus 允许您直接从 kolla 提供的导出器(Openstack_exporter)或您自己的自定义导出器对任何 OpenStack 对象进行评级。
添加了配置参数
haproxy_nova_spicehtml5_proxy_tunnel_timeout以配置 spicehtml5proxy haproxy 服务的Tunnel TimeOut指令。
添加了一个新的变量
disable_firewall,默认值为true。如果设置为false,则主机防火墙在kolla-ansible bootstrap-servers期间将不会被禁用。
添加了两个新的变量
service_images_pull_retries和service_images_pull_delay,它们控制镜像拉取任务的行为。如果您的注册表不是 100% 可靠(通常由于负载),这些变量很有用。默认值设置为 3 次重试和 5 秒延迟,以确保更好的默认体验(这些实际上是启用任务重试时的 Ansible 默认值)。
现在可以使用 Neutron DHCP 代理与 OVN 网络一起使用。添加了一个新的变量来控制此功能:
neutron_ovn_dhcp_agent,默认值为no。
添加了对通过
kolla_ansible_setup_filter和kolla_ansible_setup_gather_subset分别配置setup模块的filter和gather_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。
安全问题¶
修复了
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 的缓解措施。
错误修复¶
修复了 monasca-thresh 未能正确地将拓扑提交到 Storm。以前的容器在本地模式(在容器内)中运行拓扑,并且未使用 Storm 云。新的容器处理将拓扑提交到 Storm,并处理在配置更改时杀死和替换拓扑。因此,monasca-thresh 容器仅用于提交,并在完成后退出。拓扑的日志现在将在 storm worker-artifact 日志中可用。 LP#1808805
修复了一个问题,即容器中的配置可能会变得陈旧。这阻止了具有更新配置的容器重新启动,例如,如果使用了
kolla-ansible genconfig和kolla-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
修复了在禁用 RabbitMQ 且使用 IPv6 时损坏的
kolla-toolbox容器。 LP#1939883
修复了
mariadb-clustercheck在没有 HAProxy 时不会运行的问题。 LP#1944114
不再创建 haproxy 和 swift 日志的目录,这些目录是不需要的。 LP#1945070
修复了 placement 角色中的一个错误,该错误阻止在使用了自定义策略文件时部署 placement 服务。 LP#1948835
修复了错误消息中缺少当前的 Ansible 版本。 LP#1948979
修复 octavia 角色未设置 amphora 网络的 gateway_ip LP#1949260
修复 Nova API 日志写入以 -wsgi.log 结尾的文件的问题,这影响了 Fluentd 管道中这些日志的处理。 LP#1950185
修复了 Cyborg 部署中的一个问题。 LP#1937911
修复了
neutron-server的config.json中存在的问题,当使用了 VMware 插件代理时。
在较慢的节点上,grafana 的初始启动可能会遇到超时失败,因为设置数据库的迁移需要比预期更长的时间。已通过增加默认超时来解决此问题。可以通过新的参数 grafana_start_first_node_delay 和 grafana_start_first_node_retries 来更改超时设置,用于 grafana 角色。 LP#1769962
修复了当
neutron_external_interface包含多个接口时,NeutronlinuxbridgeML2 代理出现的问题。 LP#1863935
修复了 Manila 配置中缺少
[glance]部分的问题,这阻止了一些驱动程序运行。
修复了 Nova 默认配置中 Ceph 的问题,RBD 用户设置为
nova,但仅复制了cinderkeyring。ceph_nova_user的默认值更改为ceph_cinder_user的值,与ceph_nova_keyring的默认值一致。 LP#1934145
修复了一个问题,即 RabbitMQ 消耗大量 CPU,尤其是在多核系统上。RabbitMQ 的默认调优假设 RabbitMQ 正在专用主机上运行,这与典型的 Kolla Ansible 容器设置相反。有关在您的环境中调优 RabbitMQ 的更多详细信息,请参阅:https://rabbitmq.cn/runtime.html#busy-waiting https://rabbitmq.cn/runtime.html#scheduling
其他说明¶
优化了镜像拉取,以避免循环遍历禁用的服务。
11.1.0¶
新功能¶
将
octavia-driver-agent添加到Octavia部署中,以允许其他提供程序,例如ovn-octavia-provider。当Octavia启用且neutron_plugin_agent设置为ovn时,它会自动部署。也可以通过将enable_octavia_driver_agent设置为yes来启用。用户需要更新他们的清单以包含octavia-driver-agentAnsible 组。
添加了一个新的标志
docker_disable_default_network,默认值为no。Docker 默认情况下为docker0使用172.17.0.0/16进行桥接网络,这可能会导致操作员网络的路由问题。将此标志设置为yes将禁用 Docker 的桥接网络。此功能将在 Wallaby 12.0.0 版本中默认启用。
添加了一个新的 haproxy 配置文件变量,
haproxy_host_ipv4_tcp_retries2,允许用户修改此内核选项。此选项设置在建立连接状态下 TCP 数据包重传的最大次数,之后放弃。默认内核值为 15,对应于大约 13 到 30 分钟的持续时间,具体取决于重传超时。可以使用此变量来缓解 VIP 故障转移时连接卡住的问题,有关详细信息,请参阅 bug 1917068。
添加了覆盖自动检测 fluentd_version 和 fluentd_binary 的能力。现在可以将它们定义为额外的变量。这消除了配置生成对配置 docker 的依赖。
OVN 部署现在将配置
external_ids:ovn-chassis-mac-mappings以使 DVR 在 VLAN 租户网络上工作。
添加了从 RabbitMQ 收集 Prometheus 指标的支持。默认情况下,当 Prometheus 和 RabbitMQ 启用时启用此功能,可以通过将
enable_prometheus_rabbitmq_exporter设置为false来禁用它。
错误修复¶
修复了启用 Zun 时
kolla-ansible bootstrap-servers的问题,其中 Zun 特定的 Docker 配置应用于所有节点。 LP#1914378
修复了启用 S3 Token Middleware 时 Swift 部署的问题。修复了 LP#1862765
修复了 OVN 中的 Northbound 和 Southbound 数据库套接字路径。
chronyd 在服务器重启时崩溃循环 (Debian) LP#1915528
修复在使用的 NTP 守护程序“非原生”时,prechecks 无法成功的问题,例如 Debian/Ubuntu 系统上的
ntpd` 而不是 ``systemd-timesyncd或 CentOS/RHEL 系统上的chronyd。 LP#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
修复了 keystone_auth 部分中缺失的 region_name。有关详细信息,请参阅 bug 1933025。
修复了当前基于 CentOS 8 的镜像中
iscsid失败的问题,因为 pid 文件被不必要地设置。 LP#1933033
修复了 Debian 主机引导程序未删除冲突软件包的问题。现在它的行为符合文档。
修复了一个问题,当使用错误的命令名称执行
kolla-ansible时,kolla-ansible会以零退出代码退出。 LP#1929397
修复了非 HA 部署中 Alertmanger 的潜在问题。在这种情况下,对等八卦协议现在被禁用,Alertmanger 不会尝试与不存在的其他实例形成集群。 LP#1926463
添加了一个新的标志,
docker_disable_ip_forward,默认值为no,可用于(设置为yes)禁用 docker 的ip-forward选项,该选项会使 docker 将net.ipv4.ip_forwardsysctl 设置为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。
修复了启用 TLS 时的 Magnum 问题。 LP#781062
修复了通过
pip install --user安装时执行kolla-ansible的问题。 LP#1915527
修复了一个问题,即
masakari.conf为masakari-instancemonitor服务生成,但未被使用。
修复了一个问题,即
masakari-monitors.conf为masakari-api和masakari-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脚本正确运行。
其他说明¶
由于 Cinder 上游,已删除对使用 ZFSSA 与 Cinder 的支持。ZFSSA 在 Train 中不受支持,并在 Ussuri 中删除。
更新 mariabackup 使用的容器镜像。它使用的是
mariadb镜像,该镜像在 Victoria 中已被弃用,并在 Wallaby 中将被删除。而是使用mariadb-server镜像。 LP#1928129
11.0.0¶
新功能¶
添加了提供自定义 Elasticsearch 配置的能力。
添加配置参数
kolla_httpd_keep_alive以配置使用 httpd 处理 HTTP 请求的服务 Keep-Alive 超时时间。默认值为 60 秒,覆盖 httpd 之前的默认值 5 秒。
添加对多个 globals 文件的支持。主要的
globals.yml文件仍然存在。除此之外,操作员现在可以在globals.d目录(位于globals.yml旁边)中放置任意数量的*.yml文件,例如用于他们想要添加的特定服务。
通过布尔参数
enable_neutron_trunk,现在可以启用或禁用 Neutron 服务插件trunk。
添加对 octavia dev mod 的支持。
添加配置参数“etcd_enable_tls”,可用于为 etcd 服务启用 TLS 加密。 “etcd_enable_tls”的默认值由“kolla_enable_tls_backend”的值决定。
添加对 Octavia 所需资源的自动注册的支持。这包括管理网络和子网、安全组、flavor 和 SSH 密钥。目前必须手动上传 amphora 镜像。 BP#automatic-deploy-of-octavia
添加通过
kolla-ansible octavia-certificates命令自动生成 Octavia 证书的支持。
Kolla Ansible 检查现在本地 Ansible Python 环境是否一致,即使用的 Ansible 可以看到 Kolla Ansible。 LP#1856346
可以设置 HAProxy 的
timeout http-keep-alive通过haproxy_http_keep_alive_timeout。默认值为 10s,与之前通过haproxy_http_request_timeout应用的默认值相同。 LP#1892622
添加
kolla_sysctl_conf_path变量,该变量允许自定义 Kolla Ansible 播放将修改的sysctl.conf的路径。默认值为/etc/sysctl.conf,就像以前一样。
新增了一个标志,
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 版本中默认启用。
添加了配置选项,以启用从 HAProxy 到 Nova、Ironic 和 Neutron 服务的后端 TLS 加密。与启用服务 API 端点的 TLS 结合使用时,网络通信将从客户端通过 HAProxy 到后端服务进行端到端加密。
添加了支持,可以使用外部 ACME 客户端(例如 certbot)完成 ACME(例如由 Let’s Encrypt - letsencrypt.org 提供)的 http-01 挑战。相关的变量是
acme_client_servers。请阅读文档以获取有关此集成的更多信息。
通过在一个文件中生成所有 fluentd 配置来提高
common角色的性能。
可以使用自签名 TLS 证书来测试开发 OpenStack 环境中的 TLS。
kolla-ansible certificates命令将生成所需的自签名 TLS 证书。此命令已更新为首先创建一个自签名根证书颁发机构。然后,该命令生成面向内部和外部的证书,并使用根 CA 对其进行签名。如果启用了后端 TLS,该命令将生成后端证书并使用根 CA 对其进行签名。
(内部/高级) 为 haproxy 服务定义添加了对
with_frontend和with_backend的支持。这些新字段通过默认设置为true来保留旧逻辑,但可以设置为false以使所选服务不配置相应的“端”。这需要将haproxy_service_template设置为haproxy_single_service_split.cfg.j2,这是新的默认值。
为核心 OpenStack 服务实现了容器健康检查。Docker 健康检查是定期调用的脚本,用于检查正在运行的服务是否健康,这些服务在
docker ps输出中公开健康信息,并触发health_status event。健康检查现在默认启用,可以通过在globals.yml中将enable_container_healthchecks设置为no来禁用。
通过在一个文件中生成所有 logrotate 配置来提高
common角色的性能。
使用
clustercheck脚本启用 Galera 节点状态检查,该脚本由 HAProxy 用于定义节点的状态(启动/停止)。
Kolla 从 Ussuri 周期开始构建 neutron-mlnx-agent。现在这些容器也可以通过 Kolla-Ansible 部署。请注意,neutron-mlnx-agent 镜像也用于部署 neutron-eswitchd 容器。
添加了对 RabbitMQ 客户端-服务器通信的 TLS 加密的支持。有关详细信息,请参阅 蓝图。
将公共角色提取到单独的 play 中。这在规模上提供了性能优势,因为先前使用的角色依赖机制存在开销。此更改允许仅通过指定
common标签来执行公共角色。
添加了一种自定义
skydive.conf的机制。
允许使用
KOLLA_SKIP和KOLLA_UNSET值跳过和取消设置由 Kolla Ansible play 控制的 sysctl 变量。
添加了 timesync 预检查,这些预检查在未启用容器化的 chrony 时运行,以确保主机已同步系统时钟。
已知问题¶
自 Ussuri 以来,Ceph (RBD) 的处理方式存在一个错误,即生成的外部 Ceph 配置中缺少
backend_host选项。症状是卷变得无法管理,直到采取额外的管理操作。这不会影响数据平面 - 正在运行的虚拟机不会受到影响。与此相关的问题是关于活动-活动
cinder-volume服务(单主机cinder-volume不受影响),它们不应该配置backend_host,而应该使用cluster和适当的协调。一些用户可能已经自定义了他们的配置以解决此问题。Kolla 团队正在调查如何为所有用户解决此问题。与此同时,请确保在升级到 Ussuri 之前,将
backend_host选项设置为其先前值(默认值为rbd:volumes)通过配置覆盖。有关更多详细信息,请参阅参考的 bug。请注意,此问题会影响新部署和升级。 LP#1904062
升级说明¶
添加配置参数
kolla_httpd_keep_alive以配置使用 httpd 处理 HTTP 请求的服务 Keep-Alive 超时时间。默认值为 60 秒,覆盖 httpd 之前的默认值 5 秒。
Octavia 所需的资源现在默认自动注册。从 Ussuri 升级的 Octavia 用户应将
octavia_auto_configure设置为no在globals.yml中,以避免注册冲突的资源。
在使用 Logstash 6 部署 Monasca 时,任何 Monasca 的自定义 Logstash 2 配置都需要更新才能与 Logstash 6 配合使用。请参阅 文档。
HAProxy 的
timeout http-keep-alive现在通过haproxy_http_keep_alive_timeout设置。默认值为 10s,与先前通过haproxy_http_request_timeout应用的默认值相同,但新变量不遵循旧变量,因此如果以前自定义了后者以用于 keep-alive 目的,则可能需要自定义。请注意,这两个值不必相同,而且通常不相同。请阅读链接的记录以了解背景。 LP#1892622
不再为 HAProxy 中的 Neutron Server 使用
option http-tunnel。如果依赖于其古怪的行为,请手动修改。
默认
migration_interface已从network_interface移动到api_interface,后者在大多数情况下被视为内部和安全网络平面。
已替换
kolla_external_fqdn_cacert和kolla_internal_fqdn_cacert为kolla_admin_openrc_cacert,默认情况下未设置。OS_CACERT现在设置为生成的admin-openrc.sh文件中kolla_admin_openrc_cacert的值。
默认的
haproxy_service_template已更改为haproxy_single_service_split.cfg.j2。此模板允许更灵活的服务配置。以前的默认值haproxy_single_service_listen.cfg.j2现在已弃用,即将删除。无需采取任何操作,除非依赖于替换以前的默认模板内容(使用相同的名称)。
将
kibana_elasticsearch_ssl_verify的默认值从false更改为true。 LP#1885110
mariadb角色现在默认使用 mariadb-server 镜像(与以前的mariadb镜像相比),因为mariadb镜像将在 Kolla Victoria 版本中弃用并在 Wallaby 中删除。
启用 multipathd 将配置 Nova 以使用它。
Prometheus OpenStack 导出器现在使用内部端点与 OpenStack 服务通信,以匹配 Kolla Ansible 部署的其他服务的配置。可以使用公共端点,方法是将
prometheus_openstack_exporter_endpoint_type变量设置为public。
congress项目不再维护。自 Victoria 以来,它已被 退役,并且其他 OpenStack 服务不再使用它。
已删除与 Hyper-V 集成部署的支持。
通过 ml2_conf.ini 自定义 Neutron Linux bridge 和 Open vSwitch 代理配置已被删除。该配置已为这些代理拆分为 linuxbridge_agent.ini 和 openvswitch_agent.ini。旧行为在 Ussuri 中已弃用,以便在 Victoria 中删除。
已删除与 mongodb 集成部署的支持。
neutron-fwaas项目不再维护。它已被退役,并将从 Victoria 周期中删除。
已删除用于 panko 作为后端的 mongodb 支持。
已删除与 XenAPI 集成部署的支持。
Kolla-Ansible 现在需要 Ansible
2.9。不再支持 Ansible2.8。
公共角色现在在单独的 play 中执行。这引入了一些小的行为变化
公共角色现在在所有主机上运行,位于第一次启用服务之前,而不是在第一次启用服务之前
主机必须位于每个公共服务(
cron、fluentd、kolla-logs、kolla-toolbox)的必要组中,才能部署该服务如果为另一个服务(例如 nova)指定了标签,则公共角色不会自动为匹配的主机运行。必须显式指定公共标签
现在,只要启用 Apache Storm,Apache ZooKeeper 就会自动部署。
默认值
REST_API_REQUIRED_SETTINGS与 Horizon 同步。您可能需要查看 更新的配置 中公开的设置。
添加了对 Ubuntu Focal 20.04 作为主机操作系统的支持。从 Ussuri 升级的 Ubuntu 用户应首先将 OpenStack 容器升级到 Victoria,后者使用 Ubuntu Focal 20.04 基本容器镜像。然后,主机应升级到 Ubuntu Focal 20.04。
Monasca Log API 已删除。所有日志现在都转到启用了 Monasca 时的统一 Monasca API。任何自定义 Fluentd 配置和清单文件都需要更新。任何 monasca_log_api 容器都将自动删除。
弃用说明¶
以前的默认值
haproxy_service_template(haproxy_single_service_listen.cfg.j2)现在已弃用,因为haproxy_single_service_split.cfg.j2取而代之,以允许更灵活的服务配置。
变量
kolla_internal_address已弃用。此变量仅用作kolla_internal_vip_address的默认值,且未记录。
VMware 集成在 Ussuri 版本中已弃用,现在不再弃用。Nova 已经撤销了其 VMware 驱动程序的弃用,Kolla 社区对 VMware 表现出兴趣。
安全问题¶
由
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
修复了 Kibana 与新的 E*K 堆栈(6+)的部署。 LP#1799689
现在允许 IPv6 完全路由拓扑(/128 寻址)(在适用情况下)。 LP#1848941
修复了 prometheus-openstack-exporter 以使用 CA 证书。
使 Kolla-Ansible 操作期间的 haproxy 和 keepalived 重启更加健壮,尤其是在多节点场景(HA)中。
修复了 Grafana 数据源更新。 LP#1881890
如果启用了容器化的 chrony,则从 docker 主机中删除 chrony 包和 AppArmor 配置文件。 LP#1882513
在使用 Elasticsearch 6 部署 Logstash 时,默认部署了 Logstash 2,这与 Elasticsearch 6 不兼容。现在默认部署 Logstash 6。
修复了在 Ansible 清单中使用 IP 地址而不是主机名时的问题。OpenvSwitch 角色根据 inventory_hostname 设置 system-id,在 IP 地址的情况下,是第一个 IP 八位字节。这样的部署会导致多个 OVN 机箱具有重复的名称,例如“10”连接到 OVN 南向数据库 - 这会产生 Encap 数据库表中大量的创建/删除事件 - 导致 OVN/OVS/Neutron 进程的 CPU 使用率接近 100%。
修复了在启用
enable_manila_backend_generic为False时,Manila 部署启动openvswitch和neutron-openvswitch-agent容器的问题。 LP#1884939
修复了 Elasticsearch Curator cron 调度运行。 LP#1885732
修复了应用自定义 Nova 策略时 nova-conductor 的配置错误,导致
nova_conductor容器无法成功启动。 LP#1886170
修复了启用 TLS 时的 Castellan(Barbican 客户端)。 LP#1886615
修复了
gnocchi.conf中的不正确的 Ceph 密钥环文件配置,这阻止了 Gnocchi 连接到 Ceph。 LP#1886711
修复了
--configdir参数应用于默认passwords.yml位置的问题。 LP#1887180
fluentd现在将日志记录到/var/log/kolla/fluentd/fluentd.log而不是stdout。 LP#1888852
添加了 glance 角色中的功能,以添加用于图像属性保护和可互操作图像导入的额外配置文件 LP#1889272
修复了 Masakari 角色缺少
deploy-containers操作的问题。 LP#1889611
不再在 HAProxy 中为 Neutron Server 使用
option http-tunnel。 此模式早已不推荐,并且最近已完全弃用。 LP#1892686
修复了一些 Neutron 子项目未使用滚动升级方案的问题。SFC 强制使用旧方案,并且动态路由根本没有迁移。 LP#1894380
修复了一个问题,即
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
当启用
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
修复了使用 kolla_dev_mod 部署 freezer 失败的问题。 LP#1888242
为一些与 VMWare 相关的任务添加了缺失的“become: true”。修复了
复制 VMware vCenter CA 文件和复制 nsx.ini的问题。
修复在使用 kolla_dev_mod 时部署 nova 失败的问题。
与 Magnum、Cinder 和 Octavia 使用的服务的客户端保持一致,这些服务现在使用全局定义的 openstack_region_name。
修复了某些 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来应用此更改。
修复了 Cinder 升级时可能导致在线模式迁移失败的问题。 LP#1880753
修复了 etcd 服务的配置,使其协议与
internal_protocol参数的值无关。 etcd 服务不由 HAProxy 进行负载均衡,因此在internal_protocol配置为https时,没有代理层进行 TLS 终止。
修复了删除已撤离的实例时,加密块设备出现的问题。 LP#1891462
修复了 LP#1885885,其中 Monasca Fluentd 输出插件中的默认块大小从 8MB 增加到 256MB 用于文件缓冲,超过了 Monasca Log / Unified API 允许的限制。
修复了 Keystone Fernet 密钥轮换由于权限被拒绝错误而失败的问题,如果 Keystone 轮换发生在 Keystone 容器启动之前。 LP#1888512
修复了 Keystone 启动时 Fernet 密钥轮换未在配置的间隔内发生的问题。这可能是由于 Keystone 主机在计划的轮换时间处于关闭状态,或者由于 cron 作业之间的间隔不均匀所致。 LP#1895723
将 LinuxBridge agent 的 arp_responder 选项设置恢复为默认值(‘False’),因为已知这会导致 l2_population 出现问题,以及其他问题,例如与 allowed-address-pairs 扩展不完全兼容。 LP#1892776
修复了 Neutron Linux bridge ML2 驱动程序中防火墙驱动程序配置未应用的问题。 LP#1889455
修复了 Masakari 和内部 TLS 中 CA 证书未复制到容器的问题,并且未配置 CA 文件的路径。 依赖于 masakari bug 1873736 的修复。 LP#1888655
修复了 Grafana 实例争夺启动 Grafana DB 的问题。 参见 LP#1888681。
修复了 LP#1892210,其中从
neutron-server到 Memcached 的打开连接数会随着时间的推移而增长,直到达到memcached_connection_limit(默认值为 5000)设置的最大值,此时 Memcached 实例将停止工作。
添加了一个新的变量
fluentd_elasticsearch_cacert,其默认值为openstack_cacert。 如果设置,这将用于设置 Fluentd 与 Elasticsearch 通信时使用的 CA 证书包的路径。 LP#1885109
Kafka 默认主题创建被使用创建 Kafka 主题时,在多节点集群中未创建冗余副本的问题。 LP#1888522。 这会影响使用 Kafka 的 Monasca,并且之前被 Monasca 使用的旧 Kafka 客户端所掩盖,而该客户端已在 Ussuri 中升级。 具有多节点 Kafka 集群的 Monasca 用户应查阅 Kafka 文档 以增加副本数。
改进了
kolla-genpwd和kolla-mergepwd在输入文件格式不符合预期时错误报告。 LP#1880220。
修复了计算主机上未加载
br_netfilter内核模块的问题。 LP#1886796
修复了多区域部署中的 Magnum trust 操作。
Prometheus OpenStack 导出器现在使用内部端点与 OpenStack 服务通信,以匹配 Kolla Ansible 部署的其他服务的配置。
防止在未针对所有 Keystone 主机(例如,由于
--limit或--serial参数)时,向现有集群添加新的 Keystone 主机,以避免覆盖现有的 Fernet 密钥。 LP#1891364
减少 SQLAlchemy 连接池的使用,以提高控制器具有内部 VIP 发生故障时的服务可靠性。 LP#1896635
不再配置 Prometheus OpenStack 导出器使用
prometheusDocker 卷,因为从未需要过。
如果显式启用 Apache Storm,则部署 Apache ZooKeeper。 只有在也启用 Monasca 时,ZooKeeper 才会部署,通常是隐式完成的。
更新 Horizon
local_settings中REST_API_REQUIRED_SETTINGS的默认值,启用了一些功能,例如 选择实例的默认启动源。 LP#1891024
其他说明¶
为 trove 添加 trove-guestagent.conf