컨테이너/쿠버네티스

[쿠버네티스] create VS apply

hsayho 2021. 1. 30. 13:45

쿠버네티스 공부를 하던 중 Pod을 생성할 때 명령어가 두 가지가 보여서 무엇에 차이가 있는지 궁금하여 찾아보았습니다.

 

command

object가 존재하지 않을 경우

object가 이미 존재할 경우

create

새로운 object가 생성됩니다.

ERROR

apply

새로운 object가 생성됩니다.

object를 구성합니다.

(부분적인 spec을 받아들입니다.)

replace

ERROR

obejct가 삭제된 뒤 새롭게 생성합니다.

 

create VS apply

 

create 명령은 각 오브젝트의 구성이 그 구성파일 내에 완전하게 정의되고 기록되어질 경우 잘 작동합니다. 하지만 활성 오브젝트가 업데이트 되고, 구성파일 안에 병합하지 않으면, 업데이트 내용은 다음 replace가 될 때 삭제될 것입니다.

 

이렇게 동일 오브젝트에 대해 여러 명의 작성자들로부터의 지원이 필요한 경우, 오브젝트를 관리하기 위해

kubectl apply를 사용할 수 있습니다.

 

쉽게 말해, create 명령어는 yaml 파일안에 모든 것을 기술해야 하는 반면 apply 명령어는 부분적인 spec만 주어져도 업데이트가 잘 일어난다는 뜻입니다.