목차
- Kubectl rollout
- Kubectl rollout status
- Kubectl rollout undo
- Kubectl rollout history
- Kubectl rollout pause
- Kubectl rollout resume
- Kubectl apply
kubectl rollout
kubectl rollout 명령어는 Kubernetes 클러스터에서 롤아웃 작업을 관리하는 명령어입니다. 이 명령어를 사용하면, 디플로이먼트, 데몬셋, 상태풀셋 등의 리소스에 대한 롤아웃 작업을 수행할 수 있습니다.
- kubectl rollout 명령어에는 다양한 하위 명령어가 있으며, 주요 명령어들은 다음과 같습니다.
- kubectl rollout status: 롤아웃 작업의 상태를 확인합니다.
- kubectl rollout history: 롤아웃 작업의 이력을 확인합니다.
- kubectl rollout undo: 롤아웃 작업을 취소하고 이전 버전으로 롤백합니다.
- kubectl rollout restart: 롤아웃 작업을 재시작합니다.
- kubectl rollout pause/resume: 롤링 업데이트를 일시 중지하거나 다시 시작합니다.
- 기본 구조
kubectl rollout [하위 명령어] [리소스 종류]/[리소스 이름]
예시: kubectl rollout status deployment/my-deployment
my-deployment 디플로이먼트의 롤아웃 상태를 확인할 수 있습니다. - 옵션
- --revision: 롤아웃 작업에서 사용할 리비전 번호를 지정합니다.
예시: kubectl rollout undo deployment/my-deployment --to-revision=2
(my-deployment 디플로이먼트를 2번 리비전으로 롤백합니다.) - --dry-run: 실제로 명령어를 실행하지 않고, 실행 결과만 미리 확인합니다.
예시: kubectl rollout restart deployment/my-deployment --dry-run
(my-deployment 디플로이먼트를 재시작할 때, 실제로는 실행하지 않고 결과만 미리 확인합니다.)
- --revision: 롤아웃 작업에서 사용할 리비전 번호를 지정합니다.
kubectl rollout status
kubectl rollout status 명령어는 Kubernetes 클러스터에서 롤아웃 작업의 상태를 확인하는 명령어입니다. 이 명령어를 사용하면, 롤아웃 작업이 완료될 때까지 대기하거나, 롤아웃 작업이 중단되었는지 확인할 수 있습니다.
- 기본 구조
kubectl rollout status [리소스 종류]/[리소스 이름]
예시: kubectl rollout status deployment/my-deployment
my-deployment 디플로이먼트의 롤아웃 상태를 확인할 수 있습니다. - 옵션
- --watch: 롤아웃 상태를 실시간으로 확인합니다.
예시: kubectl rollout status deployment/my-deployment --watch
(my-deployment 디플로이먼트의 롤아웃 상태를 실시간으로 확인합니다.) - --timeout: 대기 시간을 지정합니다. 이 시간을 초과하면 명령어가 종료됩니다.
예시: kubectl rollout status deployment/my-deployment --timeout=60s
(my-deployment 디플로이먼트의 롤아웃이 60초 이내에 완료되지 않으면 명령어가 종료됩니다.)
- --watch: 롤아웃 상태를 실시간으로 확인합니다.
kubectl rollout undo
kubectl rollout undo 명령어는 Kubernetes 배포를 이전 버전으로 롤백하는 명령어입니다. 이 명령어를 사용하면, 배포를 이전 버전으로 복원할 수 있습니다.
- 기본 구조
kubectl rollout undo [리소스 종류] [리소스 이름]
예시: kubectl rollout undo deployment/my-deployment
my-deployment 이름의 배포를 이전 버전으로 롤백할 수 있습니다. - 옵션
- --to-revision: 롤백할 배포의 리비전 번호를 지정합니다.
예시: kubectl rollout undo deployment/my-deployment --to-revision=2
(my-deployment 이름의 배포를 2번 리비전으로 롤백합니다.) - --dry-run: 실제로 롤백하지 않고 실행 결과만 확인합니다.
예시: kubectl rollout undo deployment/my-deployment --dry-run
(my-deployment 이름의 배포를 실제로 롤백하지 않고 실행 결과만 확인합니다.)
- --to-revision: 롤백할 배포의 리비전 번호를 지정합니다.
kubectl rollout history
kubectl rollout history 명령어는 Kubernetes 배포의 이전 롤아웃 기록을 확인하는 명령어입니다. 이 명령어를 사용하면, 배포의 이전 버전들과 그 버전들의 상태를 확인할 수 있습니다.
- 기본 구조
kubectl rollout history [리소스 종류] [리소스 이름]
예시: kubectl rollout history deployment/my-deployment
명령어를 실행하여 my-deployment 이름의 배포의 이전 롤아웃 기록을 확인할 수 있습니다. - 옵션
- --revision: 특정 리비전의 상세 정보를 확인합니다.
예시: kubectl rollout history deployment/my-deployment --revision=2
(my-deployment 이름의 배포의 2번 리비전의 상세 정보를 확인합니다.) - --namespace: 리소스가 포함된 네임스페이스를 지정합니다.
예시: kubectl rollout history deployment/my-deployment --namespace my-namespace
(my-namespace 네임스페이스에 속한 my-deployment 이름의 배포의 이전 롤아웃 기록을 확인합니다.)
- --revision: 특정 리비전의 상세 정보를 확인합니다.
kubectl rollout restart
kubectl rollout restart 명령어는 Kubernetes 클러스터에서 디플로이먼트, 데몬셋, 상태풀셋 등의 리소스를 다시 시작하는 롤아웃 작업을 수행하는 명령어입니다. 이 명령어를 사용하면, 롤아웃 작업을 수행하지 않고도 리소스를 새로 시작할 수 있습니다.
- 기본 구조
kubectl rollout restart [리소스 종류]/[리소스 이름]
예시: kubectl rollout restart deployment/my-deployment
my-deployment 디플로이먼트를 다시 시작할 수 있습니다. - 옵션
- --selector: 라벨 셀렉터를 사용하여 리소스를 선택합니다.
예시: kubectl rollout restart deployment --selector=app=nginx
(app=nginx 라벨을 가진 모든 디플로이먼트를 다시 시작합니다.)
- --selector: 라벨 셀렉터를 사용하여 리소스를 선택합니다.
kubectl rollout pause
kubectl rollout pause 명령어는 Kubernetes 클러스터에서 디플로이먼트, 데몬셋, 상태풀셋 등의 롤아웃 작업을 일시 중지하는 명령어입니다. 이 명령어를 사용하면, 롤아웃 작업을 일시 중지하여 문제를 진단하고 해결할 수 있습니다.
- 기본 구조
kubectl rollout pause [리소스 종류]/[리소스 이름]
예시: kubectl rollout pause deployment/my-deployment
my-deployment 디플로이먼트의 롤아웃 작업을 일시 중지할 수 있습니다. - 옵션
- --selector: 라벨 셀렉터를 사용하여 리소스를 선택합니다.
예시: kubectl rollout pause deployment --selector=app=nginx
(app=nginx 라벨을 가진 모든 디플로이먼트의 롤아웃 작업을 일시 중지합니다.)
* 일시 중지된 롤아웃 작업은 kubectl rollout resume 명령어를 사용하여 다시 시작할 수 있습니다. 이 명령어를 사용하면, 롤아웃 작업이 이전 상태에서 재개됩니다.
- --selector: 라벨 셀렉터를 사용하여 리소스를 선택합니다.
kubectl rollout resume
kubectl rollout resume 명령어는 Kubernetes 클러스터에서 디플로이먼트, 데몬셋, 상태풀셋 등의 롤아웃 작업을 다시 시작하는 명령어입니다. 이 명령어를 사용하면, 일시 중지된 롤아웃 작업을 다시 시작할 수 있습니다.
- 기본 구조
kubectl rollout resume [리소스 종류]/[리소스 이름]
예시: kubectl rollout resume deployment/my-deployment
my-deployment 디플로이먼트의 롤아웃 작업을 다시 시작할 수 있습니다. - 옵션
- --selector: 라벨 셀렉터를 사용하여 리소스를 선택합니다.
예시: kubectl rollout resume deployment --selector=app=nginx
(app=nginx 라벨을 가진 모든 디플로이먼트의 롤아웃 작업을 다시 시작합니다.)
- --selector: 라벨 셀렉터를 사용하여 리소스를 선택합니다.
kubectl apply
kubectl apply 명령어는 Kubernetes에서 YAML 또는 JSON 파일로 정의된 리소스를 클러스터에 배포하거나 업데이트할 때 사용되는 명령어입니다. 이 명령어를 사용하면 새로운 리소스를 생성하거나 기존 리소스를 수정할 수 있습니다.
- 기본 구조
kubectl apply -f [파일 경로]
예시: kubectl apply -f deployment.yaml
deployment.yaml 파일에 정의된 디플로이먼트 리소스를 클러스터에 배포합니다. - 옵션
- -f, --filename: 배포할 YAML 또는 JSON 파일의 경로를 지정합니다. 파일 이름이나 디렉토리 이름을 지정할 수 있습니다.
예시: kubectl apply -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 배포합니다.) - --prune: 새로운 YAML 또는 JSON 파일에 정의되지 않은 기존 리소스를 삭제합니다.
예시: kubectl apply --prune -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 배포하면서, 새로운 파일에 정의되지 않은 기존 리소스를 삭제합니다.) - --selector: 리소스를 선택하는 레이블 셀렉터를 지정합니다.
예시: kubectl apply --selector app=nginx -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 배포하면서, app=nginx 레이블을 가진 기존 리소스를 선택합니다.) - -R, --recursive: 디렉토리 내부의 모든 YAML 또는 JSON 파일을 배포합니다.
예시: kubectl apply -R -f ./deployments
(deployments 디렉토리 내부의 모든 YAML 또는 JSON 파일을 배포합니다.) - --validate: 배포하기 전 YAML 또는 JSON 파일을 검증합니다.
예시: kubectl apply --validate=false -f deployment.yaml
(YAML 또는 JSON 파일을 검증하지 않고 배포합니다.) - --overwrite: 기존 리소스를 덮어쓰기 합니다. --force와 유사하지만, 롤링 업데이트 중에 리소스를 강제로 교체할 때 사용됩니다.
예시: kubectl apply --overwrite -f nginx-deployment.yaml
(위 명령어는 nginx-deployment.yaml 파일을 사용하여 Deployment 오브젝트를 생성하거나 수정하되, 이미 존재하는 경우 덮어쓰기(overwrite)를 하라는 옵션을 주는 것입니다.) - --force: 기존 리소스를 덮어쓰기 합니다.
예시: kubectl apply --force -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 클러스터에 배포하면서, 기존 리소스를 덮어씁니다.) - --force-conflicts: 리소스 간의 충돌을 해결하기 위해 강제로 덮어쓰기 합니다.
예시: kubectl apply --force-conflicts -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 클러스터에 배포하면서, 리소스 간의 충돌이 발생하면 강제로 덮어씁니다.) - --prune-whitelist: --prune 옵션과 함께 사용되며, 삭제하지 않을 리소스를 지정합니다.
예시: kubectl apply --prune --prune-whitelist=configmap -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 배포하면서, configmap 리소스는 삭제하지 않도록 지정합니다.) - --dry-run: 배포하지 않고 배포 결과만 미리 확인합니다.
예시: kubectl apply --dry-run -f deployment.yaml
(deployment.yaml 파일에 정의된 리소스를 배포하지 않고, 배포 결과만 미리 확인합니다.)
- -f, --filename: 배포할 YAML 또는 JSON 파일의 경로를 지정합니다. 파일 이름이나 디렉토리 이름을 지정할 수 있습니다.
'Container > Kubernetes' 카테고리의 다른 글
[Kubernetes] kubeadm 명령어 모음 (0) | 2023.04.02 |
---|---|
[Kubernetes] Kubernetes 명령어 모음 [6] 접속, 보안 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [4] 확인 Part.2 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [3] 확인 Part.1 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [2] 수정, 실행, 대기 (0) | 2023.04.02 |