2.8.11. RHBA-2019:1605 - OpenShift Container Platform 3.11.117 程序错误修复更新
发布日期:2019-06-26
OpenShift Container Platform release 3.11.117 现已正式发布。其软件包列表和程序错误修正信息包括在 RHBA-2019:1605 公告中。此更新包括的容器镜像由 RHBA-2019:1606 公告提供。
注意
版本 3.11.117 包含 openshift-ansible
软件包,它带有较新的版本 3.11.123。这是预期的,不会影响集群操作。详情请查看 Red Hat Solution。
2.8.11.1. 程序错误修复
-
oc create route dry-run -o yaml
命令不会输出路由对象。这可以通过将路由对象输出到命令行来解决这个问题。(BZ#1418021) -
一些
.operations
索引项目被赋予一个值default openshift-
。现在,它被改为kube-system
。(BZ#1571190) 在 director 部署的 OpenShift 环境中,GlusterFS playbooks 会在每次运行时自动生成新的 heketi secret 密钥。因此,在 CNS 部署中扩展或配置更改等操作会失败。作为临时解决方案,请完成以下步骤:
在部署后,获取 heketi secret 密钥。在一个 master 节点上使用此命令:
$ sudo oc get secret heketi-storage-admin-secret --namespace glusterfs -o json | jq -r .data.key | base64 -d
在环境文件中,将以下参数设置为该值:
openshift_storage_glusterfs_heketi_admin_key openshift_storage_glusterfs_registry_heketi_admin_key
因此,只要手动提取参数,对 CNS 部署进行扩展或配置更改的操作也可正常工作。(BZ#1640382)
-
当生成新 CA 时,节点上的证书不会更新,也不会就绪。现在,重新部署证书 playbook 将复制证书并加入节点。替换 CA 时节点不再处于
NotReady
状态。(BZ#1652746) - oc_adm_router Ansible 模块允许编辑为路由器 DeploymentConfig 添加重复的环境变量。将指定编辑到路由器 DeploymentConfig 的 Ansible 清单文件可添加重复的环境变量,可能会生成一个具有无法预计行为的 DeploymentConfig。如果编辑将环境变量附加到路由器 DeploymentConfig,且由该名称指定的变量已存在,oc_adm_router 模块现在会删除旧变量。使用 Ansible 清单文件将环境变量附加到路由器 DeploymentConfig 现在具有可预测的行为,并允许用户覆盖默认环境变量设置。(BZ#1656487)
- 重新部署 master 证书的 playbook 不会更新 Web 控制台 secret,从而导致 web 控制台无法启动。现在,当运行 master 证书重新部署 playbook 时,会重新创建 Web 控制台 secret。(BZ#1667063)
-
日志记录 playbook 无法用于 Ansible 2.7。
include_role
和import_role
的行为在版本 2.6 和 2.7 中有所不同,这会导致日志出问题。因此,即使不使用 ops 集群部署,也会出现带有"-ops"后缀的错误。要解决这个问题,请在日志记录 playbook 和角色中使用include_role
而不是使用import_role
。日志记录 Ansible 代码可用于 Ansible 2.6 和 Ansible 2.7。(BZ#1671315) - 如果有多个网卡,OpenShift 服务可能会选择不正确的 DNS IP 地址。因此,DNS 请求无法从 Pod 工作。现在,DNS 有 sane 默认设置,它遵循 kubelet 用来获取可路由节点 IP 地址的类似模式。(BZ#1680059)
- 升级过程中的初始化速度很慢。sanity 检查使用的用来验证主机变量的代码效率较低。这个代码已被更新,主机变量现在存储在类中。因此,主机变量不会在每次检查时都复制。要在升级过程中实现完整性检查和初始化,需要较少的时间来完成。(BZ#1682924)
-
使用 Satellite 在断开连接的安装中安装时
oreg_url
变量无法正常工作,因为 etcd 镜像无法在断开连接的安装中执行拉取操作。现在,在相关文档中添加了相关的与osm_etcd_image
的 etcd 镜像 URL 相关问题的内容。(BZ#1689796) -
如果构建 Pod 被驱除,则构建会报告
GenericBuildFailure
。因此,很难确定构建失败的原因。现在,添加了一个新的故障原因BuildPodEvicted
。(BZ#1690066) - 由于 cadvisor 索引没有报告范围错误,节点有时会出现 panic 问题。现在,通过 kube 代码的后向移植解决了这个问题。(BZ#1691023)
-
因为
oauth-proxy
没有传递用户令牌,所以 Elasticsearch 无法被 Prometheus 监控。现在,令牌会被交换到 ElasticSearch,具有适当角色的用户可在 Prometheus 中检索指标数据。(BZ#1695903) -
在多节点设置过程中,部署节点在
setup_dns.yaml
playbook 中会失败。这可以通过修复传递给add_host
功能的主机名来解决。现在,多节点设置可以正常进行。(BZ#1698922) -
因为升级过程中没有使用一些 OpenShift 变量,次版本间的升级会失败。现在,在升级过程中会读取
api_port
及其他与 apiserver 相关的变量,升级可以成功完成。(BZ#1699696) -
如果主机没有UTC 时区,Elasticsearch 可能会因为无效的证书日期而无法启动。当 OpenShift 节点的时区没有被设置为 UTC 时区时,会使用当前非 UTC 时间戳进行
NotBefore
检查。如果时区早于 UTC,NotBefore
检查会失败。现在,无论节点的时区是什么,UTC 时间戳都会被设置为证书中的启动日期,而因为非UTC 时间戳的失败也不会被报告。(BZ#1702544) -
CustomResourceDefinition
错误的信息比较混淆,这会导致故障排除变得困难。现在,CRD 错误信息已被修正,有助于对 CRD 错误进行故障排除。(BZ#1702693) -
Fluentd 远程 syslog 插件代码中的一个示例变量缺少了
@
。在有些情况下,systemd-journald 记录了错误的值。这会导致 rsyslog 转发失败。现在,这个变量已被修正,远程日志记录可以成功完成。(BZ#1703904) -
长时间运行的 Jenkins 代理和从属 pod 会遇到无效的进程错误,从而导致在 pod 被终止前大量进程出现在进程列表中。现在,
dumb-init
被部署来清理这些失效的进程。(BZ#1707448) -
环境变量
JOURNAL_READ_FROM_HEAD
被设置为一个空字符串。这会导致 journald 输入的read_from_head
默认值为 true。当 Fluentd 在节点上首次启动时,它会在整个日志中读取。这可能会导致系统消息在 ElasticSearch 和 Kibana 中显示几小时的延迟。现在,Fluentd 会检查值是否被设置且不为空,或者使用默认值 false。当日志在新节点上启动时,Fluentd 将从日志的尾部读取。(BZ#1707524) -
脚本
99-origin-dns.sh
将一个 debug 标志设置为启用,这会默认记录调试级别信息。这个问题已被解决,现在 debug 被设置为 false。(BZ#1707799) - Kubernetes pod 模板会随机移除。这是因为 OpenShift Jenkins Sync 插件在处理它们时将名称相同的 ImagesStreams 和 ConfigMap 混淆。一个类型的事件可能会删除为另一个类型创建的 pod 模板。该插件已被修改,以跟踪哪个 API 对象类型创建了给定名称的 pod 模板。(BZ#1709626)
-
openshift_set_node_ip
变量已弃用,但仍包含在清单示例文件中。现在,这个问题已从示例文件和openshift_set_node_ip
变量代码中删除。(BZ#1712488) - 在以前的版本中,web 控制台可能会显示不正确的 "Scaling to…"在某些情况下,项目概述中的有状态集的值。现在,在 web 控制台项目概述中可以正确地更新有状态的集合所需的副本值。(BZ#1713211)
-
在以前的版本中,当服务选择了由部署配置创建的 Pod 自动设置的
DeploymentConfig
标签时,服务无法正确显示在项目概述中。现在,它会正确地显示在概述中选择DeploymentConfig
标签的服务。(BZ#1717028) -
集群自动扩展没有
clusterrole
权限来驱除 pod,因此不会自动扩展节点。现在,驱除权限已被添加到自动扩展集群角色中。pod 可以被驱除,并且可以缩减节点。(BZ#1718458) - 如果使用出口 IP 的 Pod 试图联系没有响应的外部主机,出口 IP 监控代码可能会错误地认为托管出口 IP 的节点没有响应。高可用性出口 IP 可能已经从一个节点切换到另一个节点。监控代码现在将"出口节点没有响应"与"最终目的地没有响应"区分开来。因此,高可用性出口 IP 不会在节点间进行不必要的切换。(BZ#1718542)
-
重构
openshift_facts
会导致 MTU 被错误设置。主机无法与非默认 MTU 设置进行通信。openshift_facts.py
脚本已更新,以正确地检测和设置主机环境的 MTU。现在主机可以正确地与非默认 MTU 通讯。(BZ#1720581)