Kubernetes

[Kubernetes] run, create, apply 의 정의와 차이점

IT-PAPA 2023. 9. 18. 06:49
반응형

쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 시스템으로, 컨테이너화된 애플리케이션을 관리하고 배포하는 데 사용됩니다. 쿠버네티스 명령어인 run, create, apply는 쿠버네티스 클러스터에서 애플리케이션을 배포하고 관리하는 데 사용되는 주요 명령어입니다. 이들 명령어의 각각의 역할과 차이점을 비교표로 설명하겠습니다.

kubectl run

  • 역할: kubectl run 명령어는 새로운 파드(Pod)나 디플로이먼트(Deployment)를 생성하고 실행하는 데 사용됩니다.
  • 예시: kubectl run my-app --image=my-image:tagmy-app이라는 이름으로 이미지를 사용하여 파드를 실행합니다.
  • 주의점: 이 명령은 주로 단일 파드를 생성하는 데 사용되며, 레플리카셋(ReplicaSet)이나 디플로이먼트를 생성하지 않습니다.

kubectl create

  • 역할: kubectl create 명령어는 리소스 정의 파일(YAML 또는 JSON)을 사용하여 쿠버네티스 오브젝트를 생성합니다. 이 오브젝트는 파드, 서비스, 레플리카셋, 디플로이먼트 등 다양한 유형의 오브젝트일 수 있습니다.
  • 예시: kubectl create -f my-app.yamlmy-app.yaml 파일에 정의된 오브젝트를 생성합니다.
  • 주의점: 이 명령어는 정의된 오브젝트를 한 번 생성하고, 이미 존재하는 오브젝트를 변경하거나 업데이트하지 않습니다. 오브젝트를 수정하려면 YAML 파일을 수정하고 다시 create 명령을 실행해야 합니다.

kubectl apply

  • 역할: kubectl apply 명령어는 리소스 정의 파일을 사용하여 쿠버네티스 오브젝트를 생성 또는 업데이트합니다. 이미 존재하는 오브젝트를 업데이트하거나 새로운 오브젝트를 생성할 때 사용됩니다.
  • 예시: kubectl apply -f my-app.yamlmy-app.yaml 파일에 정의된 오브젝트를 생성하거나 업데이트합니다.
  • 주의점: 이 명령어는 오브젝트를 생성하거나 업데이트할 때 사용하며, 이미 존재하는 오브젝트를 수정하거나 추가적인 변경을 적용할 수 있습니다. 따라서 쿠버네티스 관리에 있어서 가장 유연한 방법 중 하나입니다.

비교표:

명령어 역할 사용 예시 주의점
kubectl run 새로운 파드나 디플로이먼트 생성 및 실행 kubectl run my-app --image=my-image:tag 주로 단일 파드를 생성하는 데 사용하며 디플로이먼트 생성 X
kubectl create 리소스 정의 파일로부터 오브젝트 생성 kubectl create -f my-app.yaml 오브젝트를 한 번 생성하며 이미 존재하는 오브젝트 업데이트 X
kubectl apply 리소스 정의 파일로부터 오브젝트 생성 또는 업데이트 kubectl apply -f my-app.yaml 오브젝트를 생성하거나 업데이트할 때 사용, 유연한 방법

각 명령어는 다른 상황에 따라 필요한 것으로 선택되어야 합니다. 만약 이미 존재하는 오브젝트를 업데이트하거나 여러 번 변경해야 한다면 kubectl apply가 가장 적합하며, 단순한 실행 목적으로 파드를 생성하려면 kubectl run을 사용할 수 있습니다. kubectl create는 오브젝트를 한 번 생성하는 데 사용되며, 이후에는 변경이나 업데이트를 위해서는 오브젝트 파일을 수정한 후 다시 create 명령을 실행해야 합니다.

728x90
반응형
LIST