Kubernetes 1.22 已弃用的 API

本页面提供有关 Kubernetes 1.22 版本中已弃用 API 的信息。如需了解详情,请参阅 Kubernetes 已弃用的 API 迁移指南

1.22 中已移除的 API

Kubernetes 1.22 版中大多数已弃用的 API 都是以前的 Beta API,这些 API 已从 Beta 版 (v1beta1) 升级到正式版 (v1)。GA API 提供长期的兼容性保证,并且应该用于取代已弃用的 Beta API。

所有现有对象均可使用 GA API 进行交互。

网络钩子资源

从 1.22 版开始,我们不再提供 MutatingWebhookConfigurationValidatingWebhookConfiguration 的 Beta API 版本。

  • 迁移清单和 API 客户端以使用 admissionregistration.k8s.io/v1 API 版本。
  • 请参阅下表,了解 GA API 版本中的重大更改:

    字段 更改
    webhooks[*].failurePolicy 默认值已从 Ignore 更改为 Fail
    webhooks[*].matchPolicy 默认值已从 Exact 更改为 Equivalent
    webhooks[*].timeoutSeconds 默认值已从 30s 更改为 10s
    webhooks[*].sideEffects 默认值已移除,且该字段现在是必填字段。仅允许使用 NoneNoneOnDryRun
    webhooks[*].admissionReviewVersions 默认值已移除,并且该字段现在是必填字段(AdmissionReview 的受支持版本是 v1v1beta1)。
    webhooks[*].name 在通过 admissionregistration.k8s.io/v1 创建的对象列表中,此名称必须是唯一的。

CustomResourceDefinition

从 1.22 版开始,我们不再提供 CustomResourceDefinition 的 Beta API 版本。

  • 迁移清单和 API 客户端以使用 apiextensions.k8s.io/v1 API 版本。
  • 请参阅下表,了解 GA API 版本中的重大更改:

    字段 更改
    spec.scope 不再默认为 Namespaced。必须明确指定该值。
    spec.version 已移除。请改用 spec.versions
    spec.validation 已移除。请改用 spec.versions[*].schema
    spec.subresources 已移除。请改用 spec.versions[*].subresources
    spec.additionalPrinterColumns 已移除。请改用 spec.versions[*].additionalPrinterColumns
    spec.conversion.webhookClientConfig 已移至 spec.conversion.webhook.clientConfig
    spec.conversion.conversionReviewVersions 已移至 spec.conversion.webhook.conversionReviewVersions
    spec.versions[*].schema.openAPIV3Schema 现在在创建 v1 CustomResourceDefinition 对象时是必需的,并且必须是结构架构
    spec.preserveUnknownFields 创建 v1 CustomResourceDefinition 对象时,不允许使用值 true。必须在架构定义中将该值指定为 x-kubernetes-preserve-unknown-fields: true
    additionalPrinterColumns additionalPrinterColumns 项中,JSONPath 字段已重命名为 jsonPath

APIService

从 1.22 版开始,我们不再提供 APIService 的 Beta API 版本。迁移清单和 API 客户端以使用 apiregistration.k8s.io/v1 API 版本。

TokenReview

从 1.22 版开始,我们不再提供 TokenReview 的 Beta API 版本。迁移清单和 API 客户端以使用 authentication.k8s.io/v1 API 版本。

SubjectAccessReview 资源

自 1.22 版起,我们不再提供 LocalSubjectAccessReviewSelfSubjectAccessReviewSubjectAccessReview 的 Beta API 版本。

  • 迁移清单和 API 客户端以使用 authorization.k8s.io/v1 API 版本。
  • 请参阅下表,了解 GA API 版本中的重大更改:

    字段 更改
    spec.group 已重命名为 spec.groups

CertificateSigningRequest

从 1.22 版开始,我们不再提供 CertificateSigningRequest 的 Beta API 版本。

  • 迁移清单和 API 客户端以使用 certificates.k8s.io/v1 API 版本。
  • 请参阅下表,了解 GA API 版本中的重大更改:

    字段 更改
    spec.signerName 对于请求证书的 API 客户端,此字段为必填字段(请参阅已知的 Kubernetes 签名者),并且不允许通过 certificates.k8s.io/v1 API 创建对 kubernetes.io/legacy-unknown 的请求。
    spec.usages 对于请求证书的 API 客户端,此字段为必填字段。此字段不能包含重复值,并且只能包含已知的用量。
    status.conditions 对于批准或签署证书的 API 客户端,此字段不能包含重复类型。
    status.conditions[*].status 对于批准或签署证书的 API 客户端,此字段现在是必填字段。
    status.certificate 对于批准或签署证书的 API 客户端,此字段必须采用 PEM 编码,并且仅包含 CERTIFICATE 块。

租期

从 1.22 版开始,我们不再提供 Lease 的 Beta API 版本。迁移清单和 API 客户端以使用 coordination.k8s.io/v1 API 版本。

入站

自 1.22 版开始,我们不再提供 Ingress 的 Beta API 版本(extensions/v1beta1networking.k8s.io/v1beta1)。

  • 迁移清单和 API 客户端以使用 networking.k8s.io/v1 API 版本。
  • 请参阅下表,了解 GA API 版本中的重大更改:

    字段 更改
    spec.backend 已重命名为 spec.defaultBackend
    后端 serviceName 已重命名为 service.name
    servicePort 数字后端 servicePort 字段已重命名为 service.port.number。字符串后端 servicePort 字段已重命名为 service.port.name
    pathType 现在对于每个指定的路径都是必需的。值可以是:PrefixExactImplementationSpecific。如要匹配未定义的 v1beta1 行为,请使用 ImplementationSpecific

IngressClass

从 1.22 版开始,我们不再提供 IngressClass 的 Beta API 版本。迁移清单和 API 客户端以使用 networking.k8s.io/v1 API 版本。

RBAC 资源

自 1.22 版起,我们不再提供 ClusterRoleClusterRoleBindingRoleRoleBinding 的 Beta API 版本。迁移清单和 API 客户端以使用 rbac.authorization.k8s.io/v1 API 版本。

PriorityClass

从 1.22 版开始,我们不再提供 PriorityClass 的 Beta API 版本。迁移清单和 API 客户端以使用 scheduling.k8s.io/v1 API 版本。

存储资源

自 1.22 版起,我们不再提供 CSIDriverCSINodeStorageClassVolumeAttachment 的 Beta API 版本。迁移清单和 API 客户端以使用 storage.k8s.io/v1 API 版本。

查找写入已弃用的 API 的 API 客户端

启用了 Google Cloud 的运维套件的集群可以使用以下管理员活动日志查询来显示非 Google 管理的用户对 1.22 API 的使用情况:

resource.type="k8s_cluster"
labels."k8s.io/removed-release"="1.22"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")

准备升级到 1.22

您无需删除并重新创建任何 API 对象。所有现有的 API 对象都可以使用新的 API 版本进行读取和更新。 不过,在升级到 Kubernetes 1.22 之前,我们建议您先迁移客户端和清单。如需了解详情,请参阅Kubernetes 已弃用的 API 迁移指南的“应对措施|”部分

资源

如需了解详情,请参阅 OSS Kubernetes 文档: