Kubernetes 1.22 の非推奨 API

このページには、Kubernetes 1.22 リリースの非推奨 API の情報が掲載されています。詳しくは、Kubernetes 非推奨 API 移行ガイドをご覧ください。

1.22 で削除された API

Kubernetes バージョン 1.22 の非推奨 API のほとんどは以前のベータ版 API で、その後、ベータ版(v1beta1)から一般提供(v1)に移行されました。一般提供の API では、長期の互換性が保証されます。非推奨のベータ版 API の代わりに、一般提供の API を使用してください。

既存のオブジェクトはすべて、一般提供の API を使用して操作できます。

Webhook リソース

MutatingWebhookConfigurationValidatingWebhookConfiguration のベータ版 API は、バージョン 1.22 で提供されなくなりました。

  • マニフェストと API クライアントを移行して、admissionregistration.k8s.io/v1 API バージョンを使用してください。
  • 一般提供の 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

CustomResourceDefinition のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。

  • マニフェストと API クライアントを移行して、apiextensions.k8s.io/v1 API バージョンを使用してください。
  • 一般提供の 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

APIService のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと API クライアントを移行して、apiregistration.k8s.io/v1 API バージョンを使用してください。

TokenReview

TokenReview のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと API クライアントを移行して、authentication.k8s.io/v1 API バージョンを使用してください。

SubjectAccessReview リソース

LocalSubjectAccessReviewSelfSubjectAccessReviewSubjectAccessReview のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。

  • マニフェストと API クライアントを移行して、authorization.k8s.io/v1 API バージョンを使用してください。
  • 一般提供の API バージョンの重要な変更点については、次の表をご覧ください。

    フィールド 変更
    spec.group 名前が spec.groups に変わりました。

CertificateSigningRequest

CertificateSigningRequest のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。

  • マニフェストと API クライアントを移行して、certificates.k8s.io/v1 API バージョンを使用してください。
  • 一般提供の API バージョンの重要な変更点については、次の表をご覧ください。

    フィールド 変更
    spec.signerName 証明書をリクエストする API クライアントの場合、このフィールドは必須です(既知の Kubernetes 署名者を参照)。kubernetes.io/legacy-unknown に対するリクエストは、certificates.k8s.io/v1 API を介して作成することはできません。
    spec.usages 証明書をリクエストする API クライアントの場合、このフィールドは必須です。このフィールドに重複する値を含めることはできません。既知の使用方法のみを含める必要があります。
    status.conditions 証明書の承認または署名を行う API クライアントの場合、このフィールドに重複するタイプを含めることはできません。
    status.conditions[*].status 証明書の承認または署名を行う API クライアントの場合、このフィールドは必須です。
    status.certificate 証明書の承認または署名を行う API クライアントの場合、このフィールドは PEM でエンコードし、CERTIFICATE ブロックのみを含める必要があります。

Lease

Lease のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと API クライアントを移行して、coordination.k8s.io/v1 API バージョンを使用してください。

Ingress

Ingress のベータ版 API バージョン(extensions/v1beta1networking.k8s.io/v1beta1)は、バージョン 1.22 で提供されなくなりました。

  • マニフェストと API クライアントを移行して、networking.k8s.io/v1 API バージョンを使用してください。
  • 一般提供の API バージョンの重要な変更点については、次の表をご覧ください。

    フィールド 変更
    spec.backend 名前が spec.defaultBackend に変わりました。
    backend serviceName 名前が service.name に変わりました。
    servicePort 数値バックエンドの servicePort フィールドの名前が service.port.number に変わりました。文字列バックエンドの servicePort フィールドの名前が service.port.name に変わりました。
    pathType 指定されたパスごとに必要になりました。値は PrefixExactImplementationSpecific のいずれかです。未定義の v1beta1 動作と一致させるには、ImplementationSpecific を使用します。

IngressClass

IngressClass のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと API クライアントを移行して、networking.k8s.io/v1 API バージョンを使用してください。

RBAC リソース

ClusterRoleClusterRoleBindingRoleRoleBinding のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと API クライアントを移行して、rbac.authorization.k8s.io/v1 API バージョンを使用してください。

PriorityClass

PriorityClass のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと API クライアントを移行して、scheduling.k8s.io/v1 API バージョンを使用してください。

Storage リソース

CSIDriverCSINodeStorageClassVolumeAttachment のベータ版 API バージョンは、バージョン 1.22 で提供されなくなりました。マニフェストと 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 にアップグレードする前に、クライアントとマニフェストを移行することをおすすめします。詳細については、非推奨 API の移行ガイドの「対処方法」をご覧ください。

リソース

詳細については、以下の OSS Kubernetes ドキュメントをご覧ください。