728x90
1. Kubernetes의 명령형 및 선언형 접근 방식
- Kubernetes에서 명령형(imperative)과 선언형(declarative) 접근 방식에 대해 학습
2. 명령형 및 선언형 접근 방식 이해
2.1 비유를 통한 이해
- 친구의 집을 방문하기 위한 두 가지 접근 방식
- 명령형 접근: 택시 기사에게 길을 지시하는 방식.
- 선언형 접근: 목적지만 지정하고 시스템이 길을 찾도록 하는 방식.
2.2 인프라 관리에서의 접근 방식
- Imperative (명령형 접근)
- 인프라 프로비저닝을 단계별로 지시하는 방식.
- 예: VM을 프로비저닝하고, NGINX를 설치하고, 설정 파일을 편집하고,
소스 코드를 다운로드한 후 NGINX를 시작하는 과정.
- Declarative (선언형 접근)
- 요구 사항을 선언하고 시스템이 이를 충족하도록 하는 방식.
- 예: NGINX가 설치된 VM이 필요하다는 요구 사항을 선언하고, 시스템이 필요한 작업을 수행함.
3. Kubernetes에서의 명령형 접근 방식
3.1 명령어를 통한 객체 관리
- kubectl run 명령을 사용하여 파드를 생성.
- kubectl create deployment 명령을 사용하여 배포 생성.
- kubectl expose 명령을 사용하여 서비스를 생성하여 배포를 노출.
- kubectl edit 명령을 사용하여 기존 객체를 편집.
- kubectl scale 명령을 사용하여 배포 또는 레플리카셋을 스케일링.
- kubectl set image 명령을 사용하여 배포 이미지 업데이트.
3.2 객체 구성 파일을 통한 관리
- kubectl run, kubectl create, kubectl expose 명령을 사용하여 새 객체를 생성.
- kubectl edit, kubectl scale, kubectl set 명령을 사용하여 기존 객체를 수정.
- 간단한 작업에 유용하지만 복잡한 작업에는 길고 복잡한 명령어 필요.
- 객체 정의 파일 작성
- YAML 형식으로 객체의 요구 사항을 명시.
- kubectl create 명령을 사용하여 객체 생성.
- 변경 사항 관리
- kubectl edit 명령을 사용하여 라이브 객체 편집 가능.
- kubectl replace 명령을 사용하여 구성 파일을 통해 변경 사항 적용.
4. Kubernetes에서의 선언형 접근방식
4.1 객체 상태 선언
- 객체 구성 파일을 작성하여 애플리케이션과 서비스의 예상 상태를 정의.
- kubectl apply 명령을 사용하여 구성 파일을 적용하고,
- Kubernetes가 시스템을 예상 상태로 만듦.
- 객체가 없으면 생성, 이미 있으면 변경 사항만 적용.
- 여러 객체 구성 파일을 한 디렉터리에 저장하고 한 번에 적용 가능.
4.2 선언형 접근의 장점
- 시스템이 객체의 현재 상태를 확인
- kubectl apply 명령을 다시 실행
- 필요한 변경 사항을 판단하여 자동으로 적용.
- 명령어 사용이 아닌 구성 파일을 통해 변경 사항을 추적하고 관리 가능.
5. 시험 준비 팁
- 명령형 접근 방식을 사용하여 시간 절약
- 예: 파드 또는 배포를 빠르게 생성할 때 명령형 명령어 사용.
- 기존 객체 속성을 편집할 때 kubectl edit 명령 사용.
- 복잡한 요구 사항이 있을 때는 객체 구성 파일 사용
- 예: 다중 컨테이너, 환경 변수, 명령어, 초기화 컨테이너 등을 포함한 객체 생성 시.
- 오류가 발생했을 때 쉽게 파일을 업데이트하고 적용 가능.
- kubectl apply 명령 사용을 익히고 실습 필요.
6. 결론
- 명령형 및 선언형 접근 방식은 각각의 장단점이 있음.
- 상황에 따라 적절한 접근 방식을 선택하여 Kubernetes 객체를 관리해야 함.
- 시험 준비를 위해 다양한 접근 방식을 연습하고,
- Kubernetes 문서 페이지를 참조하여 추가 학습 필요.
728x90
'자격증 > CKA' 카테고리의 다른 글
[CKA] Udemy 53. Manual Scheduling (0) | 2024.07.05 |
---|---|
[CKA] Udemy 45. 시험 Tips - Imperative Commands with Kubectl (0) | 2024.07.04 |
[CKA] Udemy 41. Namespaces (0) | 2024.07.02 |
[CKA] Udemy 38. Services - Load Balancer (0) | 2024.07.01 |
[CKA] Udemy 37. Services - Cluster IP (0) | 2024.07.01 |