๊ฐœ์ธ์ ์œผ๋กœ ๊ฐœ๋…์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Pod

Kubernetes์˜ ๊ฐ€์žฅ ์ž‘์€ ๋ฐฐํฌ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํฌํ•จํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ๋ฃนํ™”๋œ ์ปจํ…Œ์ด๋„ˆ๋“ค์€ ๋กœ์ปฌ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Probe๋ฅผ ์„ค์ •ํ•˜์—ฌ Pod์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • readinessProbe๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๊ณ , ์ •์ƒ์ด ์•„๋‹ˆ๋ผ๋ฉด ํ•ด๋‹น Pod๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • livenessProbe๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜์—ฌ ์ •์ƒ์ด ์•„๋‹ˆ๋ผ๋ฉด ์žฌ๊ธฐ๋™์‹œํ‚ต๋‹ˆ๋‹ค.
      ๊ณ„์† ์žฌ์‹œ์ž‘ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ CrashLoopBackOff ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ReplicaSet

Pod๋ฅผ ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜๋งŒํผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

  • ์ง€์†์ ์œผ๋กœ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜์—ฌ Pod ๊ฐœ์ˆ˜๊ฐ€ ์กฐ๊ฑด์— ๋งž๋„๋ก ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ๋…์œผ๋กœ ์“ฐ์ด๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ณ , ๋ณดํ†ต Deployment๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Deployment

ReplicaSet์„ ๊ด€๋ฆฌํ•˜๊ณ , ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ƒ์œ„ ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

  • Pod๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ์ ์ธ RollingUpdate ์ •์ฑ…์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ReplicaSet์„ ๋งŒ๋“ค๊ณ , ์ƒˆ๋กœ์šด Pod๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๊ธฐ์กด ReplicaSet์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณ€๊ฒฝ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜๊ณ , ๊ธฐ๋ก๋œ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Service

Pod๋ฅผ ๋„คํŠธ์›Œํฌ์— ๋…ธ์ถœ์‹œํ‚ค๋Š” ์ถ”์ƒํ™”๋œ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Pod๋Š” ๊ณ ์œ ํ•œ ๋‚ด๋ถ€ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Pod๋Š” ํ•ญ์ƒ ๋ณ€๋™ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ณ  ๋งค๋ฒˆ ๋‚ด๋ถ€ IP๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ†ตํ•œ ํ†ต์‹ ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Port forwarding๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์—ญ์‹œ ์ž„์‹œ๋ฐฉํŽธ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

Service๋Š” ๊ณ ์ •๋œ IP๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ Pod์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Service์—๋Š” ๋˜ํ•œ ์—ฌ๋Ÿฌ ํƒ€์ž…์ด ์กด์žฌํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ )

์ถ”๊ฐ€: Service Mesh

๊ธฐ๋ณธ์ ์œผ๋กœ Service๋Š” ์—ฐ๊ฒฐ๋œ Pod๊ฐ€ ์—ฌ๋Ÿฟ์ผ ๊ฒฝ์šฐ ๋ฌด์ž‘์œ„, ํ˜น์€ Round-robin ๋“ฑ์˜ ๋ฐฉ์‹์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ์‹œํ‚ต๋‹ˆ๋‹ค. Service์˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ์€ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” L4 Load balancing ๋ฐฉ์‹์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด ๋ฐฉ๋ฒ•์€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์‹œ๊ฐ„์ด ์งง์„ ๊ฒฝ์šฐ๋Š” ๋ฌผ๋ก ์ด๊ณ , HTTP/1.1์—์„œ ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•ด์•ผ ํ•˜๊ณ , ์—ฐ๊ฒฐ์„ ์ผ์ • ์‹œ๊ฐ„ ํ›„ ๋งŒ๋ฃŒ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์—ฐ๊ฒฐ์ด ๋ถ„์‚ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ gRPC์™€ ๊ฐ™์€ HTTP/2 ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์€ ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ์—์„œ ๋‹ค์ˆ˜์˜ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ Multiplexing์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋กœ ์ธํ•ด Pod๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์Œ์—๋„ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์š”์ฒญ์ด ๋ชฐ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ ์ ‘๊ทผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•œ ๊ฐœ๋…์ด Service Mesh์ž…๋‹ˆ๋‹ค. Service Mesh๋Š” URL ๊ฒฝ๋กœ/ํ—ค๋” ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€๋กœ ํ™œ์šฉํ•˜๋Š” L7 Load balancing ๋ฐฉ์‹์„ ์ฑ„์šฉํ•˜์—ฌ HTTP/2๋„ ์ง€์›ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ๋„ ๋Œ€์‘ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ณดํ†ต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ณ„๋„๋กœ ๋™์ž‘ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ถ™์ด๋Š” ์‚ฌ์ด๋“œ์นด(Sidecar) ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋…๋ฆฝ์ ์œผ๋กœ Load balancing์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Service Mesh์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ Istio์™€ Linkerd๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