쿠버네티스에서 pod를 생성하는 3가지 방법 (run, create, apply)
1. kubectl run
가장 간단하게 pod를 만드는 방식이다. create, apply 명령어는 pod 의 정보가 기록된 yaml 파일을 활용해 pod를 만드는 반면, run 명령어는 실행 커맨드에 각종 정보를 입력해서 생성한다. 가장 간편하지만 실행시 입력한 정보가 남지 않는다. 따라서 재실행하기가 어렵고 문제가 발생했을때 원인을 찾거나 해결방법을 공유하는 등이 불편하다. 테스트나 간단한 pod를 생성할때는 유용하겠지만, 많은 configuration을 활용한다면 사실상 yaml을 작성하는게 더 편리할 수 있다.
2. kubectl create
yaml을 통해서 pod를 만드는 방식이다. apply와 가장 큰 차이점은 기존에 동일한 pod가 있을경우 에러가 발생한다는 것이다. pod 실행시 입력한 정보가 파일형태로 남아있기 때문에 재실행하거나 문제의 원인을 찾는 등의 작업이 수월하다.
3. kubectl apply
yaml을 통해서 pod를 만드는 방식이다. create와의 가장 큰 차이점은 기존에 동일한 pod가 없다면 새로운 pod를 생성하고, pod가 있다면 기존 config와 비교해서 수정된 부분만 업데이트 한다. 그 외에 장점은 create와 동일하다.
아래는 apply 를 통해서 pod 가 업데이트된 예시이다.(my-nginx -> my-nginx-new)
4. run, create, apply 언제써야 될까?
run을 사용하는 이유는 간단하고 편리하기 때문이니, 개발이나 테스트 환경이 아니라면 run을 쓸 이유는 없다. create 과 apply는 사용목적에 따라서 구분해서 사용하면 된다. 기존에 없는 pod를 생성만이 목적이라면 create를, 업데이트가 목적이라면 apply를 사용하면 된다.