반응형
1. 명령형(Imperative) vs 선언형(Declarative)
- 명령형(Imperative)
- shell에서 명령어(create, run, create, edit, replace 등)를 활용해 오브젝트를 핸들링하는 방식
- (장점) 간단한 작업의 경우 빠르게 수행 가능
- (단점) IaC 관리 불가능
- (단점) 여러명의 엔지니어가 작업할 경우 히스토리 추적·관리 불가능
- (단점) edit으로 변경한 내용이 수정 형태(추가 or 삭제)에 따라 Live Object Configuration 또는 Last Applied Configuration 둘 중 한곳에만 적용되어 설정의 불일치 발생
- 선언형(Declarative)
- yaml 파일에 오브젝트 상태를 정의하고 apply로 생성하는 방식
- (장점) IaC 가능
- (장점) 작업에 대한 히스토리 추적·관리 가능
- (장점) apply 명령어를 활용하기 때문에 오브젝트 변경 내용이 Live Object Configuration와 Last Applied Configuration에 적용되어 설정이 자동으로 일치
- (단점) 간단한 작업일 경우 yaml 파일 정의가 번거로움
2. Configuration File vs Live Object Configuration vs Last Applied Configuration
- Configuration File
- 오브젝트 상태를 정의한 yaml 파일
- Live Object Configuration
- 'kubectl apply -f [yaml_파일]'를 통해 생성된 오브젝트 설정
- Last Applied Configuration
- Live Object Configuration 내용 중 annotations에 포함된 json
3. Configuration 변경 절차
- 설정을 수정·추가하는 경우(ex. nginx:1.18 -> nginx:1.20 이미지 변경)
- 1) nginx 이미지를 수정한 yaml 파일을 apply
- 2) Configuration File 과 Live Object Configuration을 비교하여 차이점이 존재하는 부분(수정·추가된 부분)을 Live Object Configuration에 적용
- 3) Live Object Configuration의 내용을 Last Applied Configuration에 반영
- 설정을 삭제하는 경우(ex. app: zero 레이블 삭제)
- 1) 레이블을 삭제한 yaml 파일을 apply
- 2) Configuration File 과 Last Applied Configuration을 비교하여 차이점이 존재하는 부분을 Live Object Configuration에 적용
- 3) Last Applied Configuration을 Live Object Configuration과 동일하게 수정
반응형
'Kubernetes' 카테고리의 다른 글
Kubernetes 레이블(label)과 셀렉터(selector) 개념 (0) | 2023.03.16 |
---|---|
Kubernetes 메뉴얼 스케줄링(Manual Scheduling)과 노드 셀렉터(Node Selector) 개념과 설정 (0) | 2023.03.16 |
Kubernetes 서비스(Service) 개념과 설정 (0) | 2023.03.15 |
Kubernetes 네임스페이스(Namespace) 개념과 명령어 (0) | 2023.03.15 |
Kubernetes 디플로이먼트(Deployment) 개념과 명령어 (0) | 2023.03.15 |