ํด๋น ๋ฌธ์์ ์ฟ ๋ฒ๋คํฐ์ค ๋ฒ์ : v1.31
Kubernetes v1.31 ๋ฌธ์๋ ๋ ์ด์ ์ ๊ทน์ ์ผ๋ก ๊ด๋ฆฌ๋์ง ์์. ํ์ฌ ๋ณด๊ณ ์๋ ๋ฌธ์๋ ์ ์ ์ค๋ ์ท์. ์ต์ ๋ฌธ์๋ฅผ ์ํด์๋, ๋ค์์ ์ฐธ๊ณ . ์ต์ ๋ฒ์ .
HTTP ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค API์ ์ ๊ทผ
์ด ํ์ด์ง๋ ์ฟ ๋ฒ๋คํฐ์ค API์ ์ ๊ทผํ๊ธฐ ์ํด HTTP ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
์์ํ๊ธฐ ์ ์
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๊ฐ ํ์ํ๊ณ , kubectl ์ปค๋งจ๋-๋ผ์ธ ํด์ด ํด๋ฌ์คํฐ์ ํต์ ํ ์ ์๋๋ก ์ค์ ๋์ด ์์ด์ผ ํ๋ค. ์ด ํํ ๋ฆฌ์ผ์ ์ปจํธ๋กค ํ๋ ์ธ ํธ์คํธ๊ฐ ์๋ ๋ ธ๋๊ฐ ์ ์ด๋ 2๊ฐ ํฌํจ๋ ํด๋ฌ์คํฐ์์ ์คํํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. ๋ง์ฝ, ์์ง ํด๋ฌ์คํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด, minikube๋ฅผ ์ฌ์ฉํด์ ์์ฑํ๊ฑฐ๋ ๋ค์ ์ฟ ๋ฒ๋คํฐ์ค ํ๋ ์ด๊ทธ๋ผ์ด๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ฒ์ ํ์ธ์ ์ํด์, ๋ค์ ์ปค๋งจ๋๋ฅผ ์คํkubectl version
.
ํด๋ฌ์คํฐ์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ค๋ฉด, ์๋ ๋ช ๋ น์ ์ ๋ ฅํ์ฌ Hello world ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ค.
kubectl create deployment node-hello --image=gcr.io/google-samples/node-hello:1.0 --port=8080
kubectl์ ์ฌ์ฉํ์ฌ ํ๋ก์ ์๋ฒ ์์
์๋ ์ปค๋งจ๋๋ ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ์ ํ๋ก์๋ฅผ ์์ํ๋ค.
kubectl proxy --port=8080
Kubernetes API ํ์
ํ๋ก์ ์๋ฒ๊ฐ ์คํ ์ค์ผ ๋ curl
, wget
๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ API๋ฅผ ํ์ํ ์ ์๋ค.
API ๋ฒ์ ๊ฐ์ ธ์ค๊ธฐ.
curl http://localhost:8080/api/
์ถ๋ ฅ์ ๋ค์๊ณผ ์ ์ฌํ๋ค.
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "10.0.2.15:8443"
}
]
}
ํ๋ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ.
curl http://localhost:8080/api/v1/namespaces/default/pods
์ถ๋ ฅ์ ๋ค์๊ณผ ์ ์ฌํ๋ค.
{
"kind": "PodList",
"apiVersion": "v1",
"metadata": {
"resourceVersion": "33074"
},
"items": [
{
"metadata": {
"name": "kubernetes-bootcamp-2321272333-ix8pt",
"generateName": "kubernetes-bootcamp-2321272333-",
"namespace": "default",
"uid": "ba21457c-6b1d-11e6-85f7-1ef9f1dab92b",
"resourceVersion": "33003",
"creationTimestamp": "2016-08-25T23:43:30Z",
"labels": {
"pod-template-hash": "2321272333",
"run": "kubernetes-bootcamp"
},
...
}
๋ค์ ๋ด์ฉ
kubectl ํ๋ก์์ ๋ํด ๋ ๋ฐฐ์ฐ๊ธฐ.