[k8s] ํŒŒ๋“œ(pod)

ํŒŒ๋“œ(Pod)๋Š” ์ฟ ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฆฌ์†Œ์Šค ๋‹จ์œ„๋‹ค.
์ฟ ๋ฒ„์—์„œ ์‹ค์งˆ์ ์œผ๋กœ ๊ธฐ๋Šฅํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ์†Œ์Šค๋Š” Pod๋‚˜ Pod์˜ ๋ณ€์ข…์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

Docker์˜ ์ปจํ…Œ์ด๋„ˆ์™€ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋„์ปค ์ด๋ฏธ์ง€(OCI)๋ฅผ ๋ฐ›๊ณ , ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•˜๋Š” ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

k8s์˜ Pod๊ฐ€ Docker์˜ ์ปจํ…Œ์ด๋„ˆ์™€ ๋‹ค๋ฅธ ์ ์€, ํ•˜๋‚˜์˜ Pod์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
ํ•˜๋‚˜์˜ Pod๋Š” ๊ฐ์ž๊ฐ€ ๊ณ ์œ ํ•œ IP๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋™์ผ Pod ๋‚ด์— ๊ณต์กดํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋“ค๋„ ๊ฐ™์€ IP๋ฅผ ๊ฐ€์ง„๋‹ค.




๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

๋งŒ๋งŒํ•œ nginx ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋Š”์ง€ ๋Œ๋ ค๋ณด๋„๋ก ํ•˜์ž

๋จผ์ € ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ yaml ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ž‘์„ฑํ•œ๋‹ค.
์ฟ ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค์˜ ๊ด€๋ฆฌ๋Š” ํ•ญ์ƒ yaml๋กœ ์‹œ์ž‘ํ•ด์„œ yaml๋กœ ๋๋‚œ๋‹ค.

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod # ํŒŒ๋“œ ์ด๋ฆ„
spec:
  containers:
  - name: container-name 
    image: nginx # ๋„์ปค ์ด๋ฏธ์ง€

์ด๋Ÿฐ์‹์œผ๋กœ ์ณ์ฃผ๋ฉด ๋œ๋‹ค.
์ด๋ฏธ์ง€๋กœ๋Š” nginx๋ฅผ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ํ–ˆ๋Š”๋ฐ, ์ด๋Ÿฌ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ nginx๋ผ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋„์ปคํ—ˆ๋ธŒ์—์„œ ๊บผ๋‚ด์˜ฌ ๊ฒƒ์ด๋‹ค.




ํŒŒ๋“œ ์ƒ์„ฑ

create/apply ๋ช…๋ น์„ ํ†ตํ•ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl create -f ์„ค์ •ํŒŒ์ผ
kubectl apply -f ์„ค์ •ํŒŒ์ผ

create๋Š” ์ƒ์„ฑ ์ „์šฉ์ด๊ณ , ์ข€ ๋” ๊ถŒ์žฅํ•˜๋Š” ๋ช…๋ น์€ apply๋‹ค. apply๋Š” ์ƒ์„ฑ/์ˆ˜์ •์ด ๋‹ค ํ•œ๋ฐฉ์— ๋œ๋‹ค.

๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ PENDING ์ƒํƒœ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๊ฐ€

๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด ์‹คํ–‰์ด ๋  ๊ฒƒ์ด๋‹ค.




ํŒŒ๋“œ ๋กœ๊ทธ ๋ณด๊ธฐ

ํŒŒ๋“œ ๋‚ด๋ถ€์—์„œ ๋Œ์•„๊ฐ„ ๊ฒƒ์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด logs ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

kubectl logs ํŒŒ๋“œ๋ช…

๊ทธ๋Ÿผ ์‹ค์ œ๋กœ ์‹คํ–‰๋œ ๋‚ด์—ญ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.




ํŒŒ๋“œ ์ ‘์†ํ•˜๊ธฐ

ํŒŒ๋“œ์— ์ง์ ‘ ๋“ค์–ด๊ฐ€์„œ ๋ญ”๊ฐ€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ๋Ÿด๋•Œ๋Š” exec ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๊ฐ™๋‹ค.

kubectl exec -it ํŒŒ๋“œ๋ช… /bin/bash




ํŒŒ๋“œ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ

ํŒŒ๋“œ ์ž์ฒด์— ๋Œ€ํ•œ ์ „์ฒด ์ •๋ณด๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด, descibe pods ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค.

kubectl describe pods ํŒŒ๋“œ๋ช…

์ด๋Ÿฐ์ €๋Ÿฐ ์ „์ฒด์ ์ธ ์ •๋ณด์™€, IP ๊ฐ™์€ ๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ € IP๋กœ ์ ‘์†์„ ํ•ด๋ณด๋ฉด,

์ž˜ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.




ํŒŒ๋“œ ์‚ญ์ œ

ํŒŒ๋“œ ์‚ญ์ œ๋Š” delete pods ๋ช…๋ น์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl delete pods ํŒŒ๋“œ๋ช…

๊ทผ๋ฐ ๋ณดํ†ต ํ”„๋กœ๋•์…˜ ๋ ˆ๋ฒจ์—์„œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ๋•Œ๋Š” Pod๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ผ์€ ๊ฑฐ์˜ ์—†๋‹ค.

๋ณดํ†ต deployment๋‚˜ statefulset, daemonset ๊ฐ™์€ ๊ทธ๋ฃน ๋‹จ์œ„๋ฅผ ํ†ตํ•ด ์žฌ๋ฐฐํฌ๊นŒ์ง€ ํ†ตํ•ฉํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ณค ํ•˜๋Š”๋ฐ, ๊ทธ๊ฑด ์ดํ›„ ํฌ์ŠคํŠธ์—์„œ ํ•˜๋‚˜์”ฉ ๋‹ค๋ค„๋ณด๊ฒ ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” Pod๋ผ๋Š”๊ฒŒ ์žˆ๊ณ  ๋Œ€์ถฉ ์ด๋ ‡๊ฒŒ ์“ด๋‹ค๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๋ฉด ๋œ๋‹ค.



์ฐธ์กฐ
https://kubernetes.io/ko/docs/tasks/manage-kubernetes-objects/imperative-command/