--- title: 구성파일을 이용한 명령형 쿠버네티스 오브젝트 관리 content_type: task weight: 40 --- 쿠버네티스 오브젝트는 YAML 또는 JSON으로 작성된 오프젝트 구성파일과 함께 `kubectl` 커맨드 라인 툴을 이용하여 생성, 업데이트 및 삭제할 수 있다. 이 문서는 구성파일을 이용하여 어떻게 오브젝트를 정의하고 관리할 수 있는지에 대해 설명한다. ## {{% heading "prerequisites" %}} [`kubectl`](/ko/docs/tasks/tools/)을 설치한다. {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} ## 트레이드 오프 `kubectl` 툴은 3가지 종류의 오브젝트 관리를 지원한다. * 명령형 커맨드 * 명령형 오브젝트 구성 * 선언형 오브젝트 구성 각 종류별 오브젝트 관리의 장점과 단점에 대한 논의는 [쿠버네티스 오브젝트 관리](/ko/docs/concepts/overview/working-with-objects/object-management/)를 참고한다. ## 오브젝트 생성 방법 구성파일로부터 오브젝트를 생성하기 위해 `kubectl create -f`를 사용할 수 있다. 보다 상세한 정보는 [쿠버네티스 API 참조](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)를 참조한다. * `kubectl create -f <파일명|url>` ## 오브젝트 업데이트 방법 {{< warning >}} `replace` 커맨드로 오브젝트를 업데이트 하게되면, 구성파일에 정의되지 않은 스펙의 모든 부분이 삭제된다. 이는 `externalIPs`필드가 구성파일로부터 독립적으로 관리되는 `LoadBalancer`타입의 서비스와 같이, 클러스터 의해 부분적으로 관리되는 스펙의 오브젝트와 함께 사용되어서는 안된다. 독립적으로 관리되는 필드는 `replace`로 삭제되는 것을 방지하기 위해 구성파일에 복사되어져야만 한다. {{< /warning >}} 구성파일에 따라 활성 오브젝트를 업데이트하기 위해 `kubectl replace -f` 를 사용할 수 있다. * `kubectl replace -f <파일명|url>` ## 오브젝트 삭제 방법 구성파일에 정의한 오브젝트를 삭제하기 위해 `kubectl delete -f`를 사용할 수 있다. * `kubectl delete -f <파일명|url>` {{< note >}} 구성 파일이 `metadata` 섹션에서 `name` 필드 대신 `generateName` 필드를 지정한 경우, `kubectl delete -f ` 을 사용하여 오브젝트를 삭제할 수 없다. 오브젝트를 삭제하려면 다른 플래그를 사용해야 한다. 예를 들면, 다음과 같다. ```shell kubectl delete kubectl delete -l