Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Custom Resources
์ปค์คํ ๋ฆฌ์์ค
์ปค์คํ ๋ฆฌ์์ค ๋ ์ฟ ๋ฒ๋คํฐ์ค API์ ์ต์คํ ์ ์ด๋ค. ์ด ํ์ด์ง์์๋ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ ์๊ธฐ์ ๋ ๋ฆฝํ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ์๊ธฐ์ ๋ํด ์ค๋ช ํ๋ค. ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ๊ณผ ์ด๋ค ์ค์์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๋ค.
์ปค์คํ ๋ฆฌ์์ค
๋ฆฌ์์ค ๋ ์ฟ ๋ฒ๋คํฐ์ค API์์ ํน์ ์ข ๋ฅ์ API ์ค๋ธ์ ํธ ๋ชจ์์ ์ ์ฅํ๋ ์๋ํฌ์ธํธ์ด๋ค. ์๋ฅผ ๋ค์ด ๋นํธ์ธ ํ๋ ๋ฆฌ์์ค์๋ ํ๋ ์ค๋ธ์ ํธ ๋ชจ์์ด ํฌํจ๋์ด ์๋ค.
์ปค์คํ ๋ฆฌ์์ค ๋ ์ฟ ๋ฒ๋คํฐ์ค API์ ์ต์คํ ์ ์ผ๋ก, ๊ธฐ๋ณธ ์ฟ ๋ฒ๋คํฐ์ค ์ค์น์์ ๋ฐ๋์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋๋ค. ์ด๋ ํน์ ์ฟ ๋ฒ๋คํฐ์ค ์ค์น์ ์์ ์ด ๊ฐํด์ก์์ ๋ํ๋ธ๋ค. ๊ทธ๋ฌ๋ ๋ง์ ํต์ฌ ์ฟ ๋ฒ๋คํฐ์ค ๊ธฐ๋ฅ์ ์ด์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋์ด, ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋์ฑ ๋ชจ๋ํํ๋ค.
๋์ ๋ฑ๋ก์ ํตํด ์คํ ์ค์ธ ํด๋ฌ์คํฐ์์ ์ปค์คํ ๋ฆฌ์์ค๊ฐ ๋ํ๋๊ฑฐ๋ ์ฌ๋ผ์ง ์ ์์ผ๋ฉฐ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๋ ํด๋ฌ์คํฐ ์์ฒด์ ๋ ๋ฆฝ์ ์ผ๋ก ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์๋ค. ์ปค์คํ ๋ฆฌ์์ค๊ฐ ์ค์น๋๋ฉด ์ฌ์ฉ์๋ ํ๋ ์ ๊ฐ์ ๋นํธ์ธ ๋ฆฌ์์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก kubectl์ ์ฌ์ฉํ์ฌ ํด๋น ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ๊ณ ์ ๊ทผํ ์ ์๋ค.
์ปค์คํ ์ปจํธ๋กค๋ฌ
์์ฒด์ ์ผ๋ก ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๋ค. ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ปค์คํ ์ปจํธ๋กค๋ฌ ์ ๊ฒฐํฉํ๋ฉด, ์ปค์คํ ๋ฆฌ์์ค๊ฐ ์ง์ ํ ์ ์ธ์ (declarative) API ๋ฅผ ์ ๊ณตํ๊ฒ ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค ์ ์ธ์ API๋ ์ฑ ์์ ๋ถ๋ฆฌ๋ฅผ ๊ฐ์ ํ๋ค. ์ฌ์ฉ์๋ ๋ฆฌ์์ค์ ์๋ํ ์ํ๋ฅผ ์ ์ธํ๋ค. ์ฟ ๋ฒ๋คํฐ์ค ์ปจํธ๋กค๋ฌ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ์ ํ์ฌ ์ํ๊ฐ ์ ์ธํ ์๋ํ ์ํ์ ๋๊ธฐํ ๋๋๋ก ํ๋ค. ์ด๋ ์๋ฒ์ ๋ฌด์์ ํด์ผํ ์ง ์ง์ํ๋ ๋ช ๋ น์ ์ธ API์๋ ๋์กฐ๋๋ค.
ํด๋ฌ์คํฐ ๋ผ์ดํ์ฌ์ดํด๊ณผ ๊ด๊ณ์์ด ์คํ ์ค์ธ ํด๋ฌ์คํฐ์ ์ปค์คํ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ฐฐํฌํ๊ณ ์ ๋ฐ์ดํธํ ์ ์๋ค. ์ปค์คํ ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ ์ข ๋ฅ์ ๋ฆฌ์์ค์ ํจ๊ป ์๋ํ ์ ์์ง๋ง ์ปค์คํ ๋ฆฌ์์ค์ ๊ฒฐํฉํ ๋ ํนํ ํจ๊ณผ์ ์ด๋ค. ์คํผ๋ ์ดํฐ ํจํด์ ์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค์ ์ปค์คํ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฒฐํฉํ๋ค. ์ปค์คํ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋๋ฉ์ธ ์ง์์ ์ฟ ๋ฒ๋คํฐ์ค API์ ์ต์คํ ์ ์ผ๋ก ์ธ์ฝ๋ฉํ ์ ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํด์ผ ํ๋?
์๋ก์ด API๋ฅผ ์์ฑํ ๋ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ API์ ์์ฑํ API๋ฅผ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธํ ๊ฒ์ธ์ง ์๋๋ฉด ์์ฑํ API๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์งํ ๊ฒ์ธ์ง ๊ณ ๋ คํ์.
API ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ๊ณ ๋ คํ ๊ฒฝ์ฐ | ๋ ๋ฆฝ API๋ฅผ ๊ณ ๋ คํ ๊ฒฝ์ฐ |
---|---|
API๊ฐ ์ ์ธ์ ์ด๋ค. | API๊ฐ ์ ์ธ์ ๋ชจ๋ธ์ ๋ง์ง ์๋ค. |
kubectl ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ํ์
์ ์ฝ๊ณ ์ธ ์ ์๊ธฐ๋ฅผ ์ํ๋ค. | kubectl ์ง์์ด ํ์ํ์ง ์๋ค. |
์ฟ ๋ฒ๋คํฐ์ค UI(์: ๋์๋ณด๋)์์ ๋นํธ์ธ ํ์ ๊ณผ ํจ๊ป ์๋ก์ด ํ์ ์ ๋ณด๊ธธ ์ํ๋ค. | ์ฟ ๋ฒ๋คํฐ์ค UI ์ง์์ด ํ์ํ์ง ์๋ค. |
์๋ก์ด API๋ฅผ ๊ฐ๋ฐ ์ค์ด๋ค. | ์์ฑํ API๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ์ด ์ด๋ฏธ ์๊ณ ์ ์๋ํ๊ณ ์๋ค. |
API ๊ทธ๋ฃน ๋ฐ ๋ค์์คํ์ด์ค์ ๊ฐ์ REST ๋ฆฌ์์ค ๊ฒฝ๋ก์ ์ ์ฉํ๋ ์ฟ ๋ฒ๋คํฐ์ค์ ํ์ ์ ํ์ ๊ธฐ๊บผ์ด ์์ฉํ๋ค. (API ๊ฐ์๋ฅผ ์ฐธ๊ณ ํ๋ค.) | ์ด๋ฏธ ์ ์๋ REST API์ ํธํ๋๋๋ก ํน์ REST ๊ฒฝ๋ก๊ฐ ์์ด์ผ ํ๋ค. |
์์ฒด ๋ฆฌ์์ค๋ ์์ฐ์ค๋ฝ๊ฒ ํด๋ฌ์คํฐ ๋๋ ํด๋ฌ์คํฐ์ ๋ค์์คํ์ด์ค๋ก ๋ฒ์๊ฐ ์ง์ ๋๋ค. | ํด๋ฌ์คํฐ ๋๋ ๋ค์์คํ์ด์ค ๋ฒ์์ ๋ฆฌ์์ค๋ ์ ํฉํ์ง ์๋ค. ํน์ ๋ฆฌ์์ค ๊ฒฝ๋ก๋ฅผ ์ ์ดํด์ผ ํ๋ค. |
์ฟ ๋ฒ๋คํฐ์ค API ์ง์ ๊ธฐ๋ฅ์ ์ฌ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. | ์ด๋ฌํ ๊ธฐ๋ฅ์ด ํ์ํ์ง ์๋ค. |
์ ์ธ์ API
์ ์ธ์ API์์๋ ๋ค์์ ํน์ฑ์ด ์๋ค.
- API๋ ์๋์ ์ผ๋ก ์ ์ ์์ ์๋์ ์ผ๋ก ์์ ์ค๋ธ์ ํธ(๋ฆฌ์์ค)๋ก ๊ตฌ์ฑ๋๋ค.
- ์ค๋ธ์ ํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์ธํ๋ผ์ ๊ตฌ์ฑ์ ์ ์ํ๋ค.
- ์ค๋ธ์ ํธ๋ ๋น๊ต์ ๋๋ฌผ๊ฒ ์ ๋ฐ์ดํธ ๋๋ค.
- ์ฌ๋์ด ์ข ์ข ์ค๋ธ์ ํธ๋ฅผ ์ฝ๊ณ ์ธ ํ์๊ฐ ์๋ค.
- ์ค๋ธ์ ํธ์ ์ฃผ์ ์์ ์ CRUD-y(์์ฑ, ์ฝ๊ธฐ, ์ ๋ฐ์ดํธ ๋ฐ ์ญ์ )์ด๋ค.
- ์ค๋ธ์ ํธ ๊ฐ ํธ๋์ญ์ ์ ํ์ํ์ง ์๋ค. API๋ ์ ํํ(exact) ์ํ๊ฐ ์๋๋ผ ์๋ํ ์ํ๋ฅผ ๋ํ๋ธ๋ค.
๋ช ๋ นํ API๋ ์ ์ธ์ ์ด์ง ์๋ค. ์์ ์ API๊ฐ ์ ์ธ์ ์ด์ง ์์ ์ ์๋ค๋ ์งํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ํด๋ผ์ด์ธํธ๋ "์ด ์์ ์ ์ํํ๋ค"๋ผ๊ณ ๋งํ๊ณ ์๋ฃ๋๋ฉด ๋๊ธฐ(synchronous) ์๋ต์ ๋ฐ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ "์ด ์์ ์ ์ํํ๋ค"๋ผ๊ณ ๋งํ ๋ค์ ์์ ID๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๊ณ ๋ณ๋์ ์คํผ๋ ์ด์ (operation) ์ค๋ธ์ ํธ๋ฅผ ํ์ธํ์ฌ ์์ฒญ์ ์๋ฃ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค.
- RPC(์๊ฒฉ ํ๋ก์์ ํธ์ถ)์ ๋ํด ์๊ธฐํ๋ค.
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ ์ฅํ๋ค. ์: > ์ค๋ธ์ ํธ๋ณ ๋ช kB ๋๋ > 1000๊ฐ์ ์ค๋ธ์ ํธ.
- ๋์ ๋์ญํญ ์ ๊ทผ(์ด๋น 10๊ฐ์ ์ง์์ ์ธ ์์ฒญ)์ด ํ์ํ๋ค.
- ์ต์ข ์ฌ์ฉ์ ๋ฐ์ดํฐ(์: ์ด๋ฏธ์ง, PII ๋ฑ) ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฒ๋ฆฌํ ๊ธฐํ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
- ์ค๋ธ์ ํธ์ ๋ํ ์์ฐ์ค๋ฌ์ด ์กฐ์์ CRUD-y๊ฐ ์๋๋ค.
- API๋ ์ค๋ธ์ ํธ๋ก ์ฝ๊ฒ ๋ชจ๋ธ๋ง๋์ง ์๋๋ค.
- ์์ ID ๋๋ ์์ ์ค๋ธ์ ํธ๋ก ๋ณด๋ฅ ์ค์ธ ์์ ์ ๋ํ๋ด๋๋ก ์ ํํ๋ค.
์ปจํผ๊ทธ๋งต์ ์ฌ์ฉํด์ผ ํ๋, ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋?
๋ค์ ์ค ํ๋์ ํด๋นํ๋ฉด ์ปจํผ๊ทธ๋งต์ ์ฌ์ฉํ์.
mysql.cnf
๋๋pom.xml
๊ณผ ๊ฐ์ด ์ ๋ฌธ์ํ๋ ๊ธฐ์กด ๊ตฌ์ฑ ํ์ผ ํ์์ด ์๋ค.- ์ ์ฒด ๊ตฌ์ฑ ํ์ผ์ ์ปจํผ๊ทธ๋งต์ ํ๋์ ํค์ ๋ฃ๊ณ ์ถ๋ค.
- ๊ตฌ์ฑ ํ์ผ์ ์ฃผ์ ์ฉ๋๋ ํด๋ฌ์คํฐ์ ํ๋์์ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ด ํ์ผ์ ์ฌ์ฉํ์ฌ ์์ฒด ๊ตฌ์ฑํ๋ ๊ฒ์ด๋ค.
- ํ์ผ ์ฌ์ฉ์๋ ์ฟ ๋ฒ๋คํฐ์ค API๊ฐ ์๋ ํ๋์ ํ๊ฒฝ ๋ณ์ ๋๋ ํ๋์ ํ์ผ์ ํตํด ์ฌ์ฉํ๋ ๊ฒ์ ์ ํธํ๋ค.
- ํ์ผ์ด ์ ๋ฐ์ดํธ๋ ๋ ๋ํ๋ก์ด๋จผํธ ๋ฑ์ ํตํด ๋กค๋ง ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ ค๊ณ ํ๋ค.
์ฐธ๊ณ :
๋ฏผ๊ฐํ ๋ฐ์ดํฐ์๋ ์ํฌ๋ฆฟ์ ์ฌ์ฉํ์. ์ด๋ ์ปจํผ๊ทธ๋งต๊ณผ ๋น์ทํ์ง๋ง ๋ ์์ ํ๋ค.๋ค์ ์ค ๋๋ถ๋ถ์ด ์ ์ฉ๋๋ ๊ฒฝ์ฐ ์ปค์คํ ๋ฆฌ์์ค(CRD ๋๋ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API(aggregated API))๋ฅผ ์ฌ์ฉํ์.
- ์ฟ ๋ฒ๋คํฐ์ค ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ณ ์ ๋ฐ์ดํธํ๋ ค๊ณ ํ๋ค.
kubectl
์ ์ต์์ ์ง์์ ์ํ๋ค. ์:kubectl get my-object object-name
.- ์ ์ค๋ธ์ ํธ์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ํ ๋ค์ ๋ค๋ฅธ ์ค๋ธ์ ํธ๋ฅผ CRUDํ๊ฑฐ๋ ๊ทธ ๋ฐ๋๋ก ํ๋ ์๋ก์ด ์๋ํ๋ฅผ ๊ตฌ์ถํ๋ ค๊ณ ํ๋ค.
- ์ค๋ธ์ ํธ์ ์ ๋ฐ์ดํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋ํ๋ฅผ ์์ฑํ๋ ค๊ณ ํ๋ค.
.spec
,.status
๋ฐ.metadata
์ ๊ฐ์ ์ฟ ๋ฒ๋คํฐ์ค API ๊ท์น์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค.- ์ ์ด๋ ๋ฆฌ์์ค์ ์ฝ๋ ์ ๋๋ ๋ค๋ฅธ ๋ฆฌ์์ค์ ์์ฝ์ ๋ํ ์ค๋ธ์ ํธ๊ฐ ๋๊ธฐ๋ฅผ ์ํ๋ค.
์ปค์คํ ๋ฆฌ์์ค ์ถ๊ฐ
์ฟ ๋ฒ๋คํฐ์ค๋ ํด๋ฌ์คํฐ์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
- CRD๋ ๊ฐ๋จํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์์ด ๋ง๋ค ์ ์๋ค.
- API ์ ๊ทธ๋ฆฌ๊ฒ์ด์ ์๋ ํ๋ก๊ทธ๋๋ฐ์ด ํ์ํ์ง๋ง, ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ๋ฒ ๋ฐ API ๋ฒ์ ๊ฐ ๋ณํ๊ณผ ๊ฐ์ API ๋์์ ๋ณด๋ค ๊ฐ๋ ฅํ๊ฒ ์ ์ดํ ์ ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ๋ค์ํ ์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ์ด ๋ ๊ฐ์ง ์ต์ ์ ์ ๊ณตํ๋ฏ๋ก ์ฌ์ฉ์ ์ฉ์ด์ฑ์ด๋ ์ ์ฐ์ฑ์ด ์ ํ๋์ง ์๋๋ค.
์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API๋ ๊ธฐ๋ณธ API ์๋ฒ ๋ค์ ์๋ ํ์ API ์๋ฒ์ด๋ฉฐ ํ๋ก์ ์ญํ ์ ํ๋ค. ์ด ๋ฐฐ์น๋ฅผ API ์ ๊ทธ๋ฆฌ๊ฒ์ด์ (AA)์ด๋ผ๊ณ ํ๋ค. ์ฌ์ฉ์์๊ฒ๋ ์ฟ ๋ฒ๋คํฐ์ค API๊ฐ ํ์ฅ๋ ๊ฒ์ผ๋ก ๋ํ๋๋ค.
CRD๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ API ์๋ฒ๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ๋ ์๋ก์ด ํ์ ์ ๋ฆฌ์์ค๋ฅผ ์์ฑํ ์ ์๋ค. CRD๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด API ์ ๊ทธ๋ฆฌ๊ฒ์ด์ ์ ์ดํดํ ํ์๋ ์๋ค.
์ค์น ๋ฐฉ๋ฒ์ ๊ด๊ณ์์ด ์ ๋ฆฌ์์ค๋ ์ปค์คํ ๋ฆฌ์์ค๋ผ๊ณ ํ๋ฉฐ ๋นํธ์ธ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค(ํ๋ ๋ฑ)์ ๊ตฌ๋ณ๋๋ค.
์ฐธ๊ณ :
์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ , ์ต์ข ์ฌ์ฉ์, ๋ฐ์ดํฐ ๋ชจ๋ํฐ๋ง์ ์ํ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉํ๋ ๊ฒ์ ํผํด์ผ ํ๋ค. ์ฟ ๋ฒ๋คํฐ์ค API์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ํคํ ์ฒ ๊ตฌ์กฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฒฐํฉ๋๊ฐ ๋๋ฌด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ํคํ ์ฒ์ ์ผ๋ก ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ค์ ์ปดํฌ๋ํธ ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ๊ฒ์ ์ ํธํ๋ค. ์ํฌ๋ก๋ ์ค ์ผ๋ถ๊ฐ ์ฃผ๊ธฐ์ ์ธ ์์ ์ ์ํด ๋ณด์กฐ ์๋น์ค๋ฅผ ํ์๋ก ํ๋ค๋ฉด, ํด๋น ๋ณด์กฐ ์๋น์ค๋ฅผ ๋ณ๋์ ์ปดํฌ๋ํธ๋ก ์คํํ๊ฑฐ๋ ์ธ๋ถ ์๋น์ค๋ก ์ฌ์ฉํ์. ์ด๋ฅผ ํตํด ํด๋น ์ํฌ๋ก๋๋ ์ผ๋ฐ์ ์ธ ์์ ์ ์ํด ์ฟ ๋ฒ๋คํฐ์ค API์ ์์กดํ์ง ์๊ฒ ๋๋ค.
์ปค์คํ ๋ฆฌ์์ค๋ฐํผ๋์
์ปค์คํ ๋ฆฌ์์ค๋ฐํผ๋์ API ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ ์ํ ์ ์๋ค. CRD ์ค๋ธ์ ํธ๋ฅผ ์ ์ํ๋ฉด ์ง์ ํ ์ด๋ฆ๊ณผ ์คํค๋ง๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ปค์คํ ๋ฆฌ์์ค๊ฐ ๋ง๋ค์ด์ง๋ค. ์ฟ ๋ฒ๋คํฐ์ค API๋ ์ปค์คํ ๋ฆฌ์์ค์ ์คํ ๋ฆฌ์ง๋ฅผ ์ ๊ณตํ๊ณ ์ฒ๋ฆฌํ๋ค. CRD ์ค๋ธ์ ํธ์ ์ด๋ฆ์ ์ ํจํ DNS ์๋ธ๋๋ฉ์ธ ์ด๋ฆ์ด์ด์ผ ํ๋ค.
๋ฐ๋ผ์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์์ ์ API ์๋ฒ๋ฅผ ์์ฑํ ์ ์์ง๋ง ๊ตฌํ์ ์ผ๋ฐ์ ์ธ ํน์ฑ์ผ๋ก ์ธํด API ์๋ฒ ์ ๊ทธ๋ฆฌ๊ฒ์ด์ ๋ณด๋ค ์ ์ฐ์ฑ์ด ๋จ์ด์ง๋ค.
์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ๋ฑ๋กํ๊ณ ์ ๋ฆฌ์์ค ํ์ ์ ์ธ์คํด์ค์ ๋ํด ์์ ํ๊ณ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ ๋ ์ปค์คํ ์ปจํธ๋กค๋ฌ ์์ ๋ฅผ ์ฐธ๊ณ ํ๋ค.
API ์๋ฒ ์ ๊ทธ๋ฆฌ๊ฒ์ด์
์ผ๋ฐ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค API์ ๊ฐ ๋ฆฌ์์ค์๋ REST ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ค๋ธ์ ํธ์ ํผ์์คํดํธ ์คํ ๋ฆฌ์ง๋ฅผ ๊ด๋ฆฌํ๋ ์ฝ๋๊ฐ ํ์ํ๋ค. ์ฃผ์ ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ๋ ํ๋ ๋ฐ ์๋น์ค ์ ๊ฐ์ ๋นํธ์ธ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์ผ๋ฐ์ ์ผ๋ก CRD๋ฅผ ํตํด ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
์ ๊ทธ๋ฆฌ๊ฒ์ด์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒด API ์๋ฒ๋ฅผ ์์ฑํ๊ณ ๋ฐฐํฌํ์ฌ ์ปค์คํ ๋ฆฌ์์ค์ ๋ํ ํน์ํ ๊ตฌํ์ ์ ๊ณตํ ์ ์๋ค. ์ฃผ(main) API ์๋ฒ๋ ์ฌ์ฉ์์ ์ปค์คํ ๋ฆฌ์์ค์ ๋ํ ์์ฒญ์ ์ฌ์ฉ์์ ์์ฒด API ์๋ฒ์ ์์ํ์ฌ ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ ๋ฐฉ๋ฒ ์ ํ
CRD๋ ์ฌ์ฉํ๊ธฐ๊ฐ ๋ ์ฝ๋ค. ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API๊ฐ ๋ ์ ์ฐํ๋ค. ์์ ์ ์๊ตฌ์ ๊ฐ์ฅ ์ ๋ง๋ ๋ฐฉ๋ฒ์ ์ ํํ์.
์ผ๋ฐ์ ์ผ๋ก CRD๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ ํฉํ๋ค.
- ํ๋๊ฐ ๋ช ๊ฐ ๋์ง ์๋๋ค
- ํ์ฌ ๋ด์์ ๋๋ ์๊ท๋ชจ ์คํ์์ค ํ๋ก์ ํธ์ ์ผ๋ถ์ธ(์์ฉ ์ ํ์ด ์๋) ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
์ฌ์ฉ ํธ์์ฑ ๋น๊ต
CRD๋ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API๋ณด๋ค ์์ฑํ๊ธฐ๊ฐ ์ฝ๋ค.
CRD | ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API |
---|---|
ํ๋ก๊ทธ๋๋ฐ์ด ํ์ํ์ง ์๋ค. ์ฌ์ฉ์๋ CRD ์ปจํธ๋กค๋ฌ์ ๋ํ ๋ชจ๋ ์ธ์ด๋ฅผ ์ ํํ ์ ์๋ค. | ํ๋ก๊ทธ๋๋ฐํ๊ณ ๋ฐ์ด๋๋ฆฌ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํด์ผ ํ๋ค. |
์คํํ ์ถ๊ฐ ์๋น์ค๊ฐ ์๋ค. CR์ API ์๋ฒ์์ ์ฒ๋ฆฌํ๋ค. | ์ถ๊ฐ ์๋น์ค๋ฅผ ์์ฑํ๋ฉด ์คํจํ ์ ์๋ค. |
CRD๊ฐ ์์ฑ๋ ํ์๋ ์ง์์ ์ธ ์ง์์ด ์๋ค. ๋ชจ๋ ๋ฒ๊ทธ ํฝ์ค๋ ์ผ๋ฐ์ ์ธ ์ฟ ๋ฒ๋คํฐ์ค ๋ง์คํฐ ์ ๊ทธ๋ ์ด๋์ ์ผ๋ถ๋ก ์ ํ๋๋ค. | ์ ์คํธ๋ฆผ์์ ๋ฒ๊ทธ ํฝ์ค๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ํํ๊ณ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API ์๋ฒ๋ฅผ ๋ค์ ๋น๋ํ๊ณ ์ ๋ฐ์ดํธํด์ผ ํ ์ ์๋ค. |
์ฌ๋ฌ ๋ฒ์ ์ API๋ฅผ ์ฒ๋ฆฌํ ํ์๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด, ์ด ๋ฆฌ์์ค์ ๋ํ ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ดํ ๋ API์ ๋๊ธฐํํ์ฌ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค. | ์ธํฐ๋ท์ ๊ณต์ ํ ์ต์คํ ์ ์ ๊ฐ๋ฐํ ๋์ ๊ฐ์ด ์ฌ๋ฌ ๋ฒ์ ์ API๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ค. |
๊ณ ๊ธ ๊ธฐ๋ฅ ๋ฐ ์ ์ฐ์ฑ
์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API๋ ๋ณด๋ค ๊ณ ๊ธ API ๊ธฐ๋ฅ๊ณผ ์คํ ๋ฆฌ์ง ๋ ์ด์ด์ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ ์๋ฅผ ์ ๊ณตํ๋ค.
๊ธฐ๋ฅ | ์ค๋ช | CRD | ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API |
---|---|---|---|
์ ํจ์ฑ ๊ฒ์ฌ | ์ฌ์ฉ์๊ฐ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ณ ํด๋ผ์ด์ธํธ์ ๋ ๋ฆฝ์ ์ผ๋ก API๋ฅผ ๋ฐ์ ์ํฌ ์ ์๋๋ก ๋์์ค๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋์์ ๋ง์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ชจ๋ ์ ๋ฐ์ดํธํ ์ ์๋ ๊ฒฝ์ฐ์ ์์ฃผ ์ ์ฉํ๋ค. | ์. OpenAPI v3.0 ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ์ฌ CRD์์ ๋๋ถ๋ถ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ง์ ํ ์ ์๋ค. ์นํ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํด์ ๋ค๋ฅธ ๋ชจ๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ง์ํ๋ค. | ์, ์์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ง์ํ๋ค. |
๊ธฐ๋ณธ ์ค์ | ์๋ฅผ ์ฐธ๊ณ ํ์. | ์, OpenAPI v3.0 ์ ํจ์ฑ ๊ฒ์ฌ์ default ํค์๋(1.17์์ GA) ๋๋ ์นํ
๋ณํ(mutating)(์ด์ ์ค๋ธ์ ํธ์ etcd์์ ์ฝ์ ๋๋ ์คํ๋์ง ์์)์ ํตํด ์ง์ํ๋ค. | ์ |
๋ค์ค ๋ฒ์ ๊ด๋ฆฌ | ๋ ๊ฐ์ง API ๋ฒ์ ์ ํตํด ๋์ผํ ์ค๋ธ์ ํธ๋ฅผ ์ ๊ณตํ ์ ์๋ค. ํ๋ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ์ ๊ฐ์ API ๋ณ๊ฒฝ์ ์ฝ๊ฒ ํ ์ ์๋ค. ํด๋ผ์ด์ธํธ ๋ฒ์ ์ ์ ์ดํ๋ ๊ฒฝ์ฐ๋ ๋ ์ค์ํ๋ค. | ์ | ์ |
์ฌ์ฉ์ ์ ์ ์คํ ๋ฆฌ์ง | ๋ค๋ฅธ ์ฑ๋ฅ ๋ชจ๋(์๋ฅผ ๋ค์ด, ํค-๊ฐ ์ ์ฅ์ ๋์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ ๋ณด์์ ๋ํ ๊ฒฉ๋ฆฌ(์๋ฅผ ๋ค์ด, ์ํธํ๋ ์ํฌ๋ฆฟ์ด๋ ๋ค๋ฅธ ์ํธํ) ๊ธฐ๋ฅ์ ๊ฐ์ง ์คํ ๋ฆฌ์ง๊ฐ ํ์ํ ๊ฒฝ์ฐ | ์๋์ค | ์ |
์ฌ์ฉ์ ์ ์ ๋น์ฆ๋์ค ๋ก์ง | ์ค๋ธ์ ํธ๋ฅผ ์์ฑ, ์ฝ๊ธฐ, ์ ๋ฐ์ดํธ ๋๋ ์ญ์ ๋ฅผ ํ ๋ ์์์ ์ ๊ฒ ๋๋ ์กฐ์น๋ฅผ ์ํํ๋ค. | ์, ์นํ ์ ์ฌ์ฉํ๋ค. | ์ |
์๋ธ๋ฆฌ์์ค ํฌ๊ธฐ ์กฐ์ | HorizontalPodAutoscaler ๋ฐ PodDisruptionBudget๊ณผ ๊ฐ์ ์์คํ ์ด ์๋ก์ด ๋ฆฌ์์ค์ ์ํธ ์์ฉํ ์ ์๋ค. | ์ | ์ |
์๋ธ๋ฆฌ์์ค ์ํ | ์ฌ์ฉ์๊ฐ ์คํ ์น์ ์ ์์ฑํ๊ณ ์ปจํธ๋กค๋ฌ๊ฐ ์ํ ์น์ ์ ์์ฑํ๋ ์ธ๋ถํ๋ ์ ๊ทผ ์ ์ด๋ฅผ ํ์ฉํ๋ค. ์ปค์คํ ๋ฆฌ์์ค ๋ฐ์ดํฐ ๋ณํ ์ ์ค๋ธ์ ํธ ์์ฑ์ ์ฆ๊ฐ์ํจ๋ค(๋ฆฌ์์ค์์ ๋ณ๋์ ์คํ๊ณผ ์ํ ์น์ ํ์). | ์ | ์ |
๊ธฐํ ์๋ธ๋ฆฌ์์ค | "logs" ๋๋ "exec"๊ณผ ๊ฐ์ CRUD ์ด์ธ์ ์์ ์ ์ถ๊ฐํ๋ค. | ์๋์ค | ์ |
strategic-merge-patch | ์๋ก์ด ์๋ํฌ์ธํธ๋ Content-Type: application/strategic-merge-patch+json ํ์์ PATCH๋ฅผ ์ง์ํ๋ค. ๋ก์ปฌ ๋ฐ ์๋ฒ ์์ชฝ์์ ์์ ํ ์๋ ์๋ ์ค๋ธ์ ํธ๋ฅผ ์
๋ฐ์ดํธํ๋ ๋ฐ ์ ์ฉํ๋ค. ์์ธํ ๋ด์ฉ์ "kubectl ํจ์น๋ฅผ ์ฌ์ฉํ API ์ค๋ธ์ ํธ ์
๋ฐ์ดํธ"๋ฅผ ์ฐธ๊ณ ํ๋ค. | ์๋์ค | ์ |
ํ๋กํ ์ฝ ๋ฒํผ | ์๋ก์ด ๋ฆฌ์์ค๋ ํ๋กํ ์ฝ ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ ค๋ ํด๋ผ์ด์ธํธ๋ฅผ ์ง์ํ๋ค. | ์๋์ค | ์ |
OpenAPI ์คํค๋ง | ์๋ฒ์์ ๋์ ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ ํ์
์ ๋ํ OpenAPI(์ค์จ๊ฑฐ(swagger)) ์คํค๋ง๊ฐ ์๋๊ฐ? ํ์ฉ๋ ํ๋๋ง ์ค์ ํ์ฌ ๋ง์ถค๋ฒ์ด ํ๋ฆฐ ํ๋ ์ด๋ฆ์ผ๋ก๋ถํฐ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๋๊ฐ? ํ์
์ด ์ ์ฉ๋๋๊ฐ(์ฆ, string ํ๋์ int ๋ฅผ ๋ฃ์ง ์๋๊ฐ?) | ์, OpenAPI v3.0 ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์คํค๋ง(1.16์์ GA) | ์ |
์ผ๋ฐ์ ์ธ ๊ธฐ๋ฅ
CRD ๋๋ AA๋ฅผ ํตํด ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ํ๋ซํผ ์ธ๋ถ์์ ๊ตฌํํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ API์ ๋ํ ๋ง์ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ค.
๊ธฐ๋ฅ | ์ค๋ช |
---|---|
CRUD | ์๋ก์ด ์๋ํฌ์ธํธ๋ HTTP ๋ฐ kubectl ์ ํตํด CRUD ๊ธฐ๋ณธ ์์
์ ์ง์ํ๋ค. |
๊ฐ์ | ์๋ก์ด ์๋ํฌ์ธํธ๋ HTTP๋ฅผ ํตํด ์ฟ ๋ฒ๋คํฐ์ค ๊ฐ์ ์์ ์ ์ง์ํ๋ค. |
๋์ค์ปค๋ฒ๋ฆฌ | kubectl ๋ฐ ๋์๋ณด๋์ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ ๋ฆฌ์์ค์ ๋ํด ๋ชฉ๋ก, ํ์ ๋ฐ ํ๋ ์์ ์์ ์ ์๋์ผ๋ก ์ ๊ณตํ๋ค. |
json-patch | ์๋ก์ด ์๋ํฌ์ธํธ๋ Content-Type: application/json-patch+json ํ์์ PATCH๋ฅผ ์ง์ํ๋ค. |
merge-patch | ์๋ก์ด ์๋ํฌ์ธํธ๋ Content-Type: application/merge-patch+json ํ์์ PATCH๋ฅผ ์ง์ํ๋ค. |
HTTPS | ์๋ก์ด ์๋ํฌ์ธํธ๋ HTTPS๋ฅผ ์ฌ์ฉํ๋ค. |
๋นํธ์ธ ์ธ์ฆ | ์ต์คํ ์ ์ ๋ํ ์ ๊ทผ์ ์ธ์ฆ์ ์ํด ๊ธฐ๋ณธ API ์๋ฒ(์ ๊ทธ๋ฆฌ๊ฒ์ด์ ๋ ์ด์ด)๋ฅผ ์ฌ์ฉํ๋ค. |
๋นํธ์ธ ๊ถํ ๋ถ์ฌ | ์ต์คํ ์ ์ ์ ๊ทผํ๋ฉด ๊ธฐ๋ณธ API ์๋ฒ(์: RBAC)์์ ์ฌ์ฉํ๋ ๊ถํ์ ์ฌ์ฌ์ฉํ ์ ์๋ค. |
Finalizer | ์ธ๋ถ ์ ๋ฆฌ๊ฐ ๋ฐ์ํ ๋๊น์ง ์ต์คํ ์ ๋ฆฌ์์ค์ ์ญ์ ๋ฅผ ์ฐจ๋จํ๋ค. |
์ด๋๋ฏธ์ ์นํ | ์์ฑ/์ ๋ฐ์ดํธ/์ญ์ ์์ ์ค์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๊ณ ์ต์คํ ์ ๋ฆฌ์์ค์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ๋ค. |
UI/CLI ๋์คํ๋ ์ด | Kubectl, ๋์๋ณด๋๋ ์ต์คํ ์ ๋ฆฌ์์ค๋ฅผ ํ์ํ ์ ์๋ค. |
์ค์ ํ์ง ์์(unset)๊ณผ ๋น์ด์์(empty) | ํด๋ผ์ด์ธํธ๋ ๊ฐ์ด ์๋ ํ๋ ์ค์์ ์ค์ ๋์ง ์์ ํ๋๋ฅผ ๊ตฌ๋ณํ ์ ์๋ค. |
ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ | ์ฟ ๋ฒ๋คํฐ์ค๋ ์ผ๋ฐ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ ๋ณ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค. |
๋ ์ด๋ธ ๋ฐ ์ด๋ ธํ ์ด์ | ๊ณตํต ๋ฉํ๋ฐ์ดํฐ๋ ํต์ฌ ๋ฐ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ ๋๊ตฌ์ด๋ค. |
์ปค์คํ ๋ฆฌ์์ค ์ค์น ์ค๋น
ํด๋ฌ์คํฐ์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ ์์์ผ ํ ๋ช ๊ฐ์ง ์ฌํญ์ด ์๋ค.
์จ๋ํํฐ ์ฝ๋ ๋ฐ ์๋ก์ด ์ฅ์ ํฌ์ธํธ
CRD๋ฅผ ์์ฑํด๋ ์๋ก์ด ์ฅ์ ํฌ์ธํธ(์๋ฅผ ๋ค์ด, API ์๋ฒ์์ ์ฅ์ ๋ฅผ ์ ๋ฐํ๋ ์จ๋ํํฐ ์ฝ๋๊ฐ ์คํ๋จ)๊ฐ ์๋์ผ๋ก ์ถ๊ฐ๋์ง๋ ์์ง๋ง, ํจํค์ง(์: ์ฐจํธ(Charts)) ๋๋ ๊ธฐํ ์ค์น ๋ฒ๋ค์๋ CRD ๋ฐ ์๋ก์ด ์ปค์คํ ๋ฆฌ์์ค์ ๋ํ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ ์จ๋ํํฐ ์ฝ๋์ ๋ํ๋ก์ด๋จผํธ๊ฐ ํฌํจ๋๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค.
์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API ์๋ฒ๋ฅผ ์ค์นํ๋ ค๋ฉด ํญ์ ์ ๋ํ๋ก์ด๋จผํธ๋ฅผ ์คํํด์ผ ํ๋ค.
์คํ ๋ฆฌ์ง
์ปค์คํ ๋ฆฌ์์ค๋ ์ปจํผ๊ทธ๋งต๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ ์ฌ์ฉํ๋ค. ๋๋ฌด ๋ง์ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ฉด API ์๋ฒ์ ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ด ๊ณผ๋ถํ๋ ์ ์๋ค.
์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API ์๋ฒ๋ ๊ธฐ๋ณธ API ์๋ฒ์ ๋์ผํ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ ๋์ผํ ๊ฒฝ๊ณ ๊ฐ ์ ์ฉ๋๋ค.
์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ๊ฐ์ฌ
CRD๋ ํญ์ API ์๋ฒ์ ๋นํธ์ธ ๋ฆฌ์์ค์ ๋์ผํ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ๊ฐ์ฌ ๋ก๊น ์ ์ฌ์ฉํ๋ค.
๊ถํ ๋ถ์ฌ์ RBAC๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ RBAC ์ญํ ์ ์๋ก์ด ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ์ง ์๋๋ค(ํด๋ฌ์คํฐ ๊ด๋ฆฌ์ ์ญํ ๋๋ ์์ผ๋ ์นด๋ ๊ท์น์ผ๋ก ์์ฑ๋ ์ญํ ์ ์ธ). ์๋ก์ด ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ช ์์ ์ผ๋ก ๋ถ์ฌํด์ผ ํ๋ค. CRD ๋ฐ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API๋ ์ข ์ข ์ถ๊ฐํ๋ ํ์ ์ ๋ํ ์๋ก์ด ์ญํ ์ ์์ ํจ๊ป ์ ๊ณต๋๋ค.
์ ๊ทธ๋ฆฌ๊ฒ์ดํธ API ์๋ฒ๋ ๊ธฐ๋ณธ API ์๋ฒ์ ๋์ผํ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ๊ฐ์ฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์์ ์ ์๋ค.
์ปค์คํ ๋ฆฌ์์ค์ ์ ๊ทผ
์ฟ ๋ฒ๋คํฐ์ค ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ปค์คํ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ค. ๋ชจ๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ง์ํ๋ ๊ฒ์ ์๋๋ค. Go ์ python ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ง์ํ๋ค.
์ปค์คํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๋ฉด ๋ค์์ ์ฌ์ฉํ์ฌ ์ ๊ทผํ ์ ์๋ค.
kubectl
- ์ฟ ๋ฒ๋คํฐ์ค ๋์ ํด๋ผ์ด์ธํธ
- ์์ฑํ REST ํด๋ผ์ด์ธํธ
- ์ฟ ๋ฒ๋คํฐ์ค ํด๋ผ์ด์ธํธ ์์ฑ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ํด๋ผ์ด์ธํธ(ํ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ด์ง๋ง, ์ผ๋ถ ํ๋ก์ ํธ๋ CRD ๋๋ AA์ ํจ๊ป ํด๋ผ์ด์ธํธ๋ฅผ ์ ๊ณตํ ์ ์๋ค).
๋ค์ ๋ด์ฉ
- ์ ๊ทธ๋ฆฌ๊ฒ์ด์ ๋ ์ด์ด(aggregation layer)๋ก ์ฟ ๋ฒ๋คํฐ์ค API ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ฐ๊ธฐ.
- ์ปค์คํ ๋ฆฌ์์ค๋ฐํผ๋์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค API ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ฐ๊ธฐ.