Certified Kubernetes Administration - 19

2024-06-20

  • Kubernetes
  • Cloud

kubectl apply 명령어 작동 방식 이해

기본 작동 원리

  • 선언형 관리: kubectl apply 명령어는 선언형 방식으로 객체를 관리.

  • 세 가지 구성 파일: 로컬 구성 파일, Kubernetes의 라이브 객체 정의, 마지막 적용된 구성 파일.

명령어 실행 시 동작

  • 객체 생성: 객체가 존재하지 않으면 생성.

  • 객체 구성 저장: 객체가 생성되면 Kubernetes 내부에 상태를 저장하는 추가 필드와 함께 객체 구성 저장.

  • 로컬 구성 파일 저장: 로컬 객체 구성 파일이 JSON 형식으로 변환되어 마지막 적용된 구성으로 저장.

업데이트 시 동작

  • 값 비교: 로컬 파일, 라이브 구성, 마지막 적용된 구성의 값을 비교하여 변경 사항을 식별.

  • 예제: NGINX 이미지가 1.19로 업데이트되면, 로컬 파일의 값과 라이브 구성의 값을 비교하여 변경 사항이 반영됨.

  • 최신화: 변경 후, 마지막 적용된 JSON 형식이 항상 최신 상태로 업데이트.

마지막 적용된 구성의 필요성

  • 필드 삭제: 예를 들어, 타입 레이블이 삭제된 경우, 마지막 적용된 구성에는 레이블이 있지만 로컬 구성에는 없으면, 라이브 구성에서 해당 필드를 제거.

  • 필드 유지: 라이브 구성에 필드가 있고 로컬 및 마지막 적용된 구성에 없으면, 필드는 그대로 유지.

저장 위치

  • JSON 파일 저장: 마지막 적용된 구성은 Kubernetes 클러스터의 라이브 객체 구성에 주석으로 저장.

  • 적용 명령어 사용 시: apply 명령어를 사용할 때만 마지막 적용된 구성이 저장됨.

  • 다른 명령어와의 차이점: kubectl create 또는 replace 명령어는 마지막 적용된 구성을 저장하지 않음.

혼합 사용 주의

  • 명령어 혼용 금지: Kubernetes 객체를 관리할 때 명령형과 선언형 접근 방식을 혼용하지 않도록 주의.

  • 적용 명령어 사용: apply 명령어를 사용하여 변경할 때, 로컬 파일, 라이브 객체 구성, 마지막 적용된 구성 세 가지를 비교하여 변경 사항 결정.

참고 자료

  • Kubernetes 문서: 위 내용은 Kubernetes 문서 페이지에 자세히 설명되어 있음.

요약

  • kubectl apply: 선언형 방식으로 객체 관리.

  • 구성 파일 비교: 로컬 파일, 라이브 구성, 마지막 적용된 구성 세 가지 비교.

  • 변경 사항 반영: 필드 추가, 삭제 및 업데이트를 자동으로 처리.

  • 명령어 혼용 주의: 명령형과 선언형 접근 방식을 혼용하지 않도록 주의.

다음 강의에서 더 자세히 다루겠습니다.

Certified ...

Certified ...