๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/IT_Info

[์ฟ ๋ฒ„๋„คํ‹ฐ์Šค] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(kubectl) ๋ช…๋ น์–ด ์˜ต์…˜ ์ •๋ฆฌ

by YeonBu 2024. 12. 10.
728x90

 

1. ์ฃผ์š” ์˜ต์…˜ ์ •๋ฆฌ

์˜ต์…˜ ์•ฝ์ž  ์„ค๋ช… ์˜ˆ์ œ
-f  File์˜ ์•ฝ์ž ํŒŒ์ผ์ด๋‚˜ URL๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ์ ์šฉ kubectl apply -f pod.yaml
-o  Output์˜ ์•ฝ์ž ์ถœ๋ ฅ ํ˜•์‹ ์ง€์ •(JSON, YAML, wide ๋“ฑ) kubectl get pods -o yaml
-l Label์˜ ์•ฝ์ž ๋ ˆ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•„ํ„ฐ๋ง kubectl get pods -l app=my-app
--all - ๋ชจ๋“  ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰ kubectl get pods --all
-n Namespace์˜ ์•ฝ์ž ํŠน์ • ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰ kubectl get pods -n my-namespace
--field-selector - ํŠน์ • ํ•„๋“œ ์กฐ๊ฑด์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•„ํ„ฐ๋ง kubectl get pods --field-selector=status.phase=Running
--dry-run - ์‹ค์ œ ์ ์šฉํ•˜์ง€ ์•Š๊ณ , ๋ฆฌ์†Œ์Šค๊ฐ€ ์ ์šฉ๋ ์ง€ ํ™•์ธ kubectl apply -f pod.yaml --dry-runt=client
--watch - ๋ฆฌ์†Œ์Šค ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ด€์ฐฐ kubectl get pod --watch
--force - ๊ฐ•์ œ๋กœ ์ž‘์—… ์‹คํ–‰(์˜ˆ, ๊ฐ•์ œ ์‚ญ์ œ) kubectl delete pod my-pod --force
--grace-period - ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„ ์„ค์ • kubectl delete pod my-pod --grace-period=0
--recursive - ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  YAML ํŒŒ์ผ์„ ์ ์šฉ kubectl apply -f ./mainfests --recursive

 

 

 

2. ๋ฆฌ์†Œ์Šค ์กฐํšŒ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl get ๋ฆฌ์†Œ์Šค ๋ชฉ๋ก ์กฐํšŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์•ฝ๋œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅ kubectl get pods
kubectl describe ๋ฆฌ์†Œ์Šค์˜ ์ƒ์„ธ ์ •๋ณด(์ด๋ฒคํŠธ ํฌํ•จ) ์กฐํšŒ kubectl describe pod my-pod
kubectl logs Pod์˜ ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ์ถœ๋ ฅ kubectl logs my-pod
kubectl get events ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฒคํŠธ ์กฐํšŒ kubectl get events
kubectl top CPU, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์กฐํšŒ kubectl top pod my-pod

 

 

 

3. ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl apply -f <file> YAML/JSON ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ/์—…๋ฐ์ดํŠธ kubectl apply -f pod.yaml
kubectl create ๋ฆฌ์†Œ์Šค๋ฅผ ๋ช…๋ น์–ด๋กœ ์ง์ ‘ ์ƒ์„ฑ kubectl create deployment my-deploy --image=nginx
kubectl run ๋‹จ์ผ Pod๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑ kubectl run my-pod --image=nginx
kubectl expose ๋ฆฌ์†Œ์Šค๋ฅผ Service๋กœ ๋…ธ์ถœ kubectl expose pod my-pod --port=80

 



4. ๋ฆฌ์†Œ์Šค ์—…๋ฐ์ดํŠธ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl edit YAML ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์—…๋ฐ์ดํŠธ kubectl edit deployment my-deploy
kubectl set imgae Deployment์˜ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ kubectl set image deployment my-deploy nginx=nginx:1.19
kubectl scale ๋ฆฌ์†Œ์Šค์˜ ๋ณต์ œ๋ณธ ์ˆ˜ ์กฐ์ • kubectl scale deployment my-deploy --replicas=3
kubectl rollout status ๋กค๋ง ์—…๋ฐ์ดํŠธ ์ƒํƒœ ํ™•์ธ kubectl rollout status deployment my-deploy
kubectl rollout undo ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑ kubectl rollout undo deployment my-deploy

 



5. ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl delete ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œ kubectl delete pod my-pod
kubectl delete -f <file> YAML/JSON ํŒŒ์ผ์— ์ •์˜๋œ ๋ฆฌ์†Œ์Šค ์‚ญ์ œ kubectl delete -f pod.yaml
kube delete --all ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ์‚ญ์ œ kubectl delete pods --all



 

6. ๋””๋ฒ„๊น… ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl logs Pod์˜ ๋กœ๊ทธ ์ถœ๋ ฅ kubectl logs my-pod
kubectl logs -f ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ kubectl logs my-pod -f
kubectl exec Pod ๋‚ด๋ถ€์—์„œ ๋ช…๋ น์–ด ์‹คํ–‰ kubectl exec -it my-pod -- /bin/bash
kubectl debug ๋””๋ฒ„๊น…์šฉ ์ž„์‹œ Pod ์ƒ์„ฑ kubectl debug pod/my-pod
kubectl get events ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ ์กฐํšŒ kubectl get events

 

 

 

7. ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl get namespaces ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ชฉ๋ก ์กฐํšŒ kubectl get namespaces
kubectl create namespace ์ƒˆ๋กœ์šด ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ kubectl create namespace my-namespace
kubectl delete namespace ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ์‚ญ์ œ kubectl delete namespace my-namespace
kubectl config set-context ํŠน์ • ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ • kubectl config set-context --current --namespace=my-namespace

 

 

 

8. ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl cluster-info ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด ์ถœ๋ ฅ kubectl cluster-info
kubectl version ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ๋ฒ„์ „ ์ •๋ณด ํ™•์ธ kubectl version
kubectl config get-contexts ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปจํ…์ŠคํŠธ ์กฐํšŒ kubectl config get-contexts
kubectl config use-contexts ํŠน์ • ์ปจํ…์ŠคํŠธ๋กœ ์ „ํ™˜ kubectl config use-context my-context
kubectl  proxy API ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ก์‹œ ์‹คํ–‰ kubectl proxy

 

 

 

9. ์ž‘์—… ์ž๋™ํ™” ๋ฐ ์Šค์ผ€์ค„๋ง

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl get jobs Job ๋ฆฌ์†Œ์Šค ์กฐํšŒ kubectl get jobs
kubectl apply -f job.yaml YAML๋กœ ์ •์˜๋œ Job ์ƒ์„ฑ kubectl apply -f job.yaml
kubectl get cronjobs CronJob ๋ฆฌ์†Œ์Šค ์กฐํšŒ kubectl get cronjobs
kubectl apply -f cronjob.yaml YAML๋กœ ์ •์˜๋œ CronJob ์ƒ์„ฑ kubectl apply -f cronjob.yaml 

 

 

 

10. ๋ฆฌ์†Œ์Šค ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ

๋ช…๋ น์–ด ์„ค๋ช… ์˜ˆ์ œ
kubectl get ๋ฆฌ์†Œ์Šค๋ฅผ YAML/JSON ํ˜•์‹์œผ๋กœ ๋ฐฑ์—… kubectl get pod my-pod -o yaml > backup.yaml
kubectl apply YAML ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ๋ณต๊ตฌ kubectl apply -f backup.yaml

 

 

 

๋ฐ˜์‘ํ˜•