๐ CKA 15์ผ์ฐจ
๐ Udemy-Certified Kubernetes Administrator (CKA) with Practice Tests 174-185
์ด์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋คํธ์ํฌ ๋ณด์์ ์ดํด๋ณด์. ํ๋์ ์๋น์ค ์ธํธ๋ฅผ ํธ์คํ ํ๋ ๋ ธ๋ ์งํฉ์ ํด๋ฌ์คํฐ๊ฐ ์๋ค. ๋ ธ๋๋ง๋ค IP ์ฃผ์๊ฐ ์๊ณ ํ๋๋ง๋ค ์๋น์ค๋ ์กด์ฌํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ์ ์ ์กฐ๊ฑด
1. ์ด๋ค ์๋ฃจ์ ์ ๊ตฌํํ๋ ํ๋๊ฐ ์๋ก ํต์ ํ ์ ์์ด์ผ ํ๋ค.
์ด ๋คํธ์ํฌ ์๋ฃจ์
์์ ๋ชจ๋ ํ๋๊ฐ ๊ฐ์ ์ฌ์ค ๋คํธ์ํฌ์ ์๊ณ IP๋ ํ๋ ์ด๋ฆ ๋๋ ์๋น์ค ์ด๋ฆ์ ํตํด ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ด ๋
ธ๋๋ฅผ ๊ฐ๋ก์ง๋ฅด๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ก์๊ฒ ๋ฟ์ ์ ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ชจ๋ ํ์ฉ ๊ท์น๊ณผ ํจ๊ป ๊ตฌ์ฑ๋๋ค. ํด๋ฌ์คํฐ ๋ด์ ์ด๋ค ํ๋๋ ์๋น์ค๊ฐ ์๋ก์๊ฒ ์ ๊ทผํ ์ ์๋ค.
์ฐ๋ฆฌ๋ ํ๋๋ฅผ ํตํด ์ฑ์ ๊ฐ ๊ตฌ์ฑ์์(ํ๋ก ํธ์๋ ์น ์๋ฒ, ๋ฐฑ์๋ API ์๋ฒ, DB)๋ฅผ ๋ฐฐํฌํ๋ค.
์ด์ ์ฌ๋ผ์ด๋์์ ๋
ผ์ํ๋ฏ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ด์์ ์ธ ๊ฐ์ ํ๋๋ ์๋ก ํต์ ํ ์ ์๋ค.
์ด๋, ํ๋ก ํธ์๋ ์น ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ง์ ์ ์ผ๋ก ํต์ ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด์ Network Policy๊ฐ ํ์ํ๋ค.
Network Policy์ ์ฟ ๋ฒ๋คํฐ์ค ๋ค์์คํ์ด์ค์ ์๋ ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ก ํ๋, ๋ ํ๋ฆฌ์นด ์
์ด๋ ์๋น์ค ์ฒ๋ผ ํ๋ ์ด์์ ํ๋์ ๋คํธ์ํฌ ์ ์ฑ
์ ์ฐ๊ฒฐํ๋ค.
์ด ๊ฒฝ์ฐ์๋ 3306 ํฌํธ API ํ๋์์๋ง Ingress ํธ๋ํฝ์ ํ์ฉํ๋ค. ์ผ๋จ ์ด ์ ์ฑ
์ด ์์ฑ๋๋ฉด ํ๋์ ๋ชจ๋ ํธ๋ํฝ์ ์ฐจ๋จํ๊ณ ์ง์ ๋ ๊ท์น์ ๋ถํฉํ๋ ํธ๋ํฝ๋ง ํ์ฉํ๋ค.
replicaset์ด๋ service๋ฅผ ํ๋์ matchlabels, labels๋ฅผ ํตํด ๋งํฌํ๋ ๋์ผํ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค.
policyTypes์ ํธ๋ํฝ์ด Ingress์ธ์ง Egress์ธ์ง๋ฅผ ๋ช
์ํ๊ณ ๊ท์น์ ์ง์ ํ๋ค.
Network Policy์ ์ ์ ํ์ผ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ด Network Policy๋ ์ง์
ํธ๋ํฝ๋ง ๊ฒฉ๋ฆฌ๋๊ณ ํด์ฅ ํธ๋ํฝ์ ์ํฅ์ด ์๋ค.
๋คํธ์ํฌ ์ ์ฑ
์ ๋คํธ์ํฌ ์๋ฃจ์
์ ์ํด ์คํ๋๋ค. ๋ชจ๋ ๋คํธ์ํฌ ์๋ฃจ์
์ด ๋คํธ์ํฌ ์ ์ฑ
์ ์ง์ํ๋ ๊ฒ์ ์๋๋ค.
๋คํธ์ํฌ ์ ์ฑ
์ ์ง์ํ๋์ง ํ์ธํ๊ธฐ ์ํด ๊ณต์ ๋ฌธ์๋ฅผ ํญ์ ์ฐธ์กฐํด๋ณด๊ธธ ๊ถํ๋ค.
๋คํธ์ํฌ ์ ์ฑ
์ ์ง์ํ์ง ์๋ ์๋ฃจ์
์ผ๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ์์๋ ์ ์ฑ
์ ๋ง๋ค ์ ์์ง๋ง ๊ฐ์๋๋ ๊ฒ์ ์๋๋ค.
๋ฐฑ์๋ API ํ๋๋ฅผ ์ ์ธํ ๋ค๋ฅธ ์์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๋ก์ ํธ๋ํฝ์ ํ์ฉํด์๋ ์๋๋ค.
๋ง์ฝ ๋ค์ด์ค๋ ํธ๋ํฝ์ ํ์ฉํ๋ฉด ๊ทธ ํธ๋ํฝ์ ๋ํ ์๋ต์ด๋ ํ์ ์ด ์๋์ผ๋ก ํ์ฉ๋๋ค. ๊ทธ๋์ ์๋ต, ํ์ ์ ๋ํ ๊ฒ์ ๋ฐ๋ก ๊ท์ ํ์ง ์์๋ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋คํธ์ํฌ ์ ์ฑ
์ ์ ํ์ผ์ ์์ฑํ ์ ์๋ค.
์ด๋ ๊ฒ ์์ฑํ๋ฉด api-pod๋ฅผ ์ ์ธํ๊ณ DB ํ๋๋ก ๊ฐ๋ ๋ชจ๋ ํธ๋ํฝ์ ์ฐจ๋จํ ์ ์๋ค.
๋คํธ์ํฌ ์ ์ฑ
์ ๊ธฐ๋ณธ์ผ๋ก metadata์ ์ง์ ๋ namespace์ ์๋ ํ๋(์ง์ ๋ ํ๋์ ๋์ผํ ๋ค์์คํ์ด์ค์ ์๋ ํ๋)๋ง ์ง์ ํ ์ ์๋ค.
๋ง์ฝ ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ํ๋์ ๋๋ฌํ๊ณ ์ถ๋ค๋ฉด namespaceSelector ์์ญ์ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
podSelector ์์ด namespaceSelector๋ง ์ง์ ํ ์๋ ์๋ค.
๊ทธ๋ด ๊ฒฝ์ฐ, ์ง์ ํ ๋ค์์คํ์ด์ค ๋ด์ ๋ชจ๋ ํ๋๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ๋๋ฌํ ์ ์๋ค.
ํด๋ฌ์คํฐ ์ธ๋ถ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ์ ์ํ ์ ์๋๋ก ๋คํธ์ํฌ ์ ์ฑ
์ ๊ตฌ์ฑํ ์ ์๋ค.
ipBlock ์์ญ์ ํตํด IP ์ฃผ์๋ฅผ ์ง์ ํ๋ฉด ํด๋น IP์ ๊ฐ์ฒด๊ฐ DB ํ๋์ ์ ๊ทผํ ์ ์๋ค.
์ ๋ฆฌํ์๋ฉด ํน์ ํ ํ๋, ๋ค์์คํ์ด์ค, ip ์ฃผ์๋ฅผ ์ง์ ํ๊ธฐ ์ํด podSelector, namespaceSelector, ipBlock ์์ญ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ๊ฐ๋ณ์ ์ธ ๊ท์น์ผ๋ก ํต๊ณผ๋ ์๋ ์๊ณ ํ๋์ ๊ท์น์ ์ผ๋ถ๋ก ํจ๊ป ํต๊ณผ๋ ์๋ ์๋ค.
์ด ์์ ์์๋ ๋ ๊ฐ์ง ๊ท์น์ด ์๋ค.
podSelector์ namespaceSelector๊ฐ ํจ๊ป ์ ์ฉ๋์ด ์ฒซ ๋ฒ์งธ ๊ท์น์ด ๋ง๋ค์ด์ง๊ณ ipBlock์ ํตํด ๋๋ฒ์งธ ๊ท์น์ด ๋ง๋ค์ด์ง๋ค.
๋ง์ฝ namespaceSelector ์์ ๋์๋ฅผ ์ถ๊ฐํด ๊ท์น์ ๋ถ๋ฆฌํ ์ ์๋ค.
์ฒซ ๋ฒ์งธ ๊ท์น์ podSelector์ ์ํด api-pod์ ์ผ์นํ๋ ๋ชจ๋ ํ๋๊ฐ ํ์ฉ๋๋ค.
๋ ๋ฒ์งธ ๊ท์น์ namespaceSelector์ ์ํด prod ๋ค์์คํ์ด์ค ๋ด์ ์ด๋ค ํ๋์์๋ ํธ๋ํฝ์ด ํ์ฉ๋๋ค.
์ธ ๋ฒ์งธ ๊ท์น์ ํ๋์ด๋ ๋ฐฑ์
์๋ฒ์ด๋ ํน์ IP๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ํ์ฉํ๋ค.
๋ฐ๋๋ก DB ํ๋์์ ๋ฐฑ์
์๋ฒ๋ก ํธ์ฌํด์ผ ํ๋ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์์ ์ธ๋ถ ๋ฐฑ์
์๋ฒ๋ก ๋คํธ์ํฌ๋ฅผ ํ์ฉํด์ผ ํ๋ค.
policyTypes์ Egress๋ฅผ ์ถ๊ฐํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์์ ์ธ๋ถ ๋ฐฑ์
์๋ฒ๋ก ํต์ ์ ํ์ฉํ๋ egress ๊ท์น์ ์ถ๊ฐํด์ผ ํ๋ค.
kubectl config
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค. ์ด ๋๊ตฌ๋ ํด๋ฌ์คํฐ๋ค ์ฌ์ด์ ์ ํํ๋๋ฐ ๋์์ ์ค๋ค.network policy ์กฐํ
Network Policy ์์ฑํ๊ธฐ
๋์ปค์ ์ ์ฅ์ ์ข
๋ฅ๋ 2๊ฐ์ง๊ฐ ์๋ค.
์์คํ
์ docker๋ฅผ ์ค์นํ๋ฉด /var/lib/docker/์ ์์ฑ๋๋ค. ํ์ ํด๋๋ก ๋์ปค์ ๊ด๋ จ๋ ์ฌ๋ฌ ๊ฐ์ ํด๋๋ค์ด ์๊ธด๋ค. ์ฌ๊ธฐ๊ฐ docker๊ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ์ด๋ค. ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ docker ํธ์คํธ์์ ์คํ๋๋ ์ด๋ฏธ์ง ๋ฐ ์ปจํ
์ด๋์ ๊ด๋ จ๋ ํ์ผ๋ค์ ๋งํ๋ค.
docker๋ Layered architecture๋ก ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๋ค. Dockerfile์ ๊ฐ ์ง์์ฌํญ ์ค์ docker ์ด๋ฏธ์ง์ ์ ๋ ์ด์ด๋ฅผ ๋ง๋ ๋ค. ๊ฐ ๋ ์ด์ด๋ ์ด์ ๋ ์ด์ด์ ๋ณํ๋ง ์ ์ฅํ๋ค.
๋ ๋ฒ์งธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋น๋ ํ ๋ ์ฒ์ ์ธ ๋ ์ด์ด๋ ๊ฐ๊ธฐ ๋๋ฌธ์ docker๋ ์ฒ์ ์ธ ๋ ์ด์ด๋ฅผ ๋น๋ํ์ง ์๋๋ค. ๋์ ์บ์์ ์๋ ๋ง๋ ์ฒซ ๋ฒ์งธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ๋ง๋ 3๊ฐ์ ๋ ์ด์ด๋ฅผ ์ฌ์ฌ์ฉํ๋ค. ๊ทธ๋์ ๋ ๋ ์ด์ด๋ง ์๋ก ๋ง๋ค๋ฉด ๋๋ค.
๋์ปค๋ ๋ ์ด์ด ์ํคํ
์ณ๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋ ๋นจ๋ฆฌ๋ง๋ค๊ณ ๋์คํฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ ์ฝํ๋ค.
์ด๋ฏธ ๋น๋ํ ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ์๋ ๋ณ๊ฒฝ๋ ๋ ์ด์ด๋ง ์ฌ๋น๋ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฌ๋นจ๋ฆฌ ํ๋ก๊ทธ๋จ ์ด๋ฏธ์ง๋ฅผ ์ฌ๊ตฌ์ถํ ์ ์๋ค.
์ด ๋ชจ๋ ๋์ปค ์ด๋ฏธ์ง ๊ณ์ธต์ ์ต์ข
๋์ปค ์ด๋ฏธ์ง๋ฅผ ํ์ฑํ๊ธฐ ์ํด docker build ๋ช
๋ น์ ์คํํ ๋ ์์ฑ๋๋ค.
๋น๋๊ฐ ์๋ฃ๋๋ฉด ๋ ์ด์ด์ ๋ด์ฉ๋ฌผ์ ์์ ํ ์ ์๋ค. ์ฝ๊ธฐ๋ง ํ ์ ์๊ณ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ์๋ก ๋ง๋ค์ด์ผ(re-build) ํ๋ค.
์ด ์ด๋ฏธ์ง์ ๊ธฐ๋ฐ์ ๋ ์ปจํ
์ด๋๋ฅผ ์คํํ ๋ docker run ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด docker๋ ์ด ๋ ์ด์ด๋ค์ ๊ธฐ๋ฐ์ ๋ ์ปจํ
์ด๋๋ฅผ ๋ง๋ค๊ณ ์ด๋ฏธ์ง ๋ ์ด์ด ์๋จ์ ๊ธ์ ์ธ ์ ์๋ ์ ๋ ์ด์ด๋ฅผ ๋ง๋ ๋ค.
์ฐ๊ธฐ ๊ฐ๋ฅํ ๋ ์ด์ด๋ ์ปจํ
์ด๋์ ์ํด ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ฑํ ๋ก๊ทธ ํ์ผ์ด๋ ์ปจํ
์ด๋์ ์ํด ์์ฑ๋ ์์ ํ์ผ๊ฐ์ ๊ฑฐ์ด๋ค.
์๋จ์ ๊ธ์ ์ธ ์ ์๋ ๋ ์ด์ด๋ ์ปจํ ์ด๋๊ฐ ์ด์์๋ ๋์๋ง ์ ์ง๋๋ค. ์ปจํ ์ด๋๊ฐ ํ๊ดด๋๋ฉด ์ด ๋ ์ด์ด์ ๊ทธ ์์ ์ ์ฅ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ ํ๊ดด๋๋ค.
๋์ผํ ์ด๋ฏธ์ง ๋ ์ด์ด๋ ์ด ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด ์์ฑ๋ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ๊ณต์ ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํด์ผ ํ๋ค.
๋ง์ฝ ์ปจํ
์ด๋๋ฅผ ์คํํ ํ ์ด๋ฏธ์ง ๋ ์ด์ด์ ์ผ๋ถ์ธ ์์ค ์ฝ๋๋ฅผ ์์ ํ๋ค๋ฉด, ์ปจํ
์ด๋๋ ์์ ํ๋ ค๋ ์์ค ์ฝ๋ ํ์ผ์ ์ ์ฅํ๊ธฐ ์ ์ Read Write ๊ณ์ธต(Container Layer)์ ํ์ผ ๋ณต์ฌ๋ณธ์ ์๋์ผ๋ก ๋ง๋ค๊ณ Read Write ๊ณ์ธต์ ๋ค๋ฅธ ํ์ผ ๋ฒ์ ์ ์์ ํ๊ฒ ๋๋ค.
์ด๊ฒ์ COPY-ON-WRITE ๋ฉ์ปค๋์ฆ์ด๋ผ๊ณ ํ๋ค.
์ด๋ฏธ์ง ๋ ์ด์ด๋ฅผ ์ฝ๋๋ค๋ ๊ฒ์ ์ด๋ฏธ์ง ๋ ์ด์ด์ ํ์ผ๋ค์ด ์์ ๋์ง ์์ผ๋ฉฐ ๋ณํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ๊ทธ๋์ ์ด๋ฏธ์ง๋ docker build ๋ช
๋ น์ ํตํด ์ด๋ฏธ์ง๋ฅผ ์ฌ๊ตฌ์ถํ๊ธฐ ์ ๊น์ง ํญ์ ๋์ผํ๋ค.
์ปจํ
์ด๋๋ฅผ ์์ ๋ฉด ์ปจํ
์ด๋ ๋ ์ด์ด์ ์ ์ฅ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ ์ญ์ ๋๋ค.
์ปจํ
์ด๋์์ ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด ์๊ตฌ์ ์ธ ๋ณผ๋ฅจ์ ์ถ๊ฐํ๋ฉด ๋๋ค.
docker volume create
๋ช
๋ น์ด๋ฅผ ํตํด ๋ณผ๋ฅจ์ ์์ฑํ ์ ์๋ค. ํด๋น ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด /var/lib/docker/volumes ํด๋์ ๋ณผ๋ฅจ์ด ์์ฑ๋๋ค.
๊ทธ๋ฐ ๋ค์ docker run
๋ช
๋ น์ ์คํํ ๋ '-v {๋ณผ๋ฅจ ์ด๋ฆ}:{์ปจํ
์ด๋ ๋ด๋ถ ๊ฒฝ๋ก}' ์ต์
์ ํตํด ์์ฑํ ๋ณผ๋ฅจ๊ณผ ์ปจํ
์ด๋ ๋ด๋ถ๋ฅผ ๋ง์ดํธํ ์ ์๋ค.
์๋ ์์์์๋ data_volume ๋ณผ๋ฅจ์ ์์ฑํ๊ณ ์์ฑํ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์ปจํ
์ด๋ ์์ /var/lib/mysql ๊ฒฝ๋ก์ ๋ง์ดํธํ๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑํ ๋ชจ๋ ๋ฐ์ดํฐ๋ docker host์ ์์ฑ๋ ๋ณผ๋ฅจ์ ์ ์ฅ๋๋ค. ์ปจํ
์ด๋๊ฐ ํ๊ดด๋์ด๋ ๋ฐ์ดํฐ๋ ์ด์ ์๋ค.
๋ง์ฝ ๊ธฐ๋ณธ ๊ฒฝ๋ก์ธ /var/lib/docker/volumes ๋์ docker host ์ธ๋ถ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด docker run
๋ช
๋ น์ด๋ฅผ ์คํํ ๋ '-v {์ธ๋ถ ์ ์ฅ์ ๊ฒฝ๋ก}:{์ปจํ
์ด๋ ๋ด๋ถ ๊ฒฝ๋ก}'๋ฅผ ์ง์ ํ๋ฉด ๋๋ค.
๋ง์ดํ
์๋ ๋ ์ข
๋ฅ๊ฐ ์๋ค. ๋ณผ๋ฅจ ๋ง์ดํ
,๋ฐ์ธ๋ ๋ฐ์ดํธ
์ด๋ค.
'-v' ์ต์
์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์๋ ๋ฐฉ์์ด๋ค. ์ง๊ธ์ '--mount' ์ต์
์ ์ฌ์ฉํ๋ค.
'--mount type={type},source={ํธ์คํธ ๊ฒฝ๋ก},target={์ปจํ
์ด๋ ๋ด ๊ฒฝ๋ก}' ์ด์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
Storage Driver๋ ๋ ์ด์ด๋ ์ํคํ
์ฒ๋ฅผ ์ ์งํ๊ณ writable ๋ ์ด์ด๋ฅผ ์์ฑํ๊ณ ๋ ์ด์ด๋ฅผ ๊ฐ๋ก์ง๋ฌ ํ์ผ์ ์ด๋ํด ๋ณต์ฌ์ ์ฐ๊ธฐ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ฅผ ์ ํํ๋ ๊ฒ์ OS ์ฌ์ฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ๊ฐ๋ น, Ubuntu์ ๊ธฐ๋ณธ ์ ์ฅ์ ๋๋ผ์ด๋ฒ๋ AUFS์ด๋ค.
Docker๋ ์ด์์ฒด์ ์ ๊ทผ๊ฑฐํด ์๋์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ต๊ณ ์ ์ ์ฅ์ ๋๋ผ์ด๋ฒ๋ฅผ ์ ํํ๋ค. ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ง๋ค ๋ค๋ฅธ ์ฑ๋ฅ๊ณผ ์์ ์ฑ ํน์ฑ์ ์ ๊ณตํ๋ค.
์ง๋ ๊ฐ์์์ ๋ฐฐ์ ๋ฏ์ด Storage Driver๋ ์ด๋ฏธ์ง์ ์ปจํ
์ด๋์ ์ ์ฅ์๋ฅผ ๊ด๋ฆฌํ๋๋ก ๋๋๋ค. ๋ํ ์ ์ฅ์๋ฅผ ์ ์งํ๊ธฐ ์ํด์๋ ๋ณผ๋ฅจ์ ๋ง๋ค์ด์ผ ํ๋ค.
๋ณผ๋ฅจ์ Storage Driver์ ์ํด ์ฒ๋ฆฌ๋์ง ์๋๋ค. ๋ณผ๋ฅจ์ ๋ณผ๋ฅจ ๋๋ผ์ด๋ฒ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ฒ๋ฆฌ๋๋ค. default ๋ณผ๋ฅจ ๋๋ผ์ด๋ฒ ํ๋ฌ๊ทธ์ธ์ Local์ด๋ค.
๋ก์ปฌ ๋ณผ๋ฅจ ํ๋ฌ๊ทธ์ธ์ docker host์ ๋ณผ๋ฅจ ์์ฑ์ ๋์ ๋ฐ์ดํฐ๋ฅผ /var/lib/docker/volumes ๋๋ ํฐ๋ฆฌ ์๋์ ์ ์ฅํ๋ค. ํ์ฌ ์๋ฃจ์
์์ ๋ณผ๋ฅจ์ ์์ฑํ ์ ์๋๋ก ๋ค์ํ ๋ณผ๋ฅจ ๋๋ผ์ด๋ฒ ํ๋ฌ๊ทธ์ธ๋ค์ด ์ ๊ณต๋๋ค.
์๋ฅผ ๋ค์ด, docker run ๋ช
๋ น์ด๋ฅผ ์คํํ ๋ AWS EBS์์ ๋ณผ๋ฅจ์ ๊ณต๊ธํ๊ธฐ ์ํด ํน์ ๋ณผ๋ฅจ ๋๋ผ์ด๋ฒ๋ฅผ ์ ํํ ์ ์๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ปจํ
์ด๋๊ฐ ์์ฑ๋๊ณ AWS ํด๋ผ์ฐ๋์์ ๋ณผ๋ฅจ์ ๋ถ์ฐฉํ ์ ์๋ค. ์ปจํ
์ด๋๊ฐ ํ๊ดด๋๋๋ผ๋ ๋ฐ์ดํฐ๋ ํด๋ผ์ฐ๋์ ์์ ํ๊ฒ ์ ์ฅ๋๋ค.
๊ณผ๊ฑฐ ์ฟ ๋ฒ๋คํฐ์ค๋ Docker๋ง์ ์ปจํ
์ด๋ ๋ฐํ์ ์์ง์ผ๋ก ์ฌ์ฉํ๊ณ docker์ ๊ด๋ จ๋ ๋ชจ๋ ์ฝ๋๊ฐ ์ฟ ๋ฒ๋คํฐ์ค ์์ค ์ฝ๋์ ๋ด์ฅ๋์ด ์์๋ค.
Rocket๊ณผ CRI-O์ ๊ฐ์ ๋ค๋ฅธ ์ปจํ
์ด๋ ๋ฐํ์ ์์ง์ด ๋์
๋ ๋ ์ฟ ๋ฒ๋คํฐ์ค ์์ค ์ฝ๋์ ์์กดํ์ง ์๊ณ ๋ค์ํ ์ปจํ
์ด๋ ๋ฐํ์์ ๋ํ ์ง์์ ํ์ฅํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๊ทธ๋์ Container Runtime Interface(CRI)๊ฐ ํ์ํ๋ค.
CRI๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์ ์ค์ผ์คํธ๋ ์ด์
์๋ฃจ์
์ด ๋์ปค์ ๊ฐ์ ์ปจํ
์ด๋ ๋ฐํ์๊ณผ ์ด๋ป๊ฒ ํต์ ํ ์ง ์ ์ํ๋ ํ์ค ์ธํฐํ์ด์ค์ด๋ค.
์์ผ๋ก ์๋ก์ด ์ปจํ
์ด๋ ๋ฐํ์ ์ธํฐํ์ด์ค(CRI)๊ฐ ๊ฐ๋ฐ๋๋๋ผ๋ CRI ํ์ค์ ๋ฐ๋ฅด๊ธฐ๋ง ํ๋ค๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ์์ค ์ฝ๋๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ์ฟ ๋ฒ๋คํฐ์ค์ ํต์ ํ ์ ์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์ํ ๋คํธ์ํน ์๋ฃจ์ ์ ๋ํ ์ง์์ ํ์ฅํ๊ธฐ ์ํ ์ปจํ ์ด๋ ๋คํธ์ํน ์ธํฐํ์ด์ค(CNI)๊ฐ ์กด์ฌํ๋ค. CNI ํ์ค์ ๊ธฐ๋ฐํ์ฌ ๋คํธ์ํฌ ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐํ๊ณ ์ฟ ๋ฒ๋คํฐ์ค์ ๋์ํ๋๋ก ํ ์ ์๋ค.
์ปจํ
์ด๋ ์ ์ฅ์ ์ธํฐํ์ด์ค(CSI)๋ ๋ค์ค ์ ์ฅ์ ์๋ฃจ์
์ ์ง์ํ๋๋ก ๊ฐ๋ฐ๋์๋ค. CSI ๋๋ถ์ ์ฟ ๋ฒ๋คํฐ์ค์์ ์๋ํ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ฅผ ์ง์ ์ ํํ ์ ์๋ค.
CSI๋ ์ฟ ๋ฒ๋คํฐ์ค์ ํ์ ๋ ๊ธฐ์ค์ด ์๋๋ค. CSI ํ์ค์ ๋ฐ๋ผ ๊ตฌํ๋๋ค๋ฉด ์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
ํด์์๋ ๋์ ๊ฐ๋ฅํ๋ค.
CSI๋ ์๊ฒฉ ํ๋ก์์ ํธ์ถ(RPC, Remote Procedure Call)์ ์งํฉ์ ์ ์ํ๋ค. CSI ํ์ค์ ๋ง๊ฒ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๊ฐ ๋ฐ๋์ ๊ตฌํ๋์ด์ผ ํ๊ณ ์ค์ผ์คํธ๋ ์ดํฐ๋ CSI ํ์ค์ ๋ฐ๋ฅธ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ฅผ ํธ์ถํ ์ ์๋ค.
์ปจํ ์ด๋๋ก ์ฒ๋ฆฌํ๋ ๋ฐ์ดํฐ๋ ๋์ปค์ ๋ณผ๋ฅจ์ ๋ด๊ฒจ์ ์๊ตฌ์ ์ผ๋ก ๋ณด์กด๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค์์๋ ์ด๋ป๊ฒ ๋์ํ ๊น?
๋์ปค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฟ ๋ฒ๋คํฐ์ค์์ ์์ฑ๋ ํ๋๋ ์ผ์์ ์ผ๋ก ์กด์ฌํ๋ค. ํ๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ญ์ ๋๋ฉด ํ๋๊ฐ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ ํจ๊ป ์ญ์ ๋๋ค.
ํ๋์ ๋ณผ๋ฅจ์ ๋ถ์ฐฉํ๋ฉด ํ๋์์ ์์ฑ๋ ๋ฐ์ดํฐ๊ฐ ๋ณผ๋ฅจ์ ์ ์ฅ๋๋ค. ํ๋๊ฐ ์ญ์ ๋ ํ์๋ ๋ฐ์ดํฐ๋ ๋ณผ๋ฅจ์ ๋จ์์๋ค.
๋จ์ผ ๋
ธ๋์์ ๋ค์๊ณผ ๊ฐ์ด ๋ณผ๋ฅจ์ ์ค์ ํ ์ ์๋ค.
๊ทธ๋ฌ๋ ํธ์คํธ์ ๊ฒฝ๋ก ์ต์
์ ํตํด ๋ณผ๋ฅจ ์คํ ๋ฆฌ์ง๋ฅผ ์ค์ ํ๋ ๋ฐฉ์์ ๊ถ์ฅ๋์ง ์๋๋ค.
ํ๋๋ ๋ชจ๋ ๋
ธ๋์์ /data ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด์ ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ค์ํ ์ ํ์ ์ ์ฅ์ ์๋ฃจ์
์ ์ง์ํ๋ค.