1.5. 弃用和删除的功能

之前版本中的一些功能已被弃用或删除。

弃用的功能仍然包含在 OpenShift Container Platform 中,并将继续被支持。但是,这个功能会在以后的发行版本中被删除,且不建议在新的部署中使用。有关 OpenShift Container Platform 4.9 中已弃用并删除的主要功能的最新列表,请参考下表。表后列出了更详细的、已弃用和删除的功能信息。

在下表中,被标记为以下状态的功能:

  • GA: 正式发行
  • TP: 技术预览
  • DEP: 已弃用
  • REM: 删除

表 1.1. 过时和删除的功能

功能OCP 4.7OCP 4.8OCP 4.9

软件包清单格式(Operator 框架)

DEP

REM

REM

Operator 目录的 SQLite 数据库格式

GA

GA

DEP

oc adm catalog build

DEP

REM

REM

oc adm catalog mirror--filter-by-os 标记

DEP

REM

REM

v1beta1 CRD

DEP

DEP

REM

Docker Registry v1 API

DEP

DEP

REM

Metering Operator

DEP

DEP

REM

调度程序策略

DEP

DEP

DEP

Cluster Samples Operator 的 ImageChangesInProgress 条件

DEP

DEP

DEP

Cluster Samples Operator 的 MigrationInProgress 条件

DEP

DEP

DEP

使用不带有 apiVersion 组的 v1 用于 OpenShift Container Platform 资源

DEP

DEP

REM

在 RHCOS 中使用 dhclient

DEP

DEP

REM

Cluster Loader

GA

DEP

DEP

使用自己的 RHEL 7 计算机器

DEP

DEP

DEP

Builds 的 BuildConfig spec 中的 lastTriggeredImageID 字段

GA

DEP

REM

Jenkins Operator

TP

DEP

DEP

基于 Prometheus 的 HPA 定制 metrics adapter

TP

REM

REM

vSphere 6.7 更新 2 或更早版本以及虚拟硬件版本 13

GA

GA

DEP

Red Hat Virtualization(RHV)的 instance_type_id 安装配置参数

DEP

DEP

DEP

Microsoft Azure 集群的 Mint 凭证

GA

GA

REM

1.5.1. 已弃用的功能

1.5.1.1. Operator 目录的 SQLite 数据库格式

Operator Lifecycle Manager (OLM) 用于目录和索引镜像的 SQLite 数据库格式已弃用,包括相关的 opm CLI 命令。建议集群管理员和目录维护人员熟悉 OpenShift Container Platform 4.9 中引入的新的基于文件的目录格式,并开始迁移目录工作流。

注意

OpenShift Container Platform 4.6 及更新的版本为 Red Hat 提供的默认 Operator 目录 当前仍然以 SQLite 数据库格式提供。

1.5.1.2. vSphere 6.7 更新 2 及更早的集群安装以及虚拟硬件版本 13 现已弃用

在 VMware vSphere 版本 6.7 Update 2 或更早版本以及虚拟硬件版本 13 上安装集群已弃用。对这些版本的支持将在 OpenShift Container Platform 以后的版本结束。

现在,硬件版本 15 是 OpenShift Container Platform 中 vSphere 虚拟机的默认版本。硬件版本 15 将是将来的 OpenShift Container Platform 版本中唯一支持的版本。

1.5.1.3. Red Hat Virtualization(RHV)的 instance_type_id 安装配置参数

instance_type_id 安装配置参数已弃用,并将在以后的发行版本中删除。

1.5.2. 删除的功能

1.5.2.1. Metering

此发行版本删除了 OpenShift Container Platform Metering Operator 功能。

1.5.2.2. 从 Kubernetes 1.22 中删除 Beta API

Kubernetes 1.22 删除了以下已弃用的 v1beta1 API。迁移清单和 API 客户端以使用 v1 API 版本。有关迁移已删除 API 的更多信息,请参阅 Kubernetes 文档

表 1.2. v1beta1 API 从 Kubernetes 1.22 中删除

资源API主要变化

APIService

apiregistration.k8s.io/v1beta1

CertificateSigningRequest

certificates.k8s.io/v1beta1

ClusterRole

rbac.authorization.k8s.io/v1beta1

ClusterRoleBinding

rbac.authorization.k8s.io/v1beta1

CSIDriver

storage.k8s.io/v1beta1

CSINode

storage.k8s.io/v1beta1

CustomResourceDefinition

apiextensions.k8s.io/v1beta1

入口

extensions/v1beta1

入口

networking.k8s.io/v1beta1

IngressClass

networking.k8s.io/v1beta1

Lease

coordination.k8s.io/v1beta1

LocalSubjectAccessReview

authorization.k8s.io/v1beta1

MutatingWebhookConfiguration

admissionregistration.k8s.io/v1beta1

PriorityClass

scheduling.k8s.io/v1beta1

角色

rbac.authorization.k8s.io/v1beta1

RoleBinding

rbac.authorization.k8s.io/v1beta1

SelfSubjectAccessReview

