Deprecated Kubernetes API

Deprecated Kubernetes API

Helm은 Kubernetes API Server를 사용해 배포된 리소스의 라이프사이클을 관리해요. Kubernetes API Server는 시간이 지나면서 API를 deprecated할 수 있어요. 이렇게 되면 Helm은 일정 기간이 지난 후 코드베이스에서 deprecated API를 제거해요.

여기서는 Helm이 사용하거나 알고 있는 deprecated Kubernetes API를 문서화해요.

출처: 문서

본문

목차

V1.32

Kubernetes V1.32에서 deprecated된 Kubernetes API 리소스 목록

storage.k8s.io/v1beta1CSIDriver, CSINode, CSIStorageCapacity, VolumeAttachments가 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 storage.k8s.io/v1이에요

apps/v1beta2DaemonSet, Deployment, ReplicaSet이 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 apps/v1이에요

batch/v1beta1CronJob이 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 batch/v1이에요

policy/v1beta1PodSecurityPolicy가 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 없어요 (Pod Security Standards를 위해서는 대신 PodSecurity admission controller를 사용하세요)

Helm 4가 사용하는 deprecated API:

  • CRD 설치: apiextensions.k8s.io/v1beta1

  • Ingress: extensions/v1beta1

  • NetworkPolicy: extensions/v1beta1

  • PodSecurityPolicy: policy/v1beta1 (플러그인은 이를 허용해야 할 수도 있어요)

  • kind: NamespaceapiVersion은 v1이에요; kubectl get pods --all-namespaces와 네임스페이스 탐색은 v1core/v1을 기반으로 해요

  • Helm 4는 storage.k8s.iov1beta1 shim을 제거해요

  • Helm 4는 apps/v1beta2의 deprecated v1beta1을 같은 apps/v1 shim으로 shim 처리해요

apps/v1beta2 shims: CRD의 shim은 apiextensions.k8s.io/v1beta1이에요. CRD가 apiextensions.k8s.io/v1을 사용하려면 차트 CRD를 다시 정의해야 해요.

V1.31

Kubernetes V1.31에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

flowcontrol.apiserver.k8s.io/v1beta2 -> v1.31에서 제거 (v1beta2 버전 제거는 V1.26에서 공지됨)

flowcontrol.apiserver.k8s.io/v1beta3 -> GA 버전

V1.30

Kubernetes V1.30에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

flowcontrol.apiserver.k8s.io/v1beta2 -> v1.30에서 제거 (v1beta2 버전 제거는 V1.26에서 공지됨)

flowcontrol.apiserver.k8s.io/v1beta3 -> GA 버전

V1.28

Kubernetes V1.28에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta2 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.27

Kubernetes V1.27에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

flowcontrol.apiserver.k8s.io/v1beta2 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.26

Kubernetes V1.26에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

flowcontrol.apiserver.k8s.io/v1beta2 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.25

Kubernetes V1.25에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

flowcontrol.apiserver.k8s.io/v1beta2 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.24

Kubernetes V1.24에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

flowcontrol.apiserver.k8s.io/v1beta2 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.23

Kubernetes V1.23에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.22

Kubernetes V1.22에서 deprecated된 Kubernetes API 리소스 목록

flowcontrol.apiserver.k8s.io/v1beta1 -> flowcontrol.apiserver.k8s.io/v1beta3 -> flowcontrol.apiserver.k8s.io/v1

V1.8

Kubernetes V1.8에서 deprecated된 Kubernetes API 리소스 목록

extensions/v1beta1 -> apps/v1 (실제로 V1.8에서 deprecated된 것은 아니지만, 오래된 Helm 버전을 위해 유지됨.)

Helm v3 storage 드라이버는 릴리스 이름을 저장하며, storage.k8s.io/v1beta1 CRD에는 v1이 사용돼요.

Deprecated API 처리

  • Helm 4는 Kubernetes API Server를 사용해 배포된 리소스를 관리하므로, 클러스터의 현재 API 집합에 대해 API Server의 feature-gate에 의존해요.

  • Helm 4는 차트의 올바른 동작(특히 CRD 설치)에 필요할 때 deprecated Kubernetes API를 사용해요. 표 1은 Helm이 현재 사용하는 deprecated API를 보여 줘요.

  • 제출된 이슈: helm/helm#11835 — "Add the deprecated Kubernetes APIs list"

더 알아보기 (Learn more)