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/v1beta1 → CSIDriver, CSINode, CSIStorageCapacity, VolumeAttachments가 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 storage.k8s.io/v1이에요
apps/v1beta2 → DaemonSet, Deployment, ReplicaSet이 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 apps/v1이에요
batch/v1beta1 → CronJob이 Kubernetes V1.32에서 deprecated됐어요(V1.33에서 제거); 대체 API는 batch/v1이에요
policy/v1beta1 → PodSecurityPolicy가 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: Namespace의apiVersion은 v1이에요;kubectl get pods --all-namespaces와 네임스페이스 탐색은v1과core/v1을 기반으로 해요 -
Helm 4는
storage.k8s.io의v1beta1shim을 제거해요 -
Helm 4는
apps/v1beta2의 deprecatedv1beta1을 같은apps/v1shim으로 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"