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 ...