티스토리 뷰

IaC/Kubernetes

[Kubernetes] kubectl 명령어 정리

나미의 로그포스 2023. 4. 5. 13:41

Pods 생성과 실행

 

kubectl create deployment [POD_NAME] --image=[IMAGE]

kubectl run [POD_NAME] --image=[IMAGE]

 

Pods 삭제

 

kubectl delete pods [NAME]
# run으로 만든 단일 Pod 삭제

kubectl delete deployment [NAME]
# deployments 삭제

kubectl delete all --all
# 전체 Pods 삭제


kubectl delete pods [NAME] -n [NAMESPACE]
# 특정 namespace의 Pod 삭제

 

Yaml 파일

 

kubectl run web --image=nginx -o yaml --dry-run=client > web.yaml
# nginx 이미지로 만든 web pod의 yaml 파일 뜨기

kubectl get pods web -o yaml > web.yaml
# 이미 생성한 pod의 경우 get으로 yaml 파일 확인

vi web.yaml
# 파일을 열어 설정 변경, 수정

kubectl apply -f [FILE_NAME]
# 수정한 yaml 파일 실행


kubectl edit deployments.apps [POD_NAME]
# 바로 해당 pod의 yaml 파일이 열리며 저장하는 순간 apply 없이도 바로 상태 변화

 

Namespace 생성 

: -n [NAMESPACE] 옵션으로 지정 가능

 

kubectl create namespace [NAMESPACE]
# namespace 생성

kubectl run [NAME] --image=nginx -n [NAMESPACE]
# pod를 특정 namespace에 생성

kubectl create deployment [NAME] --image=nginx -n [NAMESPACE]
# 특정 namespace에 deploy 생성

kubectl delete pods [NAME] -n [NAMESPACE]
# 특정 namespace에서 pod 삭제


watch kubectl get pods -o wide -n [NAMESPACE]
# default 아닌 특정 namespace의 pods 보기

 

Troubleshooting

 

kubectl api-resources
# api-resources 확인

kubectl get pods -n kube-system
# 시스템이 잘 동작하는지 확인


kubectl describe node [workernode]
# 노드 상태 점검

kubectl describe pods [POD_NAME]
# pod의 상세 정보, 상태 확인


kubectl exec -it [POD_NAME] -- /bin/bash
# 컨테이너 안으로 진입

kubectl exec -it [POD_NAME] -- env
# 해당 pod의 환경 변수 확인 가능


--dry-run=client
# 명령어의 오류 여부를 체크하는 옵션 (실제 실행은 X)

 

Cordon & Drain

 

kubectl cordon [WORKER_NODE]
# 해당 work node -> SchedulingDisabled 상태 변화
# 이후 새로 run하는 pod는 다른 work node로 할당

kubectl uncordon [WORKER_NODE]
# 해당 work node를 Ready 상태로 되돌림


kubectl drain [WORKER_NODE] --ignore-daemonsets --force
# 현재 있었던 해당 worker node의 모든 작업이 다른 work node로 넘어감

kubectl uncordon [WORKER_NODE]
# 해당 work node를 Ready 상태로 되돌림

 

Rolling-update

 

kubectl set image deployment [DEPLOY_NAME] [CONTAINER_NAME]=[new_version_img] --record
# rolling update


kubectl rollout history deployment [deploy_name]
# --record로 기록한 이전 버전을 history에서 확인

kubectl rollout undo deployment [deploy_name]
# rollback

kubectl rollout undo deployment [deploy_name] --to-revision=[num]
# history에 기록된 숫자를 지정해 rollback
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함