๋ชฉ์ฐจ
ย Namespaces
โข
๋ค์์คํ์ด์ค๋ฅผ ํตํด ๊ฐ์ ํด๋ฌ์คํฐ ๋ด์์๋ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฆฌํ ์ ์์
โข
๋ค์์คํ์ด์ค๋ง๋ค ๊ณ ์ ํ ์ ์ฑ
๋ชจ์์ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ๋ฆฌ์์ค ํ ๋น๋์ ํ ๋นํ ์ ์์
default
โข
์๋ ์์ฑ๋๋ ๋ค์์คํ์ด์ค๋ก, ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ์ง ์๊ณ ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ๋ฉด default ๋ค์์คํ์ด์ค์ ์์ฑ๋จ
kube-system
โข
์ฟ ๋ฒ๋คํฐ์ค ๋ด๋ถ ๋ชฉ์ ์ผ๋ก ์์ฑ๋๋ Pod์ Service๊ฐ ์์นํ๋ ๋ค์์คํ์ด์ค
โข
Networking Solution์ด๋ DNS ์๋น์ค์ ์๊ตฌ๋๋ ๊ฒ๋ค
kube-public
โข
๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์์ด์ผ ํ ๋ฆฌ์์ค๊ฐ ์์ฑ๋๋ ๋ค์์คํ์ด์ค
ย DNS
โข
๊ฐ์ ๋ค์์คํ์ด์ค ์์ ์์ผ๋ฉด ๋จ์ ํธ์คํธ ์ด๋ฆ์ผ๋ก ์๋น์ค์ ์ ๊ทผ ๊ฐ๋ฅ
mysql.connect("db-service")
โข
๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์๋ ๊ฒฝ์ฐ ๋ค์์คํ์ด์ค๋ฅผ ์๋น์ค๋ช
์ ์ถ๊ฐ
mysql.connect("db-service.dev.svc.cluster.local")
โฆ
DNS entry๊ฐ ์๋์ผ๋ก ํฌ๋งท์ ์ถ๊ฐ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํจ
โฆ
cluter.local - ํด๋ฌ์คํฐ์ ๊ธฐ๋ณธ ๋๋ฉ์ธ
โฆ
svc - ์๋น์ค๋ฅผ ์ํ ํ์ ๋๋ฉ์ธ
โฆ
dev - ๋ค์์คํ์ด์ค
โฆ
db-service - ์๋น์ค ๋ช
ย Command
โข
kubectl ์ฌ์ฉ์ --namespace=<namespace> ๋ฅผ ๋ถ์ด์ง ์์ผ๋ฉด default namespace๋ก ์คํํจ
โข
๋ค๋ฅธ ์ค๋ธ์ ํธ ์ ์ ํ์ผ ์์ฑ์ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ๊ธฐ ์ํด์๋ metadata ์น์
ํ์์ namespace๋ฅผ ๊ธฐ์
โข
namespace๋ฅผ ์์ฑํ๋ ์ ์ํ์ผ:
apiVersion: v1
kind: Namespace
metadata:
name: dev
YAML
๋ณต์ฌ
Switch
Default Namespace๊ฐ ์๋ ํน์ Namespace์์ ๊ณ์ ์์
ํ ๊ฒฝ์ฐ ์ฌ์ฉ
kubectl config set-context $(kubectl config current-context) --namespace=<namespace>
ย Resource Quota
๋ค์์คํ์ด์ค์์ ๋ฆฌ์์ค๋ฅผ ์ ํํ๊ธฐ ์ํด ๋ฆฌ์์ค ํ ๋น๋์ ์์ฑ
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: dev
spec:
hard:
pods: "10"
requests.cpu: "4"
requests.memory: 5Gi
limits.cpu: "10"
limits.memory: 10Gi
YAML
๋ณต์ฌ