성장일기/Kubernetes

kubectl apply create 주요 차이점 정리

지추월자 2024. 6. 17. 11:32
반응형

kubectl createkubectl apply는 Kubernetes 클러스터에서 리소스를 생성하고 업데이트하는 데 사용되는 명령어입니다.
이 두 명령어의 차이점은 리소스를 생성하는 것, 리소스를 생성하거나 업데이트 하는 것입니다.

kubectl create

  • 주요 목적: 새 리소스를 생성합니다.
  • 동작: 지정된 매니페스트 파일을 읽고, 해당 리소스가 클러스터에 존재하지 않는 경우 새로 생성합니다. 이미 존재하는 경우 오류를 발생시킵니다.
  • 사용 예시:
    kubectl create -f <filename>

kubectl apply

  • 주요 목적: 리소스를 생성하거나 업데이트합니다.
  • 동작: 지정된 매니페스트 파일을 읽고, 해당 리소스가 클러스터에 존재하지 않는 경우 새로 생성합니다. 이미 존재하는 경우 매니페스트 파일의 내용에 따라 리소스를 업데이트합니다.
  • 사용 예시:
    kubectl apply -f <filename>

주요 차이점 요약

  1. 동작 방식:
    • create: 리소스가 이미 존재하면 오류를 반환합니다. 새로운 리소스만 생성합니다.
    • apply: 리소스가 존재하면 업데이트하고, 존재하지 않으면 새로 생성합니다.
  2. 주요 사용 시나리오:
    • create: 리소스를 처음으로 생성할 때 사용합니다. 주로 리소스를 처음 배포할 때 사용합니다.
    • apply: 기존 리소스를 업데이트할 때 사용합니다. CI/CD 파이프라인에서 배포 설정을 지속적으로 적용할 때 유용합니다.
  3. 구성 관리:
    • apply는 구성 관리에 더 적합합니다. kubectl apply는 주로 인프라 코드(IaC) 방식으로 Kubernetes 클러스터를 관리할 때 사용됩니다.

따라서 리소스를 처음 생성하는 경우에는 kubectl create를 사용할 수 있으며, 리소스를 업데이트하거나 재구성할 때는 kubectl apply를 사용하는 것이 일반적입니다.

빠르게 단일 리소스를 생성하고자 할 때는 create가 편할 것으로 보이고, create는 단일 명령어로도 제공하니까 이런 부분은 장점인 것 같네요 

예를 들어 아래와 같이 명령어로도 컨트롤해서 사용할 수 있습니다. 

kubectl create deployment nginx --image=nginx

 

반응형