ํด๋น ๋ฌธ์์ ์ฟ ๋ฒ๋คํฐ์ค ๋ฒ์ : v1.31
Kubernetes v1.31 ๋ฌธ์๋ ๋ ์ด์ ์ ๊ทน์ ์ผ๋ก ๊ด๋ฆฌ๋์ง ์์. ํ์ฌ ๋ณด๊ณ ์๋ ๋ฌธ์๋ ์ ์ ์ค๋ ์ท์. ์ต์ ๋ฌธ์๋ฅผ ์ํด์๋, ๋ค์์ ์ฐธ๊ณ . ์ต์ ๋ฒ์ .
๋ค์์คํ์ด์ค
์ฟ ๋ฒ๋คํฐ์ค์์, ๋ค์์คํ์ด์ค ๋ ๋จ์ผ ํด๋ฌ์คํฐ ๋ด์์์ ๋ฆฌ์์ค ๊ทธ๋ฃน ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค. ๋ฆฌ์์ค์ ์ด๋ฆ์ ๋ค์์คํ์ด์ค ๋ด์์ ์ ์ผํด์ผ ํ๋ฉฐ, ๋ค์์คํ์ด์ค ๊ฐ์์ ์ ์ผํ ํ์๋ ์๋ค. ๋ค์์คํ์ด์ค ๊ธฐ๋ฐ ์ค์ฝํ์ ๋ค์์คํ์ด์ค ๊ธฐ๋ฐ ์ค๋ธ์ ํธ (์: ๋ํ๋ก์ด๋จผํธ, ์๋น์ค ๋ฑ) ์๋ง ์ ์ฉ ๊ฐ๋ฅํ๋ฉฐ ํด๋ฌ์คํฐ ๋ฒ์์ ์ค๋ธ์ ํธ (์: ์คํ ๋ฆฌ์งํด๋์ค, ๋ ธ๋, ํผ์์คํดํธ๋ณผ๋ฅจ ๋ฑ) ์๋ ์ ์ฉ ๋ถ๊ฐ๋ฅํ๋ค.
์ฌ๋ฌ ๊ฐ์ ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
๋ค์์คํ์ด์ค๋ ์ฌ๋ฌ ๊ฐ์ ํ์ด๋, ํ๋ก์ ํธ์ ๊ฑธ์ณ์ ๋ง์ ์ฌ์ฉ์๊ฐ ์๋ ํ๊ฒฝ์์ ์ฌ์ฉํ๋๋ก ๋ง๋ค์ด์ก๋ค. ์ฌ์ฉ์๊ฐ ๊ฑฐ์ ์๊ฑฐ๋, ์ ์ญ๋ช ์ ๋๊ฐ ๋๋ ๊ฒฝ์ฐ์๋ ๋ค์์คํ์ด์ค๋ฅผ ์ ํ ๊ณ ๋ คํ ํ์๊ฐ ์๋ค. ๋ค์์คํ์ด์ค๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ํ์ํ ๋ ์ฌ์ฉํ๋๋ก ํ์.
๋ค์์คํ์ด์ค๋ ์ด๋ฆ์ ๋ฒ์๋ฅผ ์ ๊ณตํ๋ค. ๋ฆฌ์์ค์ ์ด๋ฆ์ ๋ค์์คํ์ด์ค ๋ด์์ ์ ์ผํด์ผํ์ง๋ง, ๋ค์์คํ์ด์ค๋ฅผ ํตํ์ด์ ์ ์ผํ ํ์๋ ์๋ค. ๋ค์์คํ์ด์ค๋ ์๋ก ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๊ฐ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ ํ๋์ ๋ค์์คํ์ด์ค์๋ง ์์ ์ ์๋ค.
๋ค์์คํ์ด์ค๋ ํด๋ฌ์คํฐ ์์์ (๋ฆฌ์์ค ์ฟผํฐ๋ฅผ ํตํด) ์ฌ๋ฌ ์ฌ์ฉ์ ์ฌ์ด์์ ๋๋๋ ๋ฐฉ๋ฒ์ด๋ค.
๋์ผํ ์ํํธ์จ์ด์ ๋ค๋ฅธ ๋ฒ์ ๊ณผ ๊ฐ์ด ์ฝ๊ฐ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ ํ์๋ ์๋ค. ๋์ผํ ๋ค์์คํ์ด์ค ๋ด์์ ๋ฆฌ์์ค๋ฅผ ๊ตฌ๋ณํ๊ธฐ ์ํด ๋ ์ด๋ธ์ ์ฌ์ฉํ๋ค.
์ฐธ๊ณ :
ํ๋ก๋์ ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ,default
๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๊ณ ๋ คํ๋ค. ๋์ ์, ๋ค๋ฅธ ๋ค์์คํ์ด์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.์ด๊ธฐ ๋ค์์คํ์ด์ค
์ฟ ๋ฒ๋คํฐ์ค๋ ์ฒ์์ ๋ค ๊ฐ์ ์ด๊ธฐ ๋ค์์คํ์ด์ค๋ฅผ ๊ฐ๋๋ค.
default
- ์ฟ ๋ฒ๋คํฐ์ค์๋ ์ด ๋ค์์คํ์ด์ค๊ฐ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋จผ์ ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
kube-node-lease
- ์ด ๋ค์์คํ์ด์ค๋ ๊ฐ ๋ ธ๋์ ์ฐ๊ด๋ ๋ฆฌ์ค ์ค๋ธ์ ํธ๋ฅผ ๊ฐ๋๋ค. ๋ ธ๋ ๋ฆฌ์ค๋ kubelet์ด ํํธ๋นํธ๋ฅผ ๋ณด๋ด์ ์ปจํธ๋กค ํ๋ ์ธ์ด ๋ ธ๋์ ์ฅ์ ๋ฅผ ํ์งํ ์ ์๊ฒ ํ๋ค.
kube-public
- ์ด ๋ค์์คํ์ด์ค๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ(์ธ์ฆ๋์ง ์์ ํด๋ผ์ด์ธํธ ํฌํจ)๊ฐ ์ฝ๊ธฐ ๊ถํ์ผ๋ก ์ ๊ทผํ ์ ์๋ค. ์ด ๋ค์์คํ์ด์ค๋ ์ฃผ๋ก ์ ์ฒด ํด๋ฌ์คํฐ ์ค์ ๊ณต๊ฐ์ ์ผ๋ก ๋๋ฌ๋์ ์ฝ์ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ํด ์์ฝ๋์ด ์๋ค. ์ด ๋ค์์คํ์ด์ค์ ๊ณต๊ฐ์ ์ธ ์ฑ๊ฒฉ์ ๋จ์ง ๊ด๋ก์ด์ง ์๊ตฌ ์ฌํญ์ ์๋๋ค.
kube-system
- ์ฟ ๋ฒ๋คํฐ์ค ์์คํ ์์ ์์ฑํ ์ค๋ธ์ ํธ๋ฅผ ์ํ ๋ค์์คํ์ด์ค.
๋ค์์คํ์ด์ค ๋ค๋ฃจ๊ธฐ
๋ค์์คํ์ด์ค์ ์์ฑ๊ณผ ์ญ์ ๋ ๋ค์์คํ์ด์ค ๊ด๋ฆฌ์ ๊ฐ์ด๋ ๋ฌธ์์ ๊ธฐ์ ๋์ด ์๋ค.
์ฐธ๊ณ :
`kube-` ์ ๋์ฌ๋ก ์์ํ๋ ๋ค์์คํ์ด์ค๋ ์ฟ ๋ฒ๋คํฐ์ค ์์คํ
์ฉ์ผ๋ก ์์ฝ๋์ด ์์ผ๋ฏ๋ก, ์ฌ์ฉ์๋ ์ด๋ฌํ ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํ์ง ์๋๋ค.
๋ค์์คํ์ด์ค ์กฐํ
์ฌ์ฉ ์ค์ธ ํด๋ฌ์คํฐ์ ํ์ฌ ๋ค์์คํ์ด์ค๋ฅผ ๋์ดํ ์ ์๋ค.
kubectl get namespace
NAME STATUS AGE
default Active 1d
kube-node-lease Active 1d
kube-public Active 1d
kube-system Active 1d
์์ฒญ์ ๋ค์์คํ์ด์ค ์ค์ ํ๊ธฐ
ํ์ฌ ์์ฒญ์ ๋ํ ๋ค์์คํ์ด์ค๋ฅผ ์ค์ ํ๊ธฐ ์ํด์ --namespace
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค๋ฉด,
kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here>
kubectl get pods --namespace=<insert-namespace-name-here>
์ ํธํ๋ ๋ค์์คํ์ด์ค ์ค์ ํ๊ธฐ
์ดํ ๋ชจ๋ kubectl ๋ช ๋ น์์ ์ฌ์ฉํ๋ ๋ค์์คํ์ด์ค๋ฅผ ์ปจํ ์คํธ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ค.
kubectl config set-context --current --namespace=<insert-namespace-name-here>
# ํ์ธํ๊ธฐ
kubectl config view --minify | grep namespace:
๋ค์์คํ์ด์ค์ DNS
์๋น์ค๋ฅผ ์์ฑํ๋ฉด ํด๋น
DNS ์ํธ๋ฆฌ๊ฐ ์์ฑ๋๋ค.
์ด ์ํธ๋ฆฌ๋ <์๋น์ค-์ด๋ฆ>.<๋ค์์คํ์ด์ค-์ด๋ฆ>.svc.cluster.local
์ ํ์์ ๊ฐ๋๋ฐ,
์ด๋ ์ปจํ
์ด๋๊ฐ <์๋น์ค-์ด๋ฆ>
๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ค์์คํ์ด์ค ๋ด์ ๊ตญํ๋ ์๋น์ค๋ก ์ฐ๊ฒฐ๋๋ค.
๊ฐ๋ฐ, ์คํ
์ด์ง, ์ด์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ๋ค์์คํ์ด์ค ๋ด์์ ๋์ผํ ์ค์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
๋ค์์คํ์ด์ค๋ฅผ ๋์ด์ ์ ๊ทผํ๊ธฐ ์ํด์๋,
์ ์ฒด ์ฃผ์ ๋๋ฉ์ธ ์ด๋ฆ(FQDN)์ ์ฌ์ฉํด์ผ ํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ๋ค์์คํ์ด์ค ์ด๋ฆ์ ์ ํจํ RFC 1123 DNS ๋ ์ด๋ธ์ด์ด์ผ ํ๋ค.
๊ฒฝ๊ณ :
๋ค์์คํ์ด์ค์ ์ด๋ฆ์ ๊ณต๊ฐ ์ต์์ ๋๋ฉ์ธ ์ค ํ๋์ ๋์ผํ๊ฒ ๋ง๋ค๋ฉด, ํด๋น ๋ค์์คํ์ด์ค ๋ด์ ์๋น์ค์ ์งง์ DNS ์ด๋ฆ์ด ๊ณต๊ฐ DNS ๋ ์ฝ๋์ ๊ฒน์น ์ ์๋ค. ์ด๋ ํ ๋ค์์คํ์ด์ค ๋ด์ ์ํฌ๋ก๋๊ฐ ์ ๋ฏธ์ (trailing dot) ์์ด DNS ๋ฃฉ์ ์ ์ํํ๋ฉด ๊ณต๊ฐ DNS ๋ ์ฝ๋๋ณด๋ค ์ฐ์ ํ์ฌ ํด๋น ์๋น์ค๋ก ๋ฆฌ๋ค์ด๋ ํธ๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ ๋ขฐํ๋ ์ฌ์ฉ์๋ง ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํ ์ ์๋๋ก ๊ถํ์ ์ ํํ๋ค. ํ์ํ ๊ฒฝ์ฐ, ์ถ๊ฐ์ ์ผ๋ก ์จ๋ํํฐ ๋ณด์ ์ปจํธ๋กค์ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ์๋ฅผ ๋ค์ด ์ด๋๋ฏธ์ ์นํ ์ ์ด์ฉํ์ฌ ๊ณต๊ฐ TLD์ ๋์ผํ ์ด๋ฆ์ ๋ค์์คํ์ด์ค ์์ฑ์ ๊ธ์ง์ํฌ ์ ์๋ค.
๋ชจ๋ ์ค๋ธ์ ํธ๊ฐ ๋ค์์คํ์ด์ค์ ์ํ์ง๋ ์์
๋๋ถ๋ถ์ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค(์๋ฅผ ๋ค์ด, ํ๋, ์๋น์ค, ๋ ํ๋ฆฌ์ผ์ด์ ์ปจํธ๋กค๋ฌ ์ธ)๋ ๋ค์์คํ์ด์ค์ ์ํ๋ค. ํ์ง๋ง ๋ค์์คํ์ด์ค ๋ฆฌ์์ค ์์ฒด๋ ๋ค์์คํ์ด์ค์ ์ํ์ง ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ธ๋๋ ํผ์์คํดํธ ๋ณผ๋ฅจ๊ณผ ๊ฐ์ ์ ์์ค ๋ฆฌ์์ค๋ ์ด๋ ๋ค์์คํ์ด์ค์๋ ์ํ์ง ์๋๋ค.
๋ค์์ ๋ค์์คํ์ด์ค์ ์ํ์ง ์๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ฅผ ์กฐํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
# ๋ค์์คํ์ด์ค์ ์ํ๋ ๋ฆฌ์์ค
kubectl api-resources --namespaced=true
# ๋ค์์คํ์ด์ค์ ์ํ์ง ์๋ ๋ฆฌ์์ค
kubectl api-resources --namespaced=false
์๋ ๋ ์ด๋ธ๋ง
Kubernetes 1.21 [beta]
์ฟ ๋ฒ๋คํฐ์ค ์ปจํธ๋กค ํ๋ ์ธ์ NamespaceDefaultLabelName
๊ธฐ๋ฅ ๊ฒ์ดํธ๊ฐ
ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋ค์์คํ์ด์ค์ ๋ณ๊ฒฝํ ์ ์๋(immutable) ๋ ์ด๋ธ
kubernetes.io / metadata.name
์ ์ค์ ํ๋ค.
๋ ์ด๋ธ ๊ฐ์ ๋ค์์คํ์ด์ค ์ด๋ฆ์ด๋ค.
๋ค์ ๋ด์ฉ
- ์ ๊ท ๋ค์์คํ์ด์ค ์์ฑ์ ๋ํด ๋ ๋ฐฐ์ฐ๊ธฐ.
- ๋ค์์คํ์ด์ค ์ญ์ ์ ๋ํด ๋ ๋ฐฐ์ฐ๊ธฐ.