์ฑํฐ 3. ํ๋:์ฟ ๋ฒ๋คํฐ์ค์์ ์ปจํ ์ด๋ ์คํ
3์ฅ์์ ๋ค๋ฃจ๋ ๋ด์ฉ
- ํ๋์ ์์ฑ,์คํ,์ ์ง
- ํ๋์ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ๋ ์ด๋ธ๋ก ์กฐ์งํํ๊ธฐ
- ํน์ ๋ ์ด๋ธ์ ๊ฐ์ง ๋ชจ๋ ํ๋์์ ์์ ์ํ
- ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํด ํ๋๋ฅผ ๊ฒน์น์ง ์๋ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ธฐ
- ํน์ ํ ํ์์ ๊ฐ์ง ์์ปค ๋ ธ๋์ ํ๋ ๋ฐฐ์น
3.1 ํ๋์๊ฐ
ํ๋ → ํจ๊ป ๋ฐฐ์น๋ ์ปจํ ์ด๋ ๊ทธ๋ฃน์ด๋ฉฐ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ธฐ๋ณธ ๋น๋ฉ ๋ธ๋ก
์ปจํ ์ด๋๋ฅผ ๊ฐ์ง ํ๋๋ฅผ ๋ฐฐํฌ ์ด์ํ๋ค.
ํ๋๊ฐ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ, ๋ชจ๋ ์ปจํ ์ด๋๋ ํญ์ ํ๋์ ์์ปค๋ ธ๋์์ ์คํ๋๋ฉฐ ์ฌ๋ฌ ์์ปค ๋ ธ๋์ ๊ฑธ์ณ ์คํ๋์ง ์๋๋ค.
3.1.1 ํ๋๊ฐ ํ์ํ ์ด์
์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ฑํํ๋ ๋จ์ผ ์ปจํ ์ด๋๋ณด๋ค ๋ค์ค ์ปจํ ์ด๋๊ฐ ๋์ ์ด์
- ์ปจํ ์ด๋๋ ๋จ์ผ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋จ
- ๋ชจ๋ ํ๋ก์ธ์ค๋ ๋์ผํ ํ์ค ์ถ๋ ฅ์ผ๋ก ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ๋จ๊ธด ๋ก๊ทธ์ธ์ง ํ์ ํ๊ธฐ ์ด๋ ต๋ค.
3.1.2 ํ๋ ์ดํดํ๊ธฐ
ํ๋๊ฐ ํ์ํ ์ด์ →
์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋จ์ผ ์ปจํ ์ด๋๋ก ๋ฌถ์ง ์๊ธฐ ๋๋ฌธ์, ์ปจํ ์ด๋๋ค์ ํจ๊ป ๋ฌถ๊ณ ํ๋์ ๋จ์๋ก ๊ด๋ฆฌํ ์ ์๋ ์์๊ตฌ์กฐ๊ฐ ํ์ → ์ด๊ฒ ํ๋
์ปจํ ์ด๋ ๋ชจ์์ ์ฌ์ฉํด ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋ ํ๋ก์ธ์ค๋ฅผ ๋ฌถ์ด ๋จ์ผ ์ปจํ ์ด๋์์ ์คํํ๋ ๊ฑฐ ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํด ๊ฒฉ๋ฆฌ๋ ์ํ๋ฅผ ์ ์ง
๊ฐ์ ํ๋์์ ์ปจํ ์ด๋ ๊ฐ ๋ถ๋ถ ๊ฒฉ๋ฆฌ
์ฟ ๋ฒ๋คํฐ์ค๋ ํ๋ ์์ ์๋ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ์์ฒด ๋ค์์คํ์ด์ค๊ฐ ์๋ ๋์ผํ ๋ฆฌ๋ ์ค ๋ค์์คํ์ด์ค๋ฅผ ๊ณต์ ํ๋๋ก๊ณ ๋์ปค๋ฅผ ์ค์ ํ๋ค.
ํ๋ ์์ ๋ชจ๋ ์ปจํ ์ด๋๋ ๊ฐ์ ํธ์คํธ ์ด๋ฆ๊ณผ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ๊ณต์ ํ๋ค.
๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ์์คํ ์ ๋ค๋ฅธ ์ปจํ ์ด๋์ ์์ ํ ๋ถ๋ฆฌ๋๋ค.
์ปจํ ์ด๋๊ฐ ๋์ผํ IP์ ํฌํธ ๊ณต๊ฐ์ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ
- ํ๋ ์์ ์ปจํ ์ด๋๊ฐ ๋์ผํ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ๋์ผํ IP์ฃผ์์ ํฌํธ ๊ณต๊ฐ์ ๊ณต์ ํ๋ค.
- ๋์ผํ ํ๋ ์ ์ปจํ ์ด๋์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ก ์ฃผ์ → ๋์ผํ ํ๋์ผ ๋๋ง ํด๋น
ํ๋ ๊ฐ ํ๋ซ ๋คํธ์ํฌ ์๊ฐ
- ํ๋ ์ฌ์ด์์ ํต์ ์ ํญ์ ๋จ์ํ๋ค. ๋ ํ๋๊ฐ ๋์ผ ํน์ ์๋ก ๋ค๋ฅธ ์์ปค ๋ ธ๋์ ์๋์ง ์ค์ํ์ง ์์ผ๋ฉฐ, ๋ ๊ฒฝ์ฐ ๋ชจ๋ ํ๋ ์์ ์๋ ์ปจํ ์ด๋๋ NAT ์๋ ํ๋ซ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก ํต์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
ํ๋๋ ๋ ผ๋ฆฌ์ ์ธ ํธ์คํธ๋ก์ ์ปจํ ์ด๋๊ฐ ์๋ ํ๊ฒฝ์์
๋์ผํ ํ๋์์ ์คํํ ํ๋ก์ธ์ค๋ ๊ฐ ํ๋ก์ธ์ค๊ฐ ์ปจํ ์ด๋ ์์ ์บก์ํ๋ผ ์๋ค๋ ์ ์ ์ ์ธํ๋ฉด,
๊ฐ์ ๋ฌผ๋ฆฌ์ ํน์ VM์์ ๋์ํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค.
3.1.3 ํ๋์์ ์ปจํ ์ด๋์ ์ ์ ํ ๊ตฌ์ฑ
ํ๋๋ ์๋์ ์ผ๋ก ๊ฐ๋ณ๊ธฐ ๋๋ฌธ์ ์ค๋ฒํค๋ ์์ด ํ์ํ ๋งํผ ํ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
๋ค๊ณ์ธต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ํ๋๋ก ๋ถํ
์ปดํจํ ๋ฆฌ์์ค๋ฅผ ํ์ฉํ์ง ์๊ณ ๋ฒ๋ฆด์๋ ์๋ค.
๊ฐ๋ณ ํ์ฅ์ด ๊ฐ๋ฅํ๋๋ก ์ฌ๋ฌ ํ๋๋ก ๋ถํ
๋ ์ปจํ ์ด๋๋ฅผ ํ๋์ ํ๋์ ๋ฃ์ง ๋ง์์ผ ํ๋ ๋ ๋ค๋ฅธ ์ด์ → ์ค์ผ์ผ๋ง
ํ๋๋ ์ค์ผ์ผ๋ฆฌ์ ๊ธฐ๋ณธ ๋จ์์ด๋ค.
ํ๋์์ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
์ฃผ์ ํ๋ก์ธ์ค์ ํ๋ ์ด์์ ๋ณด์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ.
์ฌ์ด๋์นด ์ปจํ ์ด๋์ ๋ค๋ฅธ ์์ ๋ก๋ ๋ก๊ทธ ๋กํ ์ดํฐ์ ์์ง๊ธฐ, ๋ฐ์ดํฐ ํ๋ก์ธ์, ํต์ ์ด๋ํฐ ๋ฑ
ํ๋์์ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฒฐ์
- ์ปจํ ์ด๋๋ฅผ ํจ๊ป ์คํํด์ผ ํ๋๊ฑฐ, ํน์ ์๋ก ๋ค๋ฅธ ํธ์คํธ์์ ์คํํ ์ ์๋๊ฐ?
- ์ฌ๋ฌ ์ปจํ ์ด๋๊ฐ ๋ชจ์ฌ ํ๋์ ๊ตฌ์ฑ์์๋ฅผ ๋ํ๋ด๋๊ฐ? ํน๋ ๊ฐ๋ณ์ ์ธ ๊ตฌ์ฑ ์์์ธ๊ฐ?
- ์ปจํ ์ด๋๊ฐ ํจ๊ป ํน์ ๊ฐ๋ณ์ ์ผ๋ก ์ค์ผ์ผ๋ง ๋ผ์ผ ํ๋๊ฐ?
3.2 YAML ๋๋ JSON ๋์คํฌ๋ฆฝํฐ๋ก ํ๋ ์์ฑ
ํ๋๋ฅผ ํฌํจํ ๋ค๋ฅธ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ ์ผ๋ฐ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค REST API ์๋ํฌ์ธํธ์
JSON ํน์ YAML ๋งค๋ํ์คํธ๋ฅผ ์ ์กํด ์์ฑํ๋ค.
YAML ํ์ผ์ ๋ชจ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ๋ฅผ ์ ์ํ๋ฉด ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋ฃ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ ธ ๋ชจ๋ ์ด์ ์ ๋๋ฆด ์ ์๋ค.
3.2.1 ๊ธฐ์กด ํ๋์ YAML ๋์คํฌ๋ฆฝํฐ ์ดํด๋ณด๊ธฐ
kubectl get ๋ช ๋ น๊ณผ ํจ๊ป -o yaml ์ต์ ์ ํตํด ํ๋์ ์ ์ฒด YAML ์ ์๋ฅผ ๋ณผ ์ ์๋ค.
ํ๋ค๋ฅผ ์ ์ํ๋ ์ฃผ์ ๋ถ๋ถ ์๊ฐ
๊ฑฐ์ ๋ชจ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๊ฐ ๊ฐ๊ณ ์๋ ์ธ ๊ฐ์ง ์ค์ํ ๋ถ๋ถ
- Metadata: ์ด๋ฆ, ๋ค์์คํ์ด์ค, ๋ ์ด๋ธ ๋ฐ ํ๋์ ๊ดํ ๊ธฐํ ์ ๋ณด ํฌํจ
- Spec: ํ๋ ์ปจํ ์ด๋, ๋ณผ๋ฅจ, ๊ธฐํ ๋ฐ์ดํฐ ๋ฑ ํ๋ ์์ฒด์ ๊ดํ ์ค์ ๋ช ์ธ
- Status: ํ๋ ์ํ, ๊ฐ ์ปจํ ์ด๋ ์ค๋ช ๊ณผ ์ํ, ํ๋ ๋ด๋ถ IP, ๊ธฐํ ๊ธฐ๋ณธ์ ๋ณด ๋ฑ ํ์ฌ ์คํ ์ค์ธ ํ๋์ ๊ดํ ํ์ฌ ์ ๋ณด
status ๋ถ๋ถ์๋ ํน์ ์๊ฐ์ ๋ฆฌ์์ค ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฝ๊ธฐ ์ ์ฉ์ ๋ฐํ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ผ ์๋ค.
→ ์ ํ๋๋ฅผ ๋ง๋ค ๋ status ๋ถ๋ถ์ ์์ฑํ ํ์๊ฐ ์๋ค.
3.2.2 ํ๋๋ฅผ ์ ์ํ๋ ๊ฐ๋จํ YAML ์ ์ ์์ฑํ๊ธฐ
์ปจํ ์ด๋ ํฌํธ ์ง์
ํฌํธ ์ง์ ์ ์๋ตํด๋ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์์ ํฌํธ๋ฅผ ํตํด ํ๋์ ์ฐ๊ฒฐํ ์ ์๋ ์ฌ๋ถ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
๊ทธ๋ฌ๋ ํฌํธ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์ํ๋ค๋ฉด → ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ๋์ด ํ๋์์ ๋ ธ์ถํ ํฌํธ๋ฅผ ๋น ๋ฅด๊ฒ ๋ณผ ์ ์๋ค.
๋ํ ๋ช ์์ ์ผ๋ก ์ ์ํ๋ฉด ์ด๋ฆ์ ์ง์ ํด ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
3.2.3 kubectl create ๋ช ๋ น์ผ๋ก ํ๋ ๋ง๋ค๊ธฐ
$ kubectl create -f kubia-manual.yaml
pod "kubia-manual" created
์คํ ์ค์ธ ํ๋์ ์ ์ฒด ์ ์ ๊ฐ์ ธ์ค๊ธฐ
$ kubectl get po kubia-manual -o yaml
// yaml ํ์
$ kubectl get po kubia-manual -o json
// json ํ์
$ kubectl get pods
// ํ๋๋ค ์ํ ์กฐํ
3.2.4 ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ ๋ณด๊ธฐ
์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๊ทธ๋ฅผ ํ์ผ์ ์ฐ๊ธฐ๋ณด๋ค๋ ํ์ค ์ถ๋ ฅ๊ณผ ํ์ค ์๋ฌ์ ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๋ ๊ฒ ์ผ๋ฐ์ → ์ด๋ก ์ฌ์ฉ์๋ ๊ฐ๋จํ๊ณ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ณผ ์ ์๋ค.
$ docker logs <container id>
// ๋์ปค ๋ก๊ทธ ๋ช
๋ น์ผ๋ก ๋ก๊ทธ๋ฅผ ํ์ธ
$ kubectl logs kubia-manual
// kubectl logs๋ฅผ ์ด์ฉํด ํ๋ ๋ก๊ทธ ๊ฐ์ ธ์ค๊ธฐ
$ kubectl logs kubia-manual -c kubia
// -c ์ต์
์ ํตํด ํ๋ ์์ ํน์ ์ปจํ
์ด๋ ๋ก๊ทธ ํ์ธ(ํ๋ ์์ ์ปจํ
์ด๋๊ฐ ์ฌ๋ฌ๊ฐ๋ผ๋ฉด)
3.2.5 ํ๋์ ์์ฒญ ๋ณด๋ด๊ธฐ
๋ก์ปฌ ๋คํธ์ํฌ ํฌํธ๋ฅผ ํ๋์ ํฌํธ๋ก ํฌ์๋ฉ
$ kubectl port-forward kubia-manual 8888:8080
// ํฌํธ ํฌ์๋ฉ์ kubectal port-forward ๋ช
๋ น์ผ๋ก ํ ์ ์๋ค.
// ๋จธ์ ์ ๋ก์ปฌ ํฌํธ 8888์ kubia-manual ํ๋์ 8080ํฌํธ๋ก ํฌ์๋ฉ
3.3 ๋ ์ด๋ธ์ ์ด์ํ ํ๋ ๊ตฌ์ฑ
ํ๋๊ฐ ๋ง์์ง๋ฉด ์ด๋ค ํ๋๊ฐ ์ด๋ค ๊ฒ์ธ์ง ์ฝ๊ฒ ์ ์ ์๋๋ก ์์์ ๊ธฐ์ค์ ๋ฐ๋ผ ์์ ๊ทธ๋ฃน์ผ๋ก ์กฐ์งํ๋ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค.
๋ ์ด๋ธ์ ํตํด ํ๋์ ๊ธฐํ ๋ค๋ฅธ ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ์ ์กฐ์งํ๊ฐ ์ด๋ค์ง๋ค.
3.3.1 ๋ ์ด๋ธ ์๊ฐ
๋ ์ด๋ธ - ํ๋์ ๋ชจ๋ ๋ค๋ฅธ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ฅผ ์กฐ์งํํ ์ ์๋ ์ฟ ๋ฒ๋คํฐ์ค ๊ธฐ๋ฅ.
๋ ์ด๋ธ์ ๋ฆฌ์์ค์ ์ฒจ๋ถํ๋ ํค-๊ฐ ์
๋ ์ด๋ธ ํค๊ฐ ํด๋น ๋ฆฌ์์ค๋ฅผ ์์ฑํ ๋ ๋ ์ด๋ธ์ ๋ถ์ด์ง๋ง, ๋์ค์ ๋ ์ด๋ธ์ ์ถ๊ฐ ์์ ํ ์ ์๋ค.
3.3.2 ํ๋๋ฅผ ์์ฑํ ๋ ๋ ์ด๋ธ ์ง์
$ kubectl get po --show-labels
// kubectl get pods ๋ช
๋ น์ ๋ ์ด๋ธ์ ํ์ํ์ง ์๋ ๊ฒ์ด ๊ธฐ๋ณธ ๊ฐ์ด๊ธฐ์ --show-labels ์ค์์น๋ฅผ ์ฌ์ฉํด
๋ ์ด๋ธ์ ๋ณผ ์ ์๋ค.
$ kubectl get po -L creation_method,env
// -L ์ค์์น๋ก ์ง์ ํด ํด๋น ๋ ์ด๋ธ์ ์์ฒด ์ด์ ํ์ํ ์ ์๋ค.
3.3.3 ๊ธฐ์กด ํ๋ ๋ ์ด๋ธ ์์
$ kubectl label po kubia-manual-v2 env=debug --overwrite
// ๊ธฐ์กด ๋ ์ด๋ธ์ ๋ณ๊ฒฝํ ๋๋ --overwrite ์ต์
์ด ํ์ํ๋ค
// kubia-manual-v2 ํ๋์ env=prod ๋ ์ด๋ธ์ env=debug๋ก ๋ณ๊ฒฝ
3.4 ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ์ด์ฉํ ํ๋ ๋ถ๋ถ ์งํฉ ๋์ด
๋ ์ด๋ธ์ด ๋ ์ด๋ธ ์ ๋ ํฐ์ ํจ๊ป ์ฌ์ฉ๋๋ค!
→ ๋ ์ด๋ธ ์ ๋ ํฐ๋ ํน์ ๋ ์ด๋ธ๋ก ํ๊ทธ๋ ํ๋์ ๋ถ๋ถ ์งํฉ์ ์ ํํด ์ํ๋ ์์ ์ ์ํํ๋ค.
ํน์ ๊ฐ๊ณผ ๋ ์ด๋ธ์ ๊ฐ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฆฌ์์ค๋ฅผ ํํฐ๋งํ๋ ๊ธฐ์ค์ด ๋๋ค.
๋ ์ด๋ธ ์ ๋ ํฐ๋ ๋ฆฌ์์ค ์ค ๋ค์ ๊ธฐ์ค์ ๋ฐ๋ผ ๋ฆฌ์์ค๋ฅผ ์ ํํ๋ค
- ํน์ ํ ํค๋ฅผ ํฌํจํ๊ฑฐ๋ ํฌํจํ์ง ์๋ ๋ ์ด๋ธ
- ํน์ ํ ํค์ ๊ฐ์ ๊ฐ์ง ๋ ์ด๋ธ
- ํน์ ํ ํค๋ฅผ ๊ฐ๊ณ ์์ง๋ง, ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง ๋ ์ด๋ธ
3.4.1 ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ์ฌ์ฉํด ํ๋ ๋์ด
$ kubectl get po -l creation_method=manual
// ์๋์ผ๋ก ์์ฑํ ๋ชจ๋ ํ๋๋ฅผ ๋ณด๊ธฐ
$ kubectl get po -l env
// env๋ ์ด๋ธ์ ๊ฐ์ง๊ณ ์์ง๋ง ๊ฐ์ ๋ฌด์์ด๋ ์๊ด์๋ ํ๋ ์กฐํ
$ kubectl get po -l '!env'
// env ๋ ์ด๋ธ์ ๊ฐ์ง๊ณ ์์ง ์๋ ํ๋
3.4.2 ๋ ์ด๋ธ ์ ๋ ํฐ์์ ์ฌ๋ฌ ์กฐ๊ฑด ์ฌ์ฉ
๋ ์ด๋ธ ์ ๋ ํฐ๋ ํ๋ ๋ชฉ๋ก์ ๋์ดํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ, ํ๋ ๋ถ๋ถ ์งํฉ์ ์์ ์ ์ํํ ๋๋ ์ ์ฉํ๋ค.
์ ๋ ํฐ๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ์ฌ๋ฌ ๊ธฐ์ค์ ํฌํจํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
3.5 ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ์ด์ํด ํ๋ ์ค์ผ์ค๋ง ์ ํ
์ด๋ค ํ๋๊ฐ ์ด๋ ๋ ธ๋์ ์ค์ผ์ค๋ง ๋๋๋๋ ์ค์ํ์ง ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฟ ๋ฒ์๊ฒ ํ๋๋ฅผ ์ด๋์ ์ค์ผ์ค๋ง ํ ์ง ์๋ ค์ค ํ์๋ ์๋ค.
ํ์ง๋ง ์๋ก GPU ๊ฐ์์ ์ ๊ณตํ๋ ๋ ธ๋์๋ง GPU ๊ณ์ฐ์ด ํ์ํ ํ๋๋ฅผ ์ค์ผ์คํ๋ ๊ฒ ์ฒ๋ผ.
์ฟ ๋ฒ๋คํฐ์ค์ ์ ์ฒด์ ์ธ ์์ด๋์ด → ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก๋ถํฐ ์ค์ ์ธํ๋ผ์คํธ๋ญ์ฒ๋ฅผ ์จ๊ธฐ๋ ๊ฒ
→ ํ๋๊ฐ ์ด๋ ๋ ธ๋์ ์ค์ผ์ค๋ง๋ผ์ผ ํ๋์ง ๊ตฌ์ฒด์ ์ผ๋ก ์ง์ ํ๊ณ ์ถ์ง ์์ ๊ฒ
๊ทธ๋ฌ๋ ์ ํํ ๋ ธ๋๋ฅผ ์ง์ ํ๋ ๋์ ํ์ํ ๋ ธ๋ ์๊ตฌ ์ฌํญ์ ๊ธฐ์ ํ๊ณ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋ ๋ ธ๋๋ฅผ ์ ํํ๋๋กํ๋ค.
→ ์ด๋ ๋ ธ๋ ๋ ์ด๋ธ๊ณผ ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ํตํด ํ ์ ์๋ค.
3.5.1 ์์ปค ๋ ธ๋ ๋ถ๋ฅ ๋ ์ด๋ธ ์ฌ์ฉ
๋ ์ด๋ธ → ๋ ธ๋๋ฅผ ํฌํจํ ๋ชจ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ์ ๋ ์ด๋ธ์ ๋ถ์ฐฉํ ์ ์๋ค.
$ kubectl label node gke-kubia-85f6-node-0rrx gpu=true
// gke-kubia-85f6-node-0rrx ๋
ธ๋์ gpu=true๋ผ๋ ๋ ์ด๋ธ์ ๋ถ์
$ kubectl get nodes -l gpu=true
// gpu=true ๋ ์ด๋ธ์ ๊ฐ์ง ๋
ธ๋๋ฅผ ๋์ด
3.5.2 ํน์ ๋ ธ๋์ ํ๋ ์ค์ผ์ค๋ง
์ด์ GPU๋ฅผ ํ์๋ก ํ๋ ์๋ก์ด ํ๋๋ฅผ ๋ฐฐํฌํด์ผ ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด
ํ๋์ YAMLํ์ผ์ ๋ ธ๋ ์ ๋ ํฐ๋ฅผ ์ถ๊ฐํด ์์ฑํ๋ค.
spec ์น์ ์์
nodeSelector ํ๋๋ฅผ ์ถ๊ฐํ๊ณ gpu: “true”๋ฅผ ํตํด ์กฐ๊ฑด์ ๋ถ์ฌํ๋ค.
3.5.3 ํ๋์ ํน์ ๋ ธ๋๋ก ์ค์ผ์ค๋ง
ํ๋๋ ํน์ ํ ๋ ธ๋๋ก ์ค์ผ์ค๋งํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค
→ ๊ทธ๋ฌ๋ ๊ทธ ํน์ ๋ ธ๋๊ฐ ์คํ๋ผ์ธ ์ํ์ธ ๊ฒฝ์ฐ ์ค์ผ์ค๋ง ๋์ง ์์ ์ ์๋ค.
→ ๊ฐ๋ณ ๋ ธ๋๋ก ์๊ฐํด์๋ ์๋๋ค.
→ ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ํตํด ์ง์ ํ ํน์ ๊ธฐ์ค์ ๋ง์กฑํ๋ ๋ ธ๋์ ๋ ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์ ์๊ฐํด์ผํ๋ค.
3.6 ํ๋์ ์ด๋ ธํ ์ด์ ๋ฌ๊ธฐ
ํ๋ ๋ฐ ๋ค๋ฅธ ์ค๋ธ์ ํธ๋ ๋ ์ด๋ธ ์ด์ธ ์ด๋ ธํ ์ด์ ์ ๊ฐ์ง ์ ์๋ค.
์ด๋ ธํ ์ด์ ์ ํค-๊ฐ ์์ผ๋ก ๋ ์ด๋ธ๊ณผ ๋น์ทํ์ง๋ง ์๋ณ์ ๋ณด๋ฅผ ๊ฐ์ง์ง ์๋๋ค.
๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ํตํด ์ค๋ธ์ ํธ๋ฅผ ์ ํํ ์ ์์ง๋ง ์ด๋ ธํ ์ด์ ์ ๋ ํฐ์ ๊ฐ์ ๊ฒ์ ์๋ค.
์ด๋ ธํ ์ด์ ์ ๋ ๋ง์ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๋ค.
3.6.1 ์ค๋ธ์ ํธ์ ์ด๋ ธํ ์ด์ ์กฐํ
kubectl describe ๋ช ๋ น์ ์ด์ํ๊ฑฐ๋ YAML ์ ์ฒด ๋ด์ฉ์ ํตํด ์ด๋ ธํ ์ด์ ์ ๋ณผ ์ ์๋ค.
๋ ์ด๋ธ์๋ ์งง์ ๋ฐ์ดํฐ๋ฅผ, ๊ทธ์ ๋นํด ์ด๋ ธํ ์ด์ ์๋ ์๋์ ์ผ๋ก ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์ ์๋ค.
3.6.2 ์ด๋ ธํ ์ด์ ์ถ๊ฐ ๋ฐ ์์
$ kubectl annotate pod kubia-manual mycompany.com/someannotation="foo bar"
// kubectl annotate ๋ช
๋ น์ ํตํด ์ด๋
ธํ
์ด์
์ ์ถ๊ฐ
// ์ด๋
ธํ
์ด์
์ถฉ๋ ๋ฐฉ์ง๋ฅผ ์ํด ์ด๋
ธํ
์ด์
ํค๋ก ํ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค
3.7 ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ ๋ฆฌ์์ค ๊ทธ๋ฃนํ
๋ ์ด๋ธ์ ์ฌ์ฉํ๋ฉด ์ค๋ธ์ ํธ ๊ทธ๋ฃน์ด ์๋ก ๊ฒน์น ์ ์๋ค.
→ ์ด๋ฐ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฟ ๋ฒ๋คํฐ์ค๋ ์ค๋ธ์ ํธ ๋ค์์คํ์ด์ค๋ก ๊ทธ๋ฃนํํ๋ค
→ ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌํ๋๋ฐ ์ฌ์ฉํ๋ ๋ฆฌ๋ ์ค ๋ค์์คํ์ด์ค์ ๋ค๋ฅธ๊ฒ!
3.7.1 ๋ค์์คํ์ด์ค์ ํ์์ฑ
์ฌ๋ฌ ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ง ๋ณต์กํ ์์คํ ์ ์ข ๋ ์์ ๊ฐ๋ณ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฆฌํ ์ ์๋ค.
ex) ๋ฆฌ์์ค๋ฅผ ํ๋ก๋์ , ๊ฐ๋ฐ, QA ํ๊ฒฝ ํน์ ์ํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋๋์ด ์ฌ์ฉํ ์ ์๋ค.
- ์๋ก ๋ค๋ฅธ ๋ ๋ค์์คํ์ด์ค๋ ๋์ผํ ์ด๋ฆ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ๋๋ถ๋ถ์ ๋ฆฌ์์ค ์ ํ์ ๋ค์์คํ์ด์ค ์์ ์ํ์ง๋ง ์ผ๋ถ๋ ๊ทธ๋ ์ง ์๋ค.
3.7.2 ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ํ๋ ์ดํด๋ณด๊ธฐ
$ kubectl get ns
// ๋ชจ๋ ๋ค์์คํ์ด์ค ํ์ธ
$ kubectl get po --namespace kube-system
// kube-system ๋ค์์คํ์ด์ค์ ์ํด ์๋ ํ๋๋ฅผ ํ์ธ
// --namespace ๋์ -n ์ต์
์ฌ์ฉ ๊ฐ๋ฅ
๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํด ์๋ก ๊ด๊ณ์๋ ๋ฆฌ์์ค๋ฅผ ๊ฒน์น์ง ์๋ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฆฌํ ์ ์๋ค.
๋ค์์คํ์ด์ค๋ ๋ฆฌ์์ค๋ฅผ ๊ฒฉ๋ฆฌํ๋ ๊ฒ ์ธ์๋ ํน์ ์ฌ์ฉ์๊ฐ ์ง์ ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋๋ก ํ์ฉ,
๊ฐ๋ณ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ ํํ๋ ๋ฐ์๋ ์ฌ์ฉ๋๋ค.
3.7.3 ๋ค์์คํ์ด์ค ์์ฑ
$ kubectl create namespace custom-namespace
// kubectl create namespace ๋ช
๋ น์ผ๋ก ๋ค์์คํ์ด์ค ์์ฑ
3.7.4 ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์ค๋ธ์ ํธ ๊ด๋ฆฌ
์์ฑํ ๋ค์์คํ์ด์ค ์์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ metadata ์น์ ์ namespace: custom-namespace ํญ๋ชฉ์ ๋ฃ๊ฑฐ๋
kubectl create ๋ช ๋ น์ ์ฌ์ฉํ ๋ ์ง์ ํ๋ค.
$ kubectl create -f kubia-manual.yaml -n custom-namespace
๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋ ํ๋๊ฐ ์๋ก ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์๋ค.
์ด๋ฐ ๊ฒฝ์ฐ —namespace ํ๋๊ทธ๋ฅผ kubectl์ ์ ๋ฌํด์ผ ํ๋ค.
์ง์ ํ์ง ์์ผ๋ฉด ํ์ฌ kubectl ์ปจํ ์คํธ์ ๊ตฌ์ฑ๋ผ ์๋ ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค์์ ์์ ์ ์ํํ๋ค.
3.7.5 ๋ค์์คํ์ด์ค๊ฐ ์ ๊ณตํ๋ ๊ฒฉ๋ฆฌ ์ดํด
- ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ธ์ ํธ๋ฅผ ๋ณ๋ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฆฌํด ํน์ ๋ฆฌ์์ค๋ฅผ ๋์์ผ๋ก ์์ ํ ์ ์๊ฒ ํด์ค๋ค.
- ํ์ง๋ง ์คํ์ค์ธ ์ค๋ธ์ ํธ์ ๋ํ ๊ฒฉ๋ฆฌ๋ ์ ๊ณตํ์ง ์๋๋ค.
3.8 ํ๋ ์ค์ง์ ์ ๊ฑฐ
3.8.1 ์ด๋ฆ์ผ๋ก ํ๋ ์ญ์
$ kubectl delete po kubia-gpu
// ํ๋๋ฅผ ์ด๋ฆ์ผ๋ก ์ญ์
ํ๋๋ฅผ ์ญ์ ํ๋ฉด ์ฟ ๋ฒ๋คํฐ์ค๋ SIGTERM ์ ํธ๋ฅผ ํ๋ก์ธ์ค์๊ฒ ๋ณด๋ด ์ง์ ๋ ์๊ฐ๋์ ๊ธฐ๋ค๋ฆฐ๋ค.
์๊ฐ ๋ด์ ์ข ๋ฃ๋์ง ์์ผ๋ฉด SIGKILL ์ ํธ๋ฅผ ํตํด ์ข ๋ฃํ๋ค.
3.8.2 ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ์ด์ฉํ ํ๋ ์ญ์
$ kubectl delete po -l creation_method=manual
// ๋ ์ด๋ธ ์
๋ ํฐ๋ฅผ ํตํด ํ๋ ์ญ์
3.8.3 ๋ค์์คํ์ด์ค๋ฅผ ์ญ์ ํ ํ๋ ์ ๊ฑฐ
$ kubectl delete ns custom-namespace
// ๋ค์์คํ์ด์ค๋ฅผ ์ญ์ -> ํ๋๋ ๋ค์์คํ์ด์ค์ ํจ๊ป ์๋์ผ๋ก ์ญ์ ๋๋ค.
3.8.4 ๋ค์์คํ์ด์ค๋ฅผ ์ ์งํ๋ฉด์ ๋ค์์คํ์ด์ค ์์ ์๋ ๋ชจ๋ ํ๋ ์ญ์
$ kubectl get pods
$ kubectl delete po --all
// --all ์ต์
์ ์ด์ฉํด ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ํ์ฌ ๋ค์์คํ์ด์ค์ ์๋ ๋ชจ๋ ํ๋๋ฅผ ์ญ์
3.8.5 ๋ค์์คํ์ด์ค์์ (๊ฑฐ์)๋ชจ๋ ๋ฆฌ์์ค ์ญ์
์ฒซ๋ฒ์งธ all ๋ช ๋ น์ ๋ชจ๋ ์ ํ์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๋๋ก ์ง์ ํ๊ณ
—all ์ต์ ์ผ๋ก ๋ฆฌ์์ค ์ด๋ฆ์ด ์๋ ๋ชจ๋ ๋ฆฌ์์ค ์ธ์คํด์ค๋ฅผ ์ญ์ ํ ๊ฒ์ ์ง์ ํ๋ค.
3.9 ์์ฝ
- ํน์ ์ปจํ ์ด๋๋ฅผ ํ๋๋ก ๋ฌถ์ด์ผ ํ๋์ง.
- ํ๋๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์์ผ๋ฉฐ ์ปจํ ์ด๋๊ฐ ์๋ ์ธ๊ณ์ ๋ฌผ๋ฆฌ์ ํธ์คํธ์ ๋น์ทํ๋ค.
- YAML ๋๋ JSON ํ์ผ์ ํตํด ํ๋๋ฅผ ์์ฑํ๊ณ ์ ์์ ์ํ๋ฅผ ํ์ธ ํ ์ ์๋ค.
- ๋ ์ด๋ธ๊ณผ ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ์ฌ์ฉํด ํ๋๋ฅผ ์กฐ์งํ๊ณ ํ๋ฒ์ ์ฌ๋ฌ ํ๋์์ ์์ ์ ์ฝ๊ฒ ํ ์ ์๋ค.
- ๋ ธ๋ ๋ ์ด๋ธ๊ณผ ์ ๋ ํฐ๋ฅผ ์ฌ์ฉํด ํน์ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋ง ํ ์ ์๋ค.
- ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด ๋ ํฐ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ํ๋์ ๋ถ์ฐฉํ ์ ์๋ค.
- ๋ค์์คํ์ด์ค๋ ๋ค๋ฅธ ํ๋ค์ด ๋์ผํ ํด๋ฌ์คํฐ๋ฅผ ๋ณ๋ ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ฒ๋ผ ์ด์ฉํ ์ ์๊ฒ ํด์ค๋ค.
'k8s' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฑํฐ6: ๋ณผ๋ฅจ: ์ปจํ ์ด๋์ ๋์คํฌ ์คํ ๋ฆฌ์ง ์ฐ๊ฒฐ (0) | 2023.04.27 |
---|---|
์ฑํฐ5. ์๋น์ค: ํด๋ผ์ด์ธํธ๊ฐ ํ๋๋ฅผ ๊ฒ์ํ๊ณ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํจ (2) | 2023.04.12 |
์ฑํฐ4. ๋ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ทธ ๋ฐ์ ์ปจํธ๋กค๋ฌ: ๊ด๋ฆฌ๋๋ ํ๋ ๋ฐฐํฌ (0) | 2023.04.06 |
์ฑํฐ2. ์ปจํ ์ด๋์ ์ดํด (0) | 2023.03.27 |
์ฑํฐ1. ์ฟ ๋ฒ๋คํฐ์ค ์๊ฐ (0) | 2023.03.19 |