_zero_.log
로그인
_zero_.log
로그인
쿠버네티스 명령형(Imperative) 관리와 선언형(Declarative) 관리 개념
ZER0
·
2022년 10월 10일
팔로우
0
k8s
kubernetes
0
Kubernetes
목록 보기
7/39
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과 동일하게 수정
4. 참고
https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
https://seongjin.me/kubernetes-imparative-vs-declarative/amp/
ZER0
Security Compliance Engineer
팔로우
이전 포스트
쿠버네티스 서비스(Service) 개념과 설정
다음 포스트
쿠버네티스 메뉴얼 스케줄링(Manual Scheduling)과 노드 셀렉터(Node Selector) 개념과 설정
0개의 댓글
댓글 작성