1.3. 主要的技术变化
OpenShift Container Platform 4.6 包括以下显著的技术更改。
现在,每个集群版本都提供默认 Operator 目录
从 OpenShift Container Platform 4.6 开始,Operator Lifecycle Manager(OLM)和 OperatorHub 使用的红帽提供的默认目录现在作为特定于 OpenShift Container Platform 次要版本的索引镜像提供。这允许 Operator 供应商针对每个集群版本发布 Operator 版本。
这些索引镜像基于 Bundle Format,用于替换基于已弃用的软件包清单格式的 App Registry 目录镜像(这些镜像针对 OpenShift Container Platform 4 的早期版本发布)。OpenShift Container Platform 4.1 到 4.5 将继续共享单个 App Registry 目录。
虽然红帽不会为 OpenShift Container Platform 4.6 及之后的版本发布 App Registry 目录镜像,但基于 Package Manifest Format 的自定义目录镜像仍被支持。
如需有关捆绑格式和索引镜像的更多信息,请参阅 Operator Framework 打包格式。
重要的 Operator 升级要求
集群管理员必须确保之前通过 Operator Lifecycle Manager(OLM)安装的所有 Operator 都会在其最新频道中更新至升级到 OpenShift Container Platform 4.6 的最新版本。更新 Operator 可确保当默认 OperatorHub 目录在 OpenShift Container Platform 4.5 中的 App Registry 目录切换到 OpenShift Container Platform 4.6 中的新的索引镜像目录时,它们具有有效的升级路径。
如需了解更多有关确保安装的 Operator 的信息,请参阅升级安装的 Operators,并使用自动或手动批准策略进行升级。
其他资源
如需了解 OpenShift Container Platform 4.6 所需的已部署红帽集成组件(包括红帽 Fuse、Red Hat AMQ 和 Red Hat 3scale)的最低版本,请参阅以下红帽知识库文章:
CNI 网络供应商现在使用在集群节点上安装的 OVS
OpenShift SDN 和 OVN-Kubernetes Container Network Interface(CNI)集群网络供应商现在都使用在集群节点上安装的 Open vSwitch(OVS)版本。在以前的版本中,OVS 会在每个节点上运行,由一个守护进程集进行管理。使用主机 OVS 可避免任何可能的停机时间,如升级 OVS 容器化版本。
在使用已弃用 API 时会发出警告
在每次调用已弃用 API 时,client-go
和 oc
都会包括警告信息。调用已弃用的 API 会返回一个警告消息,其中包含目标 Kubernetes 移除发行版本和替换 API(如果适用)。
例如:
warnings.go:67] batch/v1beta1 CronJob is deprecated in v1.22+, unavailable in v1.25+
这是 Kubernetes 1.19 中包含的新功能。
改进了COPY
和 ADD
构建说明
OpenShift Container Platform 构建中的 COPY
和 ADD
指令的性能有所提高。与 docker
相比,buildah
中的 COPY
和 ADD
指令的初始实施性能明显下降。在这个版本中,构建可以更快地运行,特别是使用大型源存储库。(BZ#1833328)
Operator SDK v0.19.4
OpenShift Container Platform 4.6 支持 Operator SDK v0.19.4,它包括以下显著的技术更改:
- operator SDK 现在与 OpenShift Container Platform 范围一致使用 UBI-8 和 Python 3。下游基础镜像现在使用 UBI-8 并包含 Python 3。
-
run --local
命令已弃用,以run local
替代。 -
run --olm
和--kubeconfig
命令已启用,以run packagemanifests
替代。 -
默认 CRD 版本从
apiextensions.k8s.io/v1beta1
改为apiextensions.k8s.io/v1
,用于创建或生成 CRD。 -
--kubeconfig
标志添加到<run|cleanup> packagemanifests
命令中。
基于 Ansible 的 Operator 的增强包括:
- Ansible Operator 现在是一个受支持的发行版本。
-
Ansible Operator 现在包括一个
healthz
端点和liveness(存活度)
探测。
基于 Helm 的 Operator 的增强包括
- 当集群范围的发行版本资源改变时,Helm Operator 可以进行监视和协调。
- Helm Operator 现在可以通过为原生 Kubernetes 对象使用三向策略合并补丁来协调逻辑,以便正确实现并应用阵列补丁策略。
-
Helm Operator 的默认 API 版本变为
helm.operator-sdk/v1alpha1
。
UBI 8 用于 OpenShift Container Platform 中的所有镜像
OpenShift Container Platform 中的所有镜像现在默认使用通用基础镜像(UBI)版本 8。
Jenkins Node.js 代理升级
Jenkins Node.js 默认代理已升级到 Node.js 版本 12。
oc adm must-gather
命令默认不收集审计日志
oc adm must-gather
命令不再默认收集审计日志。要使用 oc
命令收集审计日志,必须包含额外参数。例如:
$ oc adm must-gather -- /usr/bin/gather_audit_logs
已为 OpenShift Container Platform 发行版本重命名了二进制 sha256sum.txt.sig
文件
OpenShift Container Platform 发行版本中包括的 sha256sum.txt.sig
文件已重命名为 sha256sum.txt.gpg
。这个二进制文件包含每个安装程序和客户端二进制文件的哈希值,用来验证它们的完整性。
重命名的二进制文件允许 GPG 正确验证 sha256sum.txt
。这在以前的版本中因为命名冲突而不能实现。