Certified Kubernetes Administration - 17

2024-06-20

  • Kubernetes
  • Cloud

비유를 통한 이해

  • 명령형 접근법 (Imperative Approach):

    • 택시를 타고 목적지에 도착하기 위해 운전사에게 단계별로 지시를 내리는 것.

    • 예: 오른쪽으로 가고, 왼쪽으로 가고, 특정 거리에 도착하면 멈추는 식으로 세세한 지시를 내림.

    • 명령형 접근법은 무엇을 해야 하는지뿐만 아니라 어떻게 해야 하는지를 지정.

  • 선언형 접근법 (Declarative Approach):

    • 오늘날 우버를 통해 택시를 부를 때, 최종 목적지만 지정하고 시스템이 최적의 경로를 찾는 것.

    • 예: 톰의 집으로 가달라고 요청.

    • 선언형 접근법은 무엇을 해야 하는지만 지정하고, 시스템이 자동으로 방법을 결정.

인프라 관리 접근법

  • 명령형 접근법:

    • 단계별 지시를 통해 인프라를 프로비저닝.

    • 예: VM을 생성하고, NGINX 설치, 구성 파일 편집, 코드 다운로드, 서버 시작 등.

    • 문제점: 중간에 단계가 실패할 경우 복잡한 체크와 추가 단계가 필요.

  • 선언형 접근법:

    • 요구사항을 선언하고 시스템이 자동으로 인프라를 구성.

    • 예: NGINX가 설치된 VM을 필요로 한다고 선언.

    • 장점: 시스템이 필요한 작업을 자동으로 결정하고 수행.

Kubernetes에서의 명령형 접근법

  • 명령어 예제:

    • 파드 생성: kubectl run

    • 디플로이먼트 생성: kubectl create deployment

    • 서비스 생성: kubectl expose

    • 오브젝트 편집: kubectl edit

    • 디플로이먼트 스케일링: kubectl scale

    • 이미지 업데이트: kubectl set image

  • 명령형 접근의 한계:

    • 복잡한 오브젝트 생성 시 긴 명령어가 필요.

    • 히스토리에만 기록되어 다른 사용자가 이해하기 어려움.

    • 대규모 환경에서 관리 어려움.

Kubernetes에서의 선언형 접근법

  • 객체 구성 파일 사용:

    • YAML 파일로 객체 정의.

    • kubectl create -f 명령어로 객체 생성.

    • kubectl apply 명령어로 객체 업데이트.

  • 선언형 접근의 장점:

    • 객체 구성 파일이 항상 남아 있어 추적 가능.

    • 코드 저장소에 저장 가능.

    • 변경 사항 검토 및 승인 프로세스에 적합.

  • 변경 사항 적용:

    • 로컬 YAML 파일 수정 후 kubectl replace 명령어로 업데이트.

    • kubectl apply 명령어로 객체가 없으면 생성, 있으면 업데이트.

명령형 및 선언형 접근법 요약

  • 명령형 접근:

    • 빠른 생성 및 수정에 유리.

    • 시험에서 시간 절약에 도움.

    • 복잡한 환경에서 관리 어려움.

  • 선언형 접근:

    • YAML 파일을 통한 지속적 관리.

    • 변경 사항 추적 및 검토 가능.

    • kubectl apply 명령어로 객체 생성 및 업데이트.

시험 준비 팁

  • 명령형 명령어:

    • 단순한 객체 생성 및 수정 시 빠르게 사용.

    • kubectl edit 명령어로 기존 객체 수정.

    • 복잡한 요구사항 시 객체 구성 파일 사용.

    • kubectl apply 명령어로 객체 업데이트.

  • 문서화 및 실습:

    • Kubernetes 문서 페이지를 참고.

    • 실습에서 명령형 접근법을 사용해 문제 해결 연습.

Certified ...

Certified ...