5.6. CRD(사용자 정의 리소스 정의) 업그레이드 안전성
클러스터 확장에 의해 제공되는 사용자 지정 자원 정의(CRD)를 업데이트하면 Operator Lifecycle Manager(OLM) v1이 CRD 업그레이드 보안 사전 파일 검사를 실행하여 이전 버전과 호환성을 확인합니다.
CRD 업데이트에서는 클러스터에서 변경 사항을 진행하기 전에 검증 검사를 전달해야 합니다.
5.6.1. CRD 업그레이드 금지 링크 복사링크가 클립보드에 복사되었습니다!
검증되지 않는 수정을 수행하지 않으려면 업그레이드 보안 프리플레이트 검사에서 차단된 사용자 지정 자원 정의(CRD) 변경 사항을 검토하십시오.
CRD 업그레이드 안전 사전 비행 검사는 기존 CRD의 다음 변경 사항 중 하나를 감지하면 업그레이드를 차단합니다.
- 기존 버전에 새로운 필드 추가
- 기존 버전에서 기존 필드 제거
- 기존 버전의 기존 필드 유형 변경
- 이전에 하나가 없는 필드에 기본값을 추가합니다.
- 기존 필드의 기본값 변경
- 기존 필드의 기본값 제거
- 이전에는 enum 제한을 갖고 있지 않은 필드에 enum 제한을 추가
- 기존 필드의 기존 enum 값이 제거됩니다.
- 기존 버전의 기존 필드의 최소값 증가
- 기존 버전의 기존 필드의 최대 값을 줄이는 방법
- 최소 또는 최대 제약 요소를 이전에 포함하지 않은 필드에 추가
최소값과 최대값 변경 규칙은 최소값, minLength, minProperties, minItems, maximum, maxLength, maxProperties 및 maxItems 제약 조건에 적용됩니다.
Preflight 검사는 Kubernetes API 서버에서 처리하는 다음 구조 변경에 대한 업그레이드를 차단합니다.
-
클러스터및네임스페이스간의 CRD 범위 변경 - 저장된 CRD의 기존 버전 제거
CRD 업그레이드 안전 사전 비행 검사가 금지된 변경 사항을 감지하면 각 위반 사항에 대해 오류가 기록됩니다.
CRD 변경이 명시적으로 허용되지 않거나 알려진 금지된 변경으로 분류되지 않으면 Preflight 체크가 업그레이드를 차단하고 "unknown change" 오류를 기록합니다.