1) kubectl run command
kubectl run nginx --image nginx
개발환경에서 사용하는것을 추천한다.
장점
- 클러스터에 특정 오브젝트를 한번에 실행하거나 시작할수 있는 가장 쉬운 방법.
(실제 이미지 바로 실행 시킴)
단점
- 기존 설정에 대한 히스토리를 제공하지 않음.
- 변경사항이나 audit 내역, 템플릿등을 제공하지 않음.
2) kubectl create command
kubectl create -f nginx.yaml
최소한 1개 이상의 YAML file 이나 JSON format file 을 이용해서 Object 를 생성한다.
장점
- 설정파일 내용을 git 같은곳에 저장이 가능하기 때문에 설정에대한 변경 히스토리가 확인 가능한다.
- 새로운 object 를 생성하기 위한 템플릿들을 제공한다.
단점
- YAML 파일 작성이 필요하며 템플릿 사용을 위해 Object scema 에 대한 이해가 필요.
3) kubectl apply command
모든 설정 파일들은 디렉토리 안에 들어있고 오브젝트를 생성하거나 패치한다.
장점
- 실행중인 오브젝트 직접 적용한 변경사항을 설정파일에 merge 하지 않더라고 유지된다.
단점
- 디버깅하기 어렵고 예상한 결과가 아닐경우 이해하기 어렵다.
- diffs 를 사용힌 부분 업데이트는 복잡한 병합과 패치를 만들게 된다.
apply 를 할경우에는 기존 설정에 대한 정보가 주석처리 되어 확인이 가능하다는 점이 큰 차이점.
create 기존 정보를 유지하지 않음.
- kubectl create = 명령형(Imperative)
= 구성파일 내 완전하게 정의되고 기록되어질 경우 동작 & object가 이미 존재할 경우 Error 발생
- kubectl apply = 선언형(Declarative)
= 부분적인 spec만 주어져도 업데이트 가능 & object가 존재하지 않을 경우 새로운 object 생성
즉, 처음 생성은 create 로 실행하고 , 그 다음 업데이트가 발생할 경우 apply 를 하면됨.
https://kubernetes.io/ko/docs/reference/kubectl/overview/
'CKA (Certified Kubernetes Administrator) > CKA TIP' 카테고리의 다른 글
CKA (Certified Kubernetes Administrator) 공부 방법 및 시험 정보 (0) | 2023.01.24 |
---|---|
CKA - Storage (0) | 2022.01.26 |
kubectl Cheat Sheet (0) | 2022.01.25 |
Multi-container pods (0) | 2022.01.24 |