본문 바로가기

About/Kubernetes

[k8s] Kubernetes 명령어 비교: kubectl apply vs kubectl create

Kubernetes에서 자원을 관리하고 배포하는 데는 다양한 명령어가 사용됩니다. 이 글에서는 Kubernetes의 핵심 명령어인 kubectl applykubectl create의 차이점을 살펴보고, 언제 어느 명령어를 사용해야 하는지를 알아보겠습니다.

kubectl apply의 특징 및 사용법

kubectl apply 명령어는 Kubernetes 리소스의 구성을 선언적으로 관리하는 데 사용됩니다. 이 명령어는 리소스의 현재 상태를 JSON 또는 YAML 파일 형식으로 지정된 원하는 상태와 비교하여, 필요한 변경사항을 적용합니다.

주요 특징

  • 변경사항만 적용: 기존 리소스의 설정을 수정하거나 추가할 때 유용합니다.
  • 선언적 업데이트: 리소스의 전체 정의를 제공하고 Kubernetes가 필요한 변경을 파악해 적용합니다.

예시 사용법

# sample-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-deployment
spec:
  replicas: 3
  ...

 

kubectl apply -f sample-deployment.yaml

 

kubectl create의 특징 및 사용법

반면, kubectl create 명령어는 새로운 Kubernetes 리소스를 생성할 때 사용됩니다. 이 명령어는 주로 초기 리소스 생성에 적합하며, 기존 리소스에 대해서는 작동하지 않습니다.

주요 특징

  • 새 리소스 생성: 존재하지 않는 새 리소스를 만드는 데 사용됩니다.
  • 명시적 생성: 명령어가 호출될 때 리소스가 생성됩니다.

예시 사용법

# sample-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: sample-pod
spec:
  containers:
  - name: sample-container
    image: nginx

 

kubectl create -f sample-pod.yaml

 

차이점 요약

  • kubectl apply: 기존 리소스의 수정 및 관리에 적합, 선언적 방식으로 리소스의 상태를 관리.
  • kubectl create: 새로운 리소스의 생성에 적합, 명령어 실행 시 즉각적으로 리소스 생성.

언제 어떤 명령어를 사용해야 하나요?

  • 리소스 생성: 처음으로 리소스를 만들 때는 kubectl create를 사용합니다.
  • 기존 리소스 업데이트: 이미 생성된 리소스의 설정을 변경하거나 업데이트해야 할 경우 kubectl apply를 사용합니다.

참고 자료

이 글을 통해 Kubernetes의 kubectl applykubectl create 명령어의 차이점을 이해하고, 적절한 상황에서 적합한 명령어를 선택하여 사용할 수 있기를 바랍니다.