๐ŸŒŒ [์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜] 2. ์˜ค๋ธŒ์ ํŠธ (Objects)

์ด๋Œ€ํ˜„ยท2021๋…„ 2์›” 16์ผ
2

42SEOUL

๋ชฉ๋ก ๋ณด๊ธฐ
24/27
post-thumbnail

44BIT๋‹˜์˜ [์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•ˆ๋‚ด์„œ] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์„ฑ

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์„ฑ์„ ๋ณด๋ฉด, ํฌ๋“œ(pod)๋ฅผ ๊ทธ๋ƒฅ ๋„์šฐ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ๋ด๋„ ๋œ๋‹ค.

  1. Deployment๋ฅผ ๋จผ์ € ์ƒ์„ฑ์„ ํ•˜๊ณ , ๊ทธ๋Ÿฌ๋ฉด Deployment๊ฐ€
  2. ReplicaSet์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ๋Ÿผ ReplicaSet๊ฐ€
  3. pod๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœ์„ ํ•  ๋•Œ๋Š”

  1. Service(ClusterIP)๋ฅผ ํ•˜๋‚˜ ๋ถ™์ด๊ณ 
  2. ๊ฑฐ๊ธฐ์— Ingress๋ฅผ ๋ถ™์ธ๋‹ค. Ingress๋ฅผ ๋ถ™์ด๋ฉด
  3. NodePort์™€ LoadBalancer๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

์ฆ‰, ์‹ค์ œ๋กœ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ์ ‘์†์„ ํ•˜๋ฉด, ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๊ฑฐ์ณ์„œ, ๋…ธ๋“œํฌํŠธ๋ฅผ ๊ฑฐ์ณ์„œ, ํด๋Ÿฌ์Šคํ„ฐIP๋ฅผ ๊ฑฐ์ณ์„œ Pod๋กœ ์—ฐ๊ฒฐ๋˜๋Š”, ์ด๊ฒŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ํ•˜๋‚˜์”ฉ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์˜ค๋ธŒ์ ํŠธ์ธ์ง€ ์‚ดํŽด๋ณด์ž.

2. ์ผ๋ฐ˜์ ์ธ ๊ตฌ์„ฑ ์† ์˜ค๋ธŒ์ ํŠธ

1) pod

Pod(ํฌ๋“œ, ํŒŸ)์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ์˜ ๊ฐ€์žฅ ์ž‘์€ ๋ฐฐํฌ ๋‹จ์œ„์ด๋ฉฐ, ๊ฐ Pod๋งˆ๋‹ค ๊ณ ์œ ํ•œ IP๋ฅผ ํ• ๋‹น๋ฐ›๋Š”๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•˜๋‚˜์˜ Pod์— ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

2) ReplicaSet

๋ฆฌํ”Œ๋ฆฌ์นด์…‹์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Pod๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, replicas = 3 ๊ณผ ๊ฐ™์€ ์‹์œผ๋กœ ๋ช‡ ๊ฐœ์˜ Pod๋ฅผ ๊ด€๋ฆฌํ•  ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. ์ฆ‰, ์‹ ๊ทœ Pod์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด Pod์„ ์ œ๊ฑฐํ•˜์—ฌ ์›ํ•˜๋Š” ์ˆ˜(Replicas)๋ฅผ ์œ ์ง€ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

3) Deployment

ReplicaSet์„ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š”, ๋ฐฐํฌ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ๋‚ด๋ถ€์ ์œผ๋กœ ReplicaSet์„ ํ™œ์šฉํ•ด ๋ฌด์ค‘๋‹จ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•œ๋‹ค.

4) Service - ClusterIP

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋„คํŠธ์›Œํฌ๋„ Service๋ผ๋Š” ๋ณ„๋„์˜ ์˜ค๋ธŒ์ ํŠธ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์„œ๋น„์Šค ์ค‘์—์„œ๋„ ํด๋Ÿฌ์Šคํ„ฐIP๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก์‹œ ์„œ๋น„์Šค์ด๋‹ค. ํด๋Ÿฌ์Šคํ„ฐIP์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ Pod ์ค‘ ํ•˜๋‚˜๋กœ ์ž๋™์œผ๋กœ ์š”์ฒญ์ด ๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ํด๋Ÿฌ์Šคํ„ฐIP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” Pod์˜ IP๋Š” ๋™์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (Deployment๋ฅผ ํ†ตํ•ด Pod์ด ์—…๋ฐ์ดํŠธ๋  ๋•Œ IP๋ฅผ ์œ ์ง€ํ•œ ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ Pod์ด ์ฃฝ๊ณ  ์ƒˆ๋กœ์šด Pod ์ƒ์„ฑ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค.) ๋”ฐ๋ผ์„œ Deployment ์•ž์— ์กด์žฌํ•ด Pod์˜ IP์™€๋Š” ์ƒ๊ด€์—†์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š”, ๊ณ ์œ  IP๋ฅผ ๊ฐ€์ง„ Service๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ด๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์€ DNS๋ฅผ ์ด์šฉํ•œ๋‹ค.

5) Service - NodePort