authorization.k8s.io/v1beta1

StorageClass

storage.k8s.io/v1beta1

SubjectAccessReview

authorization.k8s.io/v1beta1

TokenReview

authentication.k8s.io/v1beta1

ValidatingWebhookConfiguration

admissionregistration.k8s.io/v1beta1

VolumeAttachment

storage.k8s.io/v1beta1

1.5.2.3. 已删除 descheduler v1beta1 API

OpenShift Container Platform 4.9 中删除了 descheduler 的已弃用 v1beta1 API。使用 descheduler v1beta1 API 版本将任何资源迁移到 v1

1.5.2.4. 在 RHCOS 中删除了 dhclient

deprecated dhclient 二进制文件已从 RHCOS 中删除。从 OpenShift Container Platform 4.6 开始,RHCOS 切换到使用 initramfs 中的 NetworkManager 在早期引导过程中配置网络。改为使用 NetworkManager 内部 DHCP 客户端进行网络配置。如需更多信息,请参阅 BZ#1908462

1.5.2.5. 停止更新 lastTriggeredImageID 字段并忽略它

buildConfig.spec.triggers[i].imageChage 引用的 ImageStreamTag 指向一个新镜像时,当前发行版本会停止更新 buildConfig.spec.triggers[i].imageChange.lastTriggeredImageID。此发行版本更新了 buildConfig.status.imageChangeTriggers[i].lastTriggeredImageID 字段。

另外,Build Image Change Trigger 控制器会忽略 buildConfig.spec.triggers[i].imageChange.lastTriggeredImageID 字段。

现在,Build Image Change Trigger 控制器会基于 buildConfig.status.imageChangeTriggers[i].lastTriggeredImageID 字段,以及其现在与 buildConfig.spec.triggers[i].imageChange 中引用的 ImageStreamTag 的镜像 ID 的比较进行构建。

因此,更新需要检查 buildConfig.spec.triggers[i].imageChange.lastTriggeredImageID 的脚本和作业。(BUILD-190)

1.5.2.6. 使用没有 apiVersion 组的 v1 用于 OpenShift Container Platform 资源

对于 OpenShift Container Platform 资源中使用没有 apiVersion 组的 v1 的支持已被删除。包含 *.openshift.io 的每个资源都必须与 API index 中找到的 apiVersion 值匹配。

1.5.2.7. 删除了对 Microsoft Azure 的 mint 凭证的支持

从 OpenShift Container Platform 4.9.24 开始,在 Microsoft Azure 集群上以 mint 模式使用 Cloud Credential Operator(CCO)的支持已从 OpenShift Container Platform 4.9 中删除。此更改的原因是 Microsoft 的 Azure AD Graph API 将于 2022 年 6 月 30 日停用,并被向后移植到 z-stream 更新中所有支持的 OpenShift Container Platform 版本。

对于在以前安装的使用 mint 模式的 Azure 集群,CCO 会尝试更新现有的 secret。如果 secret 包含之前 minted 应用程序注册服务主体的凭证,则会使用 kube-system/azure-credentials 中的 secret 的内容更新。这个行为和 passthrough 模式类似。

对于将凭证模式设置为默认值 "" 的集群,更新的 CCO 会自动从 mint 模式运行,以 passthrough 模式运行。如果您的集群将凭证模式明确设置为 mint 模式("Mint"),则必须将值改为 """Passthrough"

注意

除了 mint 模式所需的 Contributor 角色外,修改后的应用程序注册服务主体现在还需要用于 passthrough 模式的 User Access Administrator 角色。

虽然 Azure AD Graph API 仍然可用,但升级版 OpenShift Container Platform 的 CCO 会尝试清理之前 mint 的应用注册服务主体。在 Azure AD Graph API 之前升级集群可能会避免需要手动清理资源。

如果在 Azure AD Graph API 停用后,集群被升级到一个不再支持 mint 模式的 OpenShift Container Platform 版本,CCO 会在关联的 CredentialsRequest 上设置 OrphanedCloudResource 条件,但不会将相关错误视为是致命(fatal)错误。该条件包括与 unable to clean up App Registration / Service Principal: <app_registration_name> 类似的消息。在 Azure AD Graph API 停用后,清理需要使用 Azure CLI 工具或 Azure Web 控制台手动删除剩余的应用程序注册服务主体。

要手动清理资源,您必须找到并删除受影响的资源。

  1. 使用 Azure CLI 工具,通过运行以下命令从 OrphanedCloudResource 条件消息过滤使用 <app_registration_name> 的应用程序注册服务主体:

    $ az ad app list --filter "displayname eq '<app_registration_name>'" --query '[].objectId'

    输出示例

    [
      "038c2538-7c40-49f5-abe5-f59c59c29244"
    ]

  2. 运行以下命令来删除应用程序注册服务主体:

    $ az ad app delete --id 038c2538-7c40-49f5-abe5-f59c59c29244
注意

在手动清理资源后,OrphanedCloudResource 条件会保留,因为 CCO 无法验证资源是否已清理。