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: API Overview
API ๊ฐ์
์ด ์น์ ์ ์ฟ ๋ฒ๋คํฐ์ค API์ ๋ํ ์ฐธ์กฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
REST API๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ทผ๋ณธ์ ์ธ ๊ตฌ์กฐ์ด๋ค. ๋ชจ๋ ์กฐ์, ์ปดํฌ๋ํธ ๊ฐ์ ํต์ ๊ณผ ์ธ๋ถ ์ฌ์ฉ์์ ๋ช ๋ น์ API ์๋ฒ์์ ์ฒ๋ฆฌํ ์ ์๋ REST API ํธ์ถ์ด๋ค. ๋ฐ๋ผ์, ์ฟ ๋ฒ๋คํฐ์ค ํ๋ซํผ ์์ ๋ชจ๋ ๊ฒ์ API ์ค๋ธ์ ํธ๋ก ์ทจ๊ธ๋๊ณ , API์ ์์ํ๋ ํญ๋ชฉ์ด ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค API ์ฐธ์กฐ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฒ์ v1.34์ ๋ํ API๊ฐ ๋์ด๋์ด ์๋ค.
์ผ๋ฐ์ ์ธ ๋ฐฐ๊ฒฝ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด, ์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ์ฐธ๊ณ ํ๋ค. ์ฟ ๋ฒ๋คํฐ์ค API์ ๋ํ ์ ๊ทผ ์ ์ด๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ์ ์ธ์ฆํ๋ ๋ฐฉ๋ฒ๊ณผ ์์ฒญ์ด ์น์ธ๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
API ๋ฒ์ ๊ท์น
JSON๊ณผ Protobuf ์ง๋ ฌํ ์คํค๋ง ๋ชจ๋ ์คํค๋ง ๋ณ๊ฒฝ์ ๋ํด์ ๋์ผํ ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ฅธ๋ค. ์ดํ ์ค๋ช ์์๋ ์ด ํ์ ๋ชจ๋๋ฅผ ๋ค๋ฃฌ๋ค.
API ๋ฒ์ ๊ท์น๊ณผ ์ํํธ์จ์ด ๋ฒ์ ๊ท์น์ ๊ฐ์ ์ ์ผ๋ก ์ฐ๊ด๋๋ค. API์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋ถ์ฌ์ ๊ดํ ์ ์์๋ API ๋ฒ์ ๊ท์น๊ณผ ์ํํธ์จ์ด ๋ฒ์ ๊ท์น ๊ฐ์ ๊ด๊ณ๊ฐ ๊ธฐ์ ๋์ด ์๋ค.
API ๋ฒ์ ์ ์ฐจ์ด๋ ์์ค์ ์์ ์ฑ๊ณผ ์ง์์ ์ฐจ์ด๋ฅผ ๋ํ๋ธ๋ค. API ๋ณ๊ฒฝ ๋ฌธ์์์ ๊ฐ ์์ค์ ๊ธฐ์ค์ ๋ํ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๋ค.
์๋๋ ๊ฐ ์์ค์ ๊ธฐ์ค์ ๋ํ ์์ฝ์ด๋ค.
์ํ(Alpha):
- ๋ฒ์ ์ด๋ฆ์
alpha
๊ฐ ํฌํจ๋๋ค(์:v1alpha1
). - ๋นํธ์ธ ์ํ API ๋ฒ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ง ์์ผ๋ฉฐ, ํ์ฑํํ๊ธฐ ์ํด์๋
kube-apiserver
์ค์ ์ ๋ฐ๋์ ๋ช ์ํด์ผ ํ๋ค. - ๋ฒ๊ทธ๊ฐ ์์ ์๋ ์๋ค. ์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด ๋ฒ๊ทธ์ ๋ ธ์ถ๋ ์ ์๋ค.
- ์ํ API์ ๋ํ ๊ธฐ์ ์ง์์ด ์ธ์ ๋ ๊ณต์ง ์์ด ์ค๋จ๋ ์ ์๋ค.
- ๋ค์ ์ํํธ์จ์ด๋ฅผ ๋ฆด๋ฆฌ์คํ ๋ ๊ณต์ง ์์ด API์ ํธํ์ฑ์ด ๊นจ์ง๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๋ค.
- ๋ฒ๊ทธ์ ๋ํ ์ํ์ด ๋๊ณ ์ฅ๊ธฐ๊ฐ ์ง์๋์ง ์์ผ๋ฏ๋ก ๋จ๊ธฐ๊ฐ ํ ์คํธ ์ฉ๋์ ํด๋ฌ์คํฐ์์๋ง ์ฌ์ฉํ๊ธฐ๋ฅผ ๊ถ์ฅํ๋ค.
- ๋ฒ์ ์ด๋ฆ์
๋ฒ ํ(Beta):
๋ฒ์ ์ด๋ฆ์
beta
๊ฐ ํฌํจ๋๋ค(์:v2beta3
).๋นํธ์ธ ๋ฒ ํ API ๋ฒ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ง ์์ผ๋ฉฐ, ํ์ฑํํ๊ธฐ ์ํด์๋
kube-apiserver
์ค์ ์ ๋ฐ๋์ ๋ช ์ํด์ผ ํ๋ค. (์์ธ์ฌํญ ์ฟ ๋ฒ๋คํฐ์ค 1.22 ๋ฒ์ ์ด์ ์ ๋ฒ ํ API๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์๋ค.)๋นํธ์ธ ๋ฒ ํ API ๋ฒ์ ์ด ๋ ์ด์ ์ง์๋์ง ์๊ธฐ๊น์ง๋ 9๋ฌ ๋๋ 3๋ฒ์ ๋ง์ด๋ ๋ฆด๋ฆฌ์ค(๋ ์ค ๋ ๊ธด ๊ฒ์ ๊ธฐ์ค์ผ๋ก ํจ)๊ฐ ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์๋์ง ์์ ์์ ์์ ์ ๊ฑฐ๋๊ธฐ๊น์ง๋ ๋ค์ 9๋ฌ ๋๋ 3๋ฒ์ ๋ง์ด๋ ๋ฆด๋ฆฌ์ค(๋ ์ค ๋ ๊ธด ๊ฒ์ ๊ธฐ์ค์ผ๋ก ํจ)๊ฐ ๊ฑธ๋ฆฐ๋ค.
์ฝ๋๊ฐ ์ ํ ์คํธ ๋์๋ค. ์ด ๊ธฐ๋ฅ์ ํ์ฑํํด๋ ์์ ํ๋ค.
๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ๋ฐ๋ ์๋ ์์ง๋ง, ์ ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋ํ ๊ธฐ์ ์ง์์ด ์ค๋จ๋์ง ์๋๋ค.
์ค๋ธ์ ํธ์ ๋ํ ์คํค๋ง๋ ๋ฌธ๋ฒ์ด ๋ค์ ๋ฒ ํ ๋๋ ์์ ํ API ๋ฒ์ ์์ ํธํ๋์ง ์๋ ๋ฐฉ์์ผ๋ก ๋ฐ๋ ์๋ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ, ๋ค์ ๋ฒ์ ์ผ๋ก ์ด๊ดํ ์ ์๋ ๊ฐ์ด๋๊ฐ ์ ๊ณต๋๋ค. ๋ค์ ๋ฒ ํ ๋๋ ์์ ํ API ๋ฒ์ ์ ์ ์ฉํ๋ ๊ฒ์ API ์ค๋ธ์ ํธ์ ํธ์ง ๋๋ ์ฌ์์ฑ์ด ํ์ํ ์๋ ์์ผ๋ฉฐ, ๊ทธ๋ ๊ฒ ์ฌ์ด ์ผ๋ง์ ์๋ ๊ฒ์ด๋ค. ์ด ๊ธฐ๋ฅ์ ์์กดํ๊ณ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ดํ์์ด ํ์ํ ์๋ ์๋ค.
์ด ์ํํธ์จ์ด๋ ํ๋ก๋์ ์ฉ๋๋ก ๊ถ์ฅํ์ง ์๋๋ค. ์ดํ ์ฌ๋ฌ ๋ฒ์ ์์ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋ ์ ์๋ค. ๋ฒ ํ API ๋ฒ์ ์ด ๋ ์ด์ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ, ํ์ ๋ฒ ํ ๋๋ ์์ ํ API ๋ฒ์ ์ผ๋ก ์ ํํ๊ธฐ ์ํด์๋ ๋ฒ ํ API ๋ฒ์ ์ ์ฌ์ฉํด์ผ ํ๋ค.
์ฐธ๊ณ :
๋ฒ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํด๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ์. ๊ธฐ๋ฅ์ด ๋ฒ ํ ์์ค์ ๋ฒ์ด๋ ์ดํ์๋ ์ค์ง์ ์ผ๋ก ๋ ๋ง์ ๋ณ๊ฒฝ์ด ์ด๋ ต๋ค.์์ ํ(Stable):
- ๋ฒ์ ์ด๋ฆ์ด
vX
์ด๊ณX
๋ ์ ์๋ค. - ์์ ํ๋ API ๋ฒ์ ์ ์ดํ์ ๋ชจ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฉ์ด์ ๋ฒ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํ์ฌ๋ก์จ ์ฟ ๋ฒ๋คํฐ์ค ๋ฉ์ด์ ๋ฒ์ ์์ ์์ ํ๋ API๋ฅผ ์ ๊ฑฐํ๋ ค๋ ๊ณํ์ ์๋ค.
- ๋ฒ์ ์ด๋ฆ์ด
API ๊ทธ๋ฃน
API ๊ทธ๋ฃน์
์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ๋ ์ฝ๊ฒ ํ์ฅํ ์ ์๋๋ก ํด ์ค๋ค.
API ๊ทธ๋ฃน์ REST ๊ฒฝ๋ก์ ์ง๋ ฌํ๋ ์ค๋ธ์ ํธ์ apiVersion
ํ๋์
๋ช
์๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค์๋ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ API ๊ทธ๋ฃน์ด ์๋ค.
- ํต์ฌ (๋๋ ๋ ๊ฑฐ์ ๋ผ๊ณ ๋ถ๋ฆฌ๋) ๊ทธ๋ฃน์ REST ๊ฒฝ๋ก
/api/v1
์ ์๋ค. ํต์ฌ ๊ทธ๋ฃน์apiVersion
ํ๋์ ์ผ๋ถ๋ก ๋ช ์๋์ง ์๋๋ค. ์๋ฅผ ๋ค์ด,apiVersion: v1
๊ณผ ๊ฐ๋ค. - ์ด๋ฆ์ด ์๋ ๊ทธ๋ฃน์ REST ๊ฒฝ๋ก
/apis/$GROUP_NAME/$VERSION
์ ์์ผ๋ฉฐapiVersion: $GROUP_NAME/$VERSION
์ ์ฌ์ฉํ๋ค(์๋ฅผ ๋ค์ด,apiVersion: batch/v1
). ์ง์๋๋ API ๊ทธ๋ฃน ์ ์ฒด์ ๋ชฉ๋ก์ ์ฟ ๋ฒ๋คํฐ์ค API ์ฐธ์กฐ ๋ฌธ์์์ ํ์ธํ ์ ์๋ค.
API ๊ทธ๋ฃน ํ์ฑํ ๋๋ ๋นํ์ฑํ
ํน์ ๋ฆฌ์์ค ๋ฐ API ๊ทธ๋ฃน์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋๋ค. API ์๋ฒ์์
--runtime-config
๋ฅผ ์ค์ ํ์ฌ ํ์ฑํ ๋๋ ๋นํ์ฑํํ ์ ์๋ค.
--runtime-config
ํ๋๊ทธ๋ API ์๋ฒ์ ๋ฐํ์ ๊ตฌ์ฑ์ ์ค๋ช
ํ๋
์ผํ๋ก ๊ตฌ๋ถ๋ <key>=<value>
์์ ํ์ฉํ๋ค. ๋ง์ฝ =<value>
๋ถ๋ถ์ ์๋ตํ๋ฉด, =true
๊ฐ ๋ช
์๋ ๊ฒ์ฒ๋ผ ์ทจ๊ธํ๋ค. ์๋ฅผ ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ๋ค.
batch/v1
์ ๋นํ์ฑํํ๋ ค๋ฉด,--runtime-config=batch/v1=false
๋ก ์ค์ batch/v2alpha1
์ ํ์ฑํํ๋ ค๋ฉด,--runtime-config=batch/v2alpha1
์ผ๋ก ์ค์ - ์๋ฅผ ๋ค์ด
storage.k8s.io/v1beta1/csistoragecapacities
์ ๊ฐ์ด ํน์ ๋ฒ์ ์ API๋ฅผ ํ์ฑํํ๋ ค๋ฉด,--runtime-config=storage.k8s.io/v1beta1/csistoragecapacities
์ ๊ฐ์ด ์ค์
์ฐธ๊ณ :
๊ทธ๋ฃน์ด๋ ๋ฆฌ์์ค๋ฅผ ํ์ฑํ ๋๋ ๋นํ์ฑํํ๋ ค๋ฉด, apiserver์ controller-manager๋ฅผ ์ฌ์์ํ์ฌ--runtime-config
๋ณ๊ฒฝ์ ๋ฐ์ํด์ผ ํ๋ค.์ง์์ฑ
์ฟ ๋ฒ๋คํฐ์ค๋ etcd์ ๊ธฐ๋กํ์ฌ API ๋ฆฌ์์ค ์ธก๋ฉด์์ ์ง๋ ฌํ๋ ์ํ๋ฅผ ์ ์ฅํ๋ค.
๋ค์ ๋ด์ฉ
- API ๊ท์น์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
- ์ ๊ทธ๋ฆฌ๊ฒ์ดํฐ(aggregator)์ ๋ํ ๋์์ธ ๋ฌธ์ ์ฝ๊ธฐ