๋‹ค๋งŒ ํด๋Ÿฌ์Šคํ„ฐIP๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ๋งŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก, NodePort๋ผ๋Š” ๊ฐœ๋…์ด ์ƒ๊ธด๋‹ค. NodePort๋Š” ๋…ธ๋“œ(host)์— ๋…ธ์ถœ๋˜์–ด ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค ์ด๋‹ค. ๋‹ค๋งŒ ๋…ธ๋“œ/VM IP๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค ์„œ๋น„์Šค์—์„œ ๋…ธ๋“œํฌํŠธ๋งŒ์œผ๋กœ ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ ๋…ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ”๋กœ ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋…ธ๋“œํฌํŠธ์—๋Š” ์ค‘์š”ํ•œ ํŠน์ง•์ด ์žˆ๋Š”๋ฐ, ๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ๋•Œ ๋…ธ๋“œํฌํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋ชจ๋“  ๋…ธ๋“œ์— ๋…ธ๋“œํฌํŠธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์ด๋•Œ ์–ด๋–ค ๋…ธ๋“œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๋„ ๋‚ด๋ถ€์˜ ์›ํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐIP๋กœ ์ž๋™์œผ๋กœ ์ž˜ ์—ฐ๊ฒฐ๋˜๋„๋ก ์ž‘๋™ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์ด ์ดํ•ด์— ๋„์›€์ด ๋œ๋‹ค.

6) Service - LoadBalancer

๋ชจ๋“  ๋…ธ๋“œ์— ์™ธ๋ถ€ ์ ‘์† ๋ถ„์‚ฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” NodePort ๋ณด๋‹ค๋Š” Load Balancer ์‚ฌ์šฉ์ด ์ ์ ˆํ•˜๋‹ค.

๊ฒŒ์‹œ๋ฌผ ์ œ์ผ ์ƒ๋‹จ์˜ <์ผ๋ฐ˜์ ์ธ ๊ตฌ์„ฑ>์„ ๋ณด๋ฉด, ๋…ธ๋“œํฌํŠธ ์•ž์— ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ผ๋Š” ๋˜ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๊ฐ€ ๋ถ™์–ด์žˆ๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ 1๊ฐœ์˜ IP๋งŒ์„ ์™ธ๋ถ€์— ๋…ธ์ถœํ•˜๊ฒŒ ํ•˜๋ฉฐ ํ•ด๋‹น IP๋กœ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ๋ถ€ํ•˜ ๋ถ„์‚ฐํ•œ๋‹ค.

HTTP, TCP, UDP ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœํ† ์ฝœ๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ft_service ๊ณผ์ œ์—์„œ๋Š” metallb ๋ผ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

7) Ingress

์ง€๊ธˆ๊นŒ์ง€์˜ ์˜ค๋ธŒ์ ํŠธ๋“ค์ด IPํฌํŠธ๋กœ๋งŒ ์ ‘์†ํ•˜๋Š” ์„œ๋น„์Šค์˜€๋‹ค๋ฉด, Ingress๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„, ๋„๋ฉ”์ธ ํŒจ์Šค์— ๋”ฐ๋ผ ๋‚ด๋ถ€์— ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐIP์—๋„ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. Ingress ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค์–ด๋„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋งŒ๋“ค์–ด ์ž์›์„ ๋‚ญ๋น„ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋งŒ ft_serviece ๊ณผ์ œ์—์„œ๋Š” ์ž‰๊ทธ๋ฆฌ์Šค๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

3. ๊ทธ ์™ธ ๊ธฐ๋ณธ ์˜ค๋ธŒ์ ํŠธ

  • Volume : Storage(EBS, NFS, ...)
  • Namespace : ๋…ผ๋ฆฌ์ ์ธ ๋ฆฌ์†Œ์Šค ๊ตฌ๋ถ„
  • ConfigMap/Secret : ์„ค์ •
  • ServiceAccount : ๊ถŒํ•œ ๊ณ„์ •
  • Role/ClusterRole : ๊ถŒํ•œ ์„ค์ • (get, list, warch, create)
  • ...

๋“ฑ๋“ฑ ํ›จ์”ฌ ๋งŽ์€ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์–ด๋ ค์šด ์ ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ๊ทธ๋ƒฅ ์ด๋Ÿฐ๊ฒŒ ์žˆ๋‹ค๋Š” ๊ฒƒ ์ •๋„๋งŒ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๊ณ  ํ•„์š”ํ•˜๋ฉด ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ...

์•„๋ฌดํŠผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž˜ ๋””์ž์ธ๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฐ•์˜. ์ฒ˜์Œ์—๋Š” ๋ญ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋ณต์žกํ•˜๊ฒŒ ์ถ”์ƒํ™” ๋˜์–ด์žˆ๊ณ  ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š”์ง€ ํ–ˆ๋Š”๋ฐ, ์ด๊ฒƒ์ด ์„œ๋ฒ„์Šค๋ฅผ ์•ˆ์ •์ ์œผ๋กœ, ํšจ๊ณผ์ ์œผ๋กœ, ๋˜ ๊ฐ€๋ณ๊ฒŒ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„๋ฒ•์ด์—ˆ๋‹ค.

profile
์‚ฝ์งˆ์˜ ๊ธฐ๋ก๋“ค ๐Ÿ‘จโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€