Kubernetes 1.22에서 지원 중단된 API

이 페이지에서는 Kubernetes 1.22 릴리스에서 지원 중단된 API에 대한 정보를 제공합니다. 자세한 내용은 Kubernetes 지원 중단된 API 마이그레이션 가이드를 참조하세요.

1.22에서 삭제된 API

Kubernetes 버전 1.22에서 대부분의 지원 중단된 API는 Beta(v1beta1)에서 GA(v1)로 전환된 이전의 베타 API들입니다. GA API는 보다 장기적인 호환성 보증을 제공하며, 지원 중단된 베타 API 대신 사용됩니다.

모든 기존 객체는 GA API를 사용하여 상호 작용할 수 있습니다.

웹훅 리소스

MutatingWebhookConfigurationValidatingWebhookConfiguration의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다.

  • admissionregistration.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 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

CustomResourceDefinition의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다.

  • apiextensions.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 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

APIService의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다. apiregistration.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.

TokenReview

TokenReview의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다. authentication.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.

SubjectAccessReview 리소스

LocalSubjectAccessReview, SelfSubjectAccessReview, SubjectAccessReview의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다.

  • authorization.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.
  • GA API 버전의 중요한 변경사항을 보여주는 다음 표를 참조하세요.

    필드 변경
    spec.group 이름이 spec.groups로 변경되었습니다.

CertificateSigningRequest

CertificateSigningRequest의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다.

  • certificates.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.
  • GA 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를 기준으로 더 이상 제공되지 않습니다. coordination.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.

Ingress

Ingress의 베타 API 버전(extensions/v1beta1networking.k8s.io/v1beta1)이 버전 1.22를 기준으로 더 이상 제공되지 않습니다.

  • networking.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.
  • GA API 버전의 중요한 변경사항을 보여주는 다음 표를 참조하세요.

    필드 변경
    spec.backend 이름이 spec.defaultBackend로 변경되었습니다.
    backend serviceName 이름이 service.name으로 변경되었습니다.
    servicePort 숫자 백엔드 servicePort 필드의 이름이 service.port.number로 변경되었습니다. 문자열 백엔드 servicePort 필드의 이름이 service.port.name으로 변경되었습니다.
    pathType 이제 지정된 각 경로에 대해 필수 항목입니다. 값은 Prefix, Exact, ImplementationSpecific일 수 있습니다. 정의되지 않은 v1beta1 동작과 일치하는 항목을 찾으려면 ImplementationSpecific를 사용합니다.

IngressClass

IngressClass의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다. networking.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.

RBAC 리소스

ClusterRole, ClusterRoleBinding, Role, RoleBinding의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다. rbac.authorization.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.

PriorityClass

PriorityClass의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다. scheduling.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하세요.

스토리지 리소스

CSIDriver, CSINode, StorageClass, VolumeAttachment의 베타 API 버전은 버전 1.22를 기준으로 더 이상 제공되지 않습니다. storage.k8s.io/v1 API 버전을 사용하도록 매니페스트 및 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 설명서에서 확인할 수 있습니다.