설명
지원 중단이 예고된 API는 향후 Kubernetes 버전에서 제공되지 않을 수 있습니다. 이미 제공이 중단된 API 버전으로 객체를 생성하거나 수정하면 요청이 실패할 수 있습니다. 지원 여부는 리소스 종류와 대상 클러스터 버전에 따라 확인해야 합니다.
잠재적 영향
- 클러스터 업그레이드 후 배포나 운영 자동화가 실패할 수 있습니다.
- 버전 문자열만 바꾸고 필드와 기본값의 차이를 놓치면 의도와 다른 구성이 적용될 수 있습니다.
해결 방법
- 대상 Kubernetes 버전의 API 마이그레이션 가이드를 확인하고 매니페스트와 API 클라이언트를 지원되는 버전으로 옮기세요.
- 필수 필드, 선택자와 기본값의 차이를 검토하고 시험 환경에서 적용하세요. API 제공 중단이 기존에 저장된 객체의 즉시 삭제를 뜻하는 것은 아닙니다.
예시
Deployment의 API와 선택자만 보여 주는 기존 발췌입니다. apps/v1beta1 Deployment는 Kubernetes 1.16부터 제공되지 않습니다. 실제 배포에는 selector와 일치하는 레이블을 가진 Pod template도 필요합니다.
변경 전
yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
apps/v1beta1을 사용하므로 이를 제공하지 않는 클러스터에서는 요청이 거부됩니다.
변경 후
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
apps/v1과 선택자를 사용합니다. 생략된 Pod template과 나머지 필수 구성을 함께 맞춰야 합니다.