[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/