Namespace

Namespace๋ž€?

  • Kubernetes namespace๋Š” object ์ด๋ฆ„์˜ ๋ฒ”์œ„ ๋ฅผ ์ œ๊ณตํ•œ๋‹ค

  • ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์ผ namespace์— ๋‘๋Š” ๋Œ€์‹ ์—, ์—ฌ๋Ÿฌ namespace๋กœ ๋ถ„ํ•  ํ•  ์ˆ˜ ์žˆ๋‹ค

  • ๋ถ„๋ฆฌ๋œ namespace๋Š” ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์„ ๋‹ค๋ฅธ namespace์— ๊ฑธ์ณ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค

Namespace์˜ ํ•„์š”์„ฑ

  • ์—ฌ๋Ÿฌ namespace๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งŽ์€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ์ข€ ๋” ์ž‘์€ ๊ฐœ๋ณ„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค

    • Multi-tenant ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค

    • ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์€ namespace ์•ˆ์—์„œ๋งŒ ๊ณ ์œ ํ•˜๋ฉด ๋œ๋‹ค

      • ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ namespace๋Š” ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค

    • ๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ์†Œ์Šค ์œ ํ˜•์€ namespace ์•ˆ์— ์†ํ•˜์ง€๋งŒ ์ผ๋ถ€๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค

      • ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” node ์ธ๋ฐ, node๋Š” ์ „์—ญ์ด๋ฉฐ ๋‹จ์ผ namespace์— ์†ํ•˜์ง€ ์•Š๋Š”๋‹ค

  • namespace๋ฅผ ์‚ฌ์šฉํ•ด ์„œ๋กœ ๊ด€๊ณ„ ์—†๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒน์น˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค

    • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ทธ๋ฃน์ด ๋™์ผํ•œ kubernetes cluster๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , ๊ฐ์ž ์ž์‹ ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด ๊ฐ๊ฐ ๊ณ ์œ ํ•œ namespace๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค

      • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ํ•„์š”๊ฐ€ ์—†๋‹ค!

  • namespace๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ํŠน์ • ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๊ณ , ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ์ œํ•œ ํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋œ๋‹ค

Namespace ์ƒ์„ฑ๊ณผ ์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌ

Namespace ์ƒ์„ฑ

Namespace๋Š” kubernetes resource์ด๊ธฐ ๋•Œ๋ฌธ์— YAML ํŒŒ์ผ์„ kubernetes API ์„œ๋ฒ„์— ์š”์ฒญํ•ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค

1. YAML ํŒŒ์ผ์—์„œ namespace ์ƒ์„ฑ

ex) chloe๋ผ๋Š” ์ด๋ฆ„์˜ namespace ์ƒ์„ฑํ•˜๊ธฐ

chloe-namespace.yaml ํŒŒ์ผ ์ƒ์„ฑ

apiVersion: v1
kind: Namespace
metadata: 
 name: chloe

kubectl ๋ช…๋ น์–ด๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ kubernetes API ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ธฐ

kubectl create -f choe-namespace.yaml

2. kubectl create namespace ๋ช…๋ น์–ด๋กœ namespace ์ƒ์„ฑ

kubectl create namespace ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๋น ๋ฅด๊ฒŒ namespace๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค

ex)

kubectl create namespace chloe

โš ๏ธ ๋Œ€๋ถ€๋ถ„์˜ ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์€ `RFC1035` ์— ์ง€์ •๋œ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค

โ†’ ๊ธ€์ž, ์ˆซ์ž, ๋Œ€์‹œ (-), ์ (.) ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธ!

but, namespace๋ฅผ ๋น„๋กฏํ•œ ๋ช‡๋ช‡ ๋ฆฌ์†Œ์Šค์—์„œ๋Š” ์ (.)์„ ํฌํ•จํ•  ์ˆ˜ ์—†๋‹ค!

โ†’ why? DNS ์ฃผ์†Œ ์ด๋ฆ„์„ ํฌํ•จํ•˜๋ฉด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ!

Namespace๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒฉ๋ฆฌ์˜ ์ดํ•ด

Namespace๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณ„๋„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฆฌํ•ด ํŠน์ •ํ•œ namespace ์•ˆ์— ์†ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์ง€๋งŒ, ์‹คํ–‰ ์ค‘์ธ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ๊ฒฉ๋ฆฌ๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค

ex)

  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ namespace์— pod๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ํ•ด๋‹น pod๊ฐ€ ์„œ๋กœ ๊ฒฉ๋ฆฌ๋ผ ํ†ต์‹ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ˜๋“œ์‹œ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค!

  • namespace์—์„œ ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š”์ง€๋Š” kubernetes์™€ ํ•จ๊ป˜ ๋ฐฐํฌํ•˜๋Š” ๋„คํŠธ์›Œํ‚น ์†”๋ฃจ์…˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค

  • ๋„คํŠธ์›Œํฌ ์†”๋ฃจ์…˜์ด namespace ๊ฐ„ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, A namespace ์•ˆ์— ์žˆ๋Š” pod๊ฐ€ B namespace ์•ˆ์— ์žˆ๋Š” pod์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด HTTP ์š”์ฒญ๊ณผ ๊ฐ™์€ ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค๋ฅธ pod๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์— ์•„๋ฌด๋Ÿฐ ์ œ์•ฝ ์‚ฌํ•ญ์ด ์—†๋‹ค!

VPC CNI ์‚ฌ์šฉ ์‹œ

CNI plugin for Kubernetes networking over AWS VPC ์ฐธ๊ณ 

Last updated