Kubernetes Tools/Istio

[Istio ๊ฐ€์ด๋“œ ep.2] 1๋ถ€ ๊ฐœ๋…๊ณผ ๊ธฐ๋ณธ ์„ค์ • #2 | Istio ์•„ํ‚คํ…์ฒ˜: ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ & ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์™„์ „ ์ •๋ณต

ygtoken 2025. 3. 18. 10:35
728x90

๐Ÿ”น ๊ฐœ์š”

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


๐Ÿ”น 1. Istio ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”

โœ… 1.1 Istio ์•„ํ‚คํ…์ฒ˜์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

Istio๋Š” ํฌ๊ฒŒ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์œผ๋กœ ๋‚˜๋ˆ ์ง‘๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์€ ์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ด ๋‘˜์ด ํ˜‘๋ ฅํ•˜์—ฌ ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์š”์†Œ

  • ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ(Data Plane): Envoy Proxy๊ฐ€ ์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane): Istio์˜ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” Pilot, Citadel, Galley์™€ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… 1.2 ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ (Data Plane)

๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์€ ์„œ๋น„์Šค ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
Envoy Proxy๊ฐ€ ๊ฐ ์„œ๋น„์Šค์˜ ์‚ฌ์ด๋“œ์นด ํ”„๋กœ์‹œ๋กœ ๋ฐฐํฌ๋˜์–ด, ์„œ๋น„์Šค ๊ฐ„์˜ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์€ ์ฃผ๋กœ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ๋ณด์•ˆ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

Envoy Proxy

  • ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…: ๊ฐ ์„œ๋น„์Šค๋กœ์˜ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ ์ œ์–ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ: mTLS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„์˜ ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ํŠธ๋ž˜ํ”ฝ ์ œ์–ด: ๋ฆฌํŠธ๋ผ์ด, ํƒ€์ž„์•„์›ƒ, ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค๋ฅผ ์„ค์ •ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

Envoy๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ์ค‘์•™ ์ฒ˜๋ฆฌ ์žฅ์น˜ ์—ญํ• ์„ ํ•˜๋ฉฐ, Istio์˜ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService  # ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ์„ค์ •
metadata:
  name: my-service  # ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ ์„ค์ •
spec:
  hosts:
    - my-service  # ๋Œ€์ƒ ์„œ๋น„์Šค ์„ค์ •
  http:
    - route:
        - destination:
            host: my-service  # 'my-service' ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ ์ „๋‹ฌ

์„ค๋ช…:

  • VirtualService: ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ •์˜ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋กœ, ์„œ๋น„์Šค ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”น 2. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ (Control Plane)

โœ… 2.1 ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ฐœ์š”

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์— ๋Œ€ํ•œ ์„ค์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Istio์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋“ค์€ ์„œ๋น„์Šค ๋ฉ”์‹œ ๋‚ด์—์„œ์˜ ์ œ์–ด ๋ฐ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

  1. Pilot: ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์— ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๋ฐ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  2. Citadel: ์„œ๋น„์Šค ๊ฐ„ ์ธ์ฆ์„ ๊ด€๋ฆฌํ•˜๊ณ , mTLS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. Galley: ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋ฉฐ, ์ •์ฑ… ๋ฐ ์„ค์ •์„ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  4. Mixer (Istio 1.5 ์ด์ „ ๋ฒ„์ „): ์ •์ฑ… ๋ฐ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

โœ… 2.2 Pilot

Pilot์€ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์— ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ์ •๋ณด์™€ ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
Pilot์€ VirtualService, DestinationRule๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๊ณ , ์„œ๋น„์Šค ๊ฐ„ ๋””์Šค์ปค๋ฒ„๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Pilot์˜ ์—ญํ• 

  • ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ: ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์˜ ์„œ๋น„์Šค ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ , ์„œ๋น„์Šค ๊ฐ„ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…: ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ •์˜ํ•˜์—ฌ, ์„œ๋น„์Šค ๊ฐ„์˜ ์š”์ฒญ ํ๋ฆ„์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

โœ… 2.3 Citadel

Citadel์€ ์„œ๋น„์Šค ๊ฐ„์˜ ์ธ์ฆ๊ณผ ๋ณด์•ˆ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
mTLS(Mutual TLS) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•˜๊ณ , ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜์—ฌ ์„œ๋น„์Šค์˜ ๋ณด์•ˆ์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

Citadel์˜ ์—ญํ• 

  • mTLS ์ธ์ฆ์„œ ๊ด€๋ฆฌ: ์„œ๋น„์Šค ๊ฐ„ ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์„ ์œ„ํ•ด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ๊ด€๋ฆฌ.
  • ๋ณด์•ˆ ์ •์ฑ…: ์„œ๋น„์Šค ๊ฐ„์˜ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ Zero Trust ๋ณด์•ˆ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”น 3. ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ์ƒํ˜ธ์ž‘์šฉ

โœ… 3.1 ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ํ˜‘๋ ฅ

๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์„œ๋น„์Šค ๋ฉ”์‹œ ๋‚ด์—์„œ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ, ํŠธ๋ž˜ํ”ฝ๊ณผ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์ •์ฑ…์„ ์ •์˜ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์€ ์ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ƒํ˜ธ์ž‘์šฉ ์˜ˆ์‹œ

  • Pilot์€ VirtualService ๋ฆฌ์†Œ์Šค๋ฅผ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ Envoy(๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ)๋กœ ์ „๋‹ฌํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • Citadel์€ Envoy์— mTLS ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ์„œ๋น„์Šค ๊ฐ„์˜ ์•ˆ์ „ํ•œ ํ†ต์‹ ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ฒฐ๋ก 

  • Istio์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ๋‘ ํ”Œ๋ ˆ์ธ์ด ํ˜‘๋ ฅํ•˜์—ฌ ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ, ๋ณด์•ˆ, ์ •์ฑ… ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • Envoy Proxy๋Š” ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์—์„œ ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋ฉฐ, Pilot, Citadel ๋“ฑ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ปดํฌ๋„ŒํŠธ๋Š” ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๊ณ  ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • Istio๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

728x90