[Kubernetes] kubectl apply command
[Kubernetes] kubectl apply command
기본 구조
1
2
3
4
kubectl apply -f [파일 경로]
# deployment.yaml 파일에 정의된 deployment 리소스를 Cluster에 배포
kubectl apply -f deployment.yaml
[명령어]
--help
를 입력하면 더 다양한 옵션들을 찾을 수 있다.
Option
-f
,--filename
: 배포할 YAML 또는 JSON 파일의 경로를 지정할 수 있으며, 파일 이름이나 directory 이름을 지정할 수 있다.1 2
# deployment.yaml 파일에 정의된 리소스를 배포 kubectl apply -f deployment.yaml
--prune
: 새로운 YAML 또는 JSON 파일에 정의되지 않은 기존 리소스를 삭제1 2
# deployment.yaml 파일에 정의된 리소스를 배포하면서, 새로운 파일에 정의되지 않은 기존 리소스를 삭제 kubectl apply --prune -f deployment.yaml
--selector
: 리소스를 선택하는 Label selector를 지정1 2
# deployment.yaml 파일에 정의된 리소스를 배포하면서, app=nginx Label을 가진 기존 리소스를 선택 kubectl apply --selector app=nginx -f deployment.yaml
-R
,--recursive
: directory 내부의 모든 YAML 또는 JSON 파일을 배포1 2
# deployments directory 내부의 모든 YAML 또는 JSON 파일을 배포 kubectl apply -R -f ./deployments
--validate
: 배포하기 전 YAML 또는 JSON 파일을 검증1 2
# YAML 또는 JSON 파일을 검증하지 않고 배포 kubectl apply --validate=false -f deployment.yaml
--overwrite
: 기존 리소스를 덮어쓰기 한다.--force
와 유사하지만, 롤링 업데이트 중에 리소스를 강제로 교체할 때 사용1 2
# nginx-deployment.yaml 파일을 사용하여 Deployment 오브젝트를 생성하거나 수정하되, 이미 존재하는 경우 덮어쓰기(overwrite)를 하라는 옵션 kubectl apply --overwrite -f nginx-deployment.yaml
--force
: 기존 리소스를 덮어쓰기1 2
# deployment.yaml 파일에 정의된 리소스를 Cluster에 배포하면서, 기존 리소스를 덮어쓴다. kubectl apply --force -f deployment.yaml
--force-conflicts
: 리소스 간의 충돌을 해결하기 위해 강제로 덮어쓰기 한다.1 2
# deployment.yaml 파일에 정의된 리소스를 Cluster에 배포하면서, 리소스 간의 충돌이 발생하면 강제로 덮어쓴다. kubectl apply --force-conflicts -f deployment.yaml
--prune-whitelist
:--prune
옵션과 함께 사용되며, 삭제하지 않을 리소스를 지정1 2
# deployment.yaml 파일에 정의된 리소스를 배포하면서, configmap 리소스는 삭제하지 않도록 지정 kubectl apply --prune --prune-whitelist=configmap -f deployment.yaml
--dry-run
: 배포하지 않고 배포 결과만 미리 확인1 2
# deployment.yaml 파일에 정의된 리소스를 배포하지 않고, 배포 결과만 미리 확인 kubectl apply --dry-run -f deployment.yaml
자주 쓰는 명령어는 kubectl-cheatsheet
This post is licensed under CC BY 4.0 by the author.