• Aiden's Lab แ„‚แ…ฒแ„‰แ…ณแ„…แ…ฆแ„แ…ฅ
  • Posts
  • ๐Ÿ”ญKubernetesแ„…แ…ณแ†ฏ แ„‰แ…กแ„‹แ…ญแ†ผ แ„Œแ…ฎแ†ผแ„‹แ…ตแ†ซ แ„แ…ตแ†ทแ„‹แ…ตแ„…แ…กแ„†แ…งแ†ซ แ„Œแ…ฎแ„†แ…ฉแ†จ! Linkerdแ„…แ…ฉ แ„€แ…กแ„‡แ…งแ†ธแ„€แ…ฆ แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซ Service Mesh

๐Ÿ”ญKubernetesแ„…แ…ณแ†ฏ แ„‰แ…กแ„‹แ…ญแ†ผ แ„Œแ…ฎแ†ผแ„‹แ…ตแ†ซ แ„แ…ตแ†ทแ„‹แ…ตแ„…แ…กแ„†แ…งแ†ซ แ„Œแ…ฎแ„†แ…ฉแ†จ! Linkerdแ„…แ…ฉ แ„€แ…กแ„‡แ…งแ†ธแ„€แ…ฆ แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซ Service Mesh

Kubernetesแ„…แ…ณแ†ฏ แ„‰แ…กแ„‹แ…ญแ†ผแ„’แ…กแ„‚แ…ณแ†ซ แ„‰แ…ฉแ„€แ…ฒแ„†แ…ฉ แ„แ…ตแ†ทแ„‹แ…ฆแ„€แ…ฆ แ„Œแ…ฅแ†จแ„’แ…กแ†ธแ„’แ…กแ†ซ Service Mesh แ„แ…ฎแ†ฏ Linkerdแ„…แ…ณแ†ฏ แ„‰แ…ฉแ„€แ…ขแ„’แ…กแ†ธแ„‚แ…ตแ„ƒแ…ก.

์•ˆ๋…•ํ•˜์„ธ์š”, Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์ž…๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์‹œ๋Œ€๋ผ๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

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

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ, Service Mesh(์„œ๋น„์Šค ๋ฉ”์‹œ)๋ผ๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์‹œ๋Œ€์— Service Mesh๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ?

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ๊ณผ ๊ด€๋ จํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ฃผ์š” ๊ณผ์ œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋ณด์•ˆ์„ฑ

    • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ๋Š” ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค๋“ค์ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋กœ ํ†ต์‹ ํ•˜๋ฏ€๋กœ ํ†ต์‹  ๊ตฌ๊ฐ„์˜ ๋ณด์•ˆ์ด ๋งค์šฐ ์ค‘์š”

  2. ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ

    • ํŠน์ • ์„œ๋น„์Šค์˜ ์žฅ์• ๊ฐ€ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์ „ํŒŒ๋˜์ง€ ์•Š๋„๋ก ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๋Š” ํŒจํ„ด(์žฌ์‹œ๋„, ํƒ€์ž„์•„์›ƒ ๋“ฑ)์ด ํ•„์š”

  3. ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ(Observability)

    • ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ์ƒํƒœ์™€ ์„ฑ๋Šฅ์„ ํŒŒ์•…ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ง„๋‹จํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”

๊ทธ๋ ‡๋‹ค๋ฉด Service Mesh๊ฐ€ ์ด ๊ณผ์ œ๋“ค์„ ๋ชจ๋‘ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค!

Service Mesh๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ์•ˆ์ •์ ์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ „์šฉ ์ธํ”„๋ผ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ ์„œ๋น„์Šค์˜ ์ธ์Šคํ„ด์Šค(Pod)์— ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ํ˜•ํƒœ๋กœ ๋ฐฐํฌ๋˜๋ฉฐ, ์„œ๋น„์Šค ๊ฐ„์˜ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ค‘๊ฐ„์—์„œ ๊ฐ€์ ธ์™€ ์ œ์–ดํ•˜๋Š”๋ฐ์š”.

์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ณ , ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹  ๊ด€๋ จ ์ž‘์—…์€ Service Mesh์— ๋งก๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Service Mesh๊ฐ€ ํ”Œ๋žซํผ ์ˆ˜์ค€์—์„œ ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์•„๊นŒ ์‚ดํŽด๋ดค๋˜ ์ฃผ์š”๊ณผ์ œ์™€ ์—ฐ๊ฒฐ์ง€์–ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€๋ฐ์š”.

  1. mTLS ์•”ํ˜ธํ™”, ์ธ์ฆ/์ธ๊ฐ€ <- ๋ณด์•ˆ์„ฑ

  2. ๋ผ์šฐํŒ…, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ <- ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ

  3. ๋ฉ”ํŠธ๋ฆญ, ํŠธ๋ ˆ์ด์Šค, ๋กœ๊ทธ ๊ธฐ๋ก <- ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ

์ด๋Ÿฐ ๊ธฐ๋Šฅ๋“ค์„ ํ†ตํ•ด ์„œ๋น„์Šค ๊ฐ„ ๋ณด์•ˆ ์ •์ฑ…์„ ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉํ•˜๊ณ , ํ†ต์‹ ์˜ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋ฉฐ, ์‹œ์Šคํ…œ ์ „์ฒด์˜ ๋™์ž‘์„ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Service Mesh๋ฅผ ๋„์ž…ํ•˜๋ฉด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์šด์˜์˜ ๋ณต์žก์„ฑ์„ ์ค„์ด๋ฉด์„œ ๊ด€๋ฆฌ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linkerd๊ฐ€ Service Mesh ๋„์ž…์— ์œ ๋ฆฌํ•œ ์ด์œ ๋Š”?

์ถœ์ฒ˜: https://linkerd.io/2-edge/features/dashboard/

Service Mesh๋ผ๋Š” ๊ฐœ๋…์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ๊ด€๋ จ ํˆด๋“ค์ด ์„ธ์ƒ์— ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด Istio, Linkerd ๋“ฑ์ธ๋ฐ์š”.

๊ทธ ์ค‘์—์„œ๋„ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ์— Linkerd๋ฅผ ์‚ดํŽด๋ณด๋Š” ์ด์œ ๋Š”, ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์žฅ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  1. ๋„์ž… ์šฉ์ด์„ฑ

    • Linkerd๋Š” ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•œ Istio์™€ ๋‹ฌ๋ฆฌ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ•˜์—ฌ ์„ค๊ณ„๋จ ('Just work' ์›์น™)

    • ๋ณต์žกํ•œ CRD(Custom Resource Definition)๋‚˜ ์„ค์ • ํŒŒ์ผ ์—†์ด๋„ Service Mesh๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ

  2. ๋ฆฌ์†Œ์Šค ํšจ์œจ์„ฑ

    • Linkerd์˜ ํ”„๋ก์‹œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ ์œผ๋ฉด์„œ ๋†’์€ ์„ฑ๋Šฅ์„ ์ž๋ž‘ํ•˜๋Š” Rust ์–ธ์–ด๋กœ ๊ตฌํ˜„๋จ

    • ํ”„๋ก์‹œ๊ฐ€ ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ ์•ˆ์ •์ ์ธ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•จ

  3. ์šด์˜ ํŽธ์˜์„ฑ

    • ์ง๊ด€์ ์ธ CLI ๋ช…๋ น์–ด์™€ ๊ฐ€๋…์„ฑ ์ข‹์€ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ์ œ๊ณต๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉ ๊ฐ€๋Šฅํ•จ

์ด๋Ÿฌํ•œ ํŠน์ง• ๋•๋ถ„์—, Linkerd๋Š” Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ทœ๋ชจ๊ฐ€ ํฌ์ง€ ์•Š์€ ํŒ€์—๊ฒŒ ๋ถ€๋‹ด์ด ์ ์€ ์„ ํƒ์ง€๊ฐ€ ๋˜์–ด์ค๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ Linkerd๋„ Istio์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CNCF์˜ Graduated(์กธ์—…) ํ”„๋กœ์ ํŠธ๋กœ์„œ ์•ˆ์ •์„ฑ๊ณผ ์ง€์† ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

Linkerd์˜ ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ํ›‘์–ด๋ณด๊ธฐ

Linkerd์˜ Data Plane์€ ๊ฐ Pod์— ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐฐํฌ๋œ ํ”„๋ก์‹œ๋“ค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Linkerd์˜ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํฌ๊ฒŒ Control Plane๊ณผ Data Plane์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ์š”.

  • Control Plane:

    • Service Mesh ์ „์ฒด์˜ ์ •์ฑ… ๊ด€๋ฆฌ

    • ์„ค์ • ์ •๋ณด ์ œ๊ณต

    • ์ง‘๊ณ„๋œ ์›๊ฒฉ ์ธก์ •(Telemetry) ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

  • Data Plane:

    • ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋กœ ๊ตฌ์„ฑ

    • Control Plane์œผ๋กœ๋ถ€ํ„ฐ ์ง€์‹œ๋ฅผ ๋ฐ›์•„ ๋™์ž‘

Control Plane์€ Data Plane์˜ ํ”„๋ก์‹œ๋“ค์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๋ฐ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—” ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ์ •๋ณด๋ถ€ํ„ฐ ๋ผ์šฐํŒ… ์ •์ฑ…, ๋ณด์•ˆ ์ •์ฑ…(์˜ˆ: mTLS ์ธ์ฆ์„œ) ๋“ฑ์ด ํฌํ•จ๋˜์ฃ .

๋˜ํ•œ ๊ฐ ํ”„๋ก์‹œ๋กœ๋ถ€ํ„ฐ ์ˆ˜์ง‘๋œ ์„ฑ๊ณต๋ฅ , ์ง€์—ฐ ์‹œ๊ฐ„ ๋“ฑ์˜ ์›๊ฒฉ ์ธก์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜๋Š” ์—ญํ• ๋„ Control Plane์ด ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” CLI๋‚˜ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด Control Plane๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ Mesh๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Linkerd์˜ Data Plane์€ ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Pod์™€ ํ•จ๊ป˜ ๋ฐฐํฌ๋˜๋Š” ์ดˆ๊ฒฝ๋Ÿ‰ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ์ธ linkerd-proxy๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์ด ํ”„๋ก์‹œ๊ฐ€ ํ•ด๋‹น Pod๋กœ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ๋ชจ๋“  TCP ํŠธ๋ž˜ํ”ฝ(HTTP, gRPC ๋“ฑ)์„ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ, mTLS ์•”ํ˜ธํ™”, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ์žฌ์‹œ๋„, ํƒ€์ž„์•„์›ƒ, ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋“ฑ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์ „ํ˜€ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋ฏฟ์–ด์ง€์‹œ๋‚˜์š”?

Linkerd๋Š” ์ž๋™ ํ”„๋ก์‹œ ์ฃผ์ž…(Automatic Proxy Injection)์ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Kubernetes์˜ ํŠน์ • Namespace์— ์–ด๋…ธํ…Œ์ด์…˜(linkerd.io/inject: enabled)์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, Deployment์™€ ๊ฐ™์€ Workload ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์ง์ ‘ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•œ Namespace๋‚˜ Workload์—์„œ ์ƒˆ๋กœ์šด Pod๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ Linkerd์˜ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๊ฐ€ ์ž๋™์œผ๋กœ ํ•จ๊ป˜ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด์ฃ .

์ง€๊ธˆ๊นŒ์ง€ Linkerd์˜ ๊ตฌ์กฐ์™€ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์œผ๋‹ˆ, ๋‹ค์Œ์€ Linkerd์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์‚ดํŽด๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

Linkerd๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

1. ๋ณด์•ˆ์„ฑ ์ธก๋ฉด

Linkerd๋Š” Control Plane์˜ ์ธ์ฆ์„œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, Service Mesh ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ชจ๋“  ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹ ์— ๋Œ€ํ•ด ์ƒํ˜ธ TLS(mTLS) ์•”ํ˜ธํ™”๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณ„๋„์˜ ์„ค์ • ์—†์ด๋„ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ฐ€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ, ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ๊ณผ ๊ฐ™์€ ์œ„ํ˜‘์œผ๋กœ๋ถ€ํ„ฐ ์„œ๋น„์Šค๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ œ๋กœ ํŠธ๋Ÿฌ์ŠคํŠธ(Zero-Trust) ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ์›์น™์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ๋กœ ํŠธ๋Ÿฌ์ŠคํŠธ ๋ณด์•ˆ ์›์น™์ด๋ž€?

์ œ๋กœ ํŠธ๋Ÿฌ์ŠคํŠธ ๋ณด์•ˆ ์›์น™์€ '์•„๋ฌด๊ฒƒ๋„ ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š”๋‹ค'๋Š” ์ฒ ํ•™์„ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ์šฉ์ž, ๋””๋ฐ”์ด์Šค, ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž ์žฌ์  ์œ„ํ˜‘ ์š”์†Œ๋กœ ๊ฐ„์ฃผํ•˜๋Š” ์›์น™์ธ๋ฐ์š”.

๊ธฐ์กด์˜ '๊ฒฝ๊ณ„ ๊ธฐ๋ฐ˜ ๋ณด์•ˆ'๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๋„คํŠธ์›Œํฌ ๋‚ด/์™ธ๋ถ€์™€ ์ƒ๊ด€์—†์ด ๋ชจ๋“  ์ ‘์†์— ๋Œ€ํ•ด ์—„๊ฒฉํ•œ ์ธ์ฆ๊ณผ ์Šน์ธ์„ ์ ์šฉํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2. ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์ธก๋ฉด

์ผ์‹œ์ ์ธ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋‚˜ ์„œ๋น„์Šค ๊ณผ๋ถ€ํ•˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๊ฐ„ํ—์ ์ธ ์š”์ฒญ ์‹คํŒจ๋Š” ์‹œ์Šคํ…œ ์ „์ฒด์˜ ์•ˆ์ „์„ฑ์„ ์ €ํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Linkerd๋Š” HTTPRoute(Gateway API)์ด๋ผ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ†ตํ•ด, ํŠน์ • ์„œ๋น„์Šค๋‚˜ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์ž๋™์œผ๋กœ ์š”์ฒญ์„ ์žฌ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ์‘๋‹ต ๋Œ€๊ธฐ ์‹œ๊ฐ„(ํƒ€์ž„์•„์›ƒ)์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์™ธ์—๋„ Linkerd๋Š” ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ๋ผ์šฐํŒ… ๊ทœ์น™ ์„ค์ •์ด๋‚˜, ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ์ „๋žต(์นด๋‚˜๋ฆฌ ๋ฐฐํฌ, Blue/Green ๋ฐฐํฌ ๋“ฑ)๋„ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

3. ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ ์ธก๋ฉด

Linkerd์˜ Data Plane ํ”„๋ก์‹œ๋Š” ๋ชจ๋“  ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์„ฑ๊ณต๋ฅ (Success Rate, SR), ์š”์ฒญ๋Ÿ‰(Requests Per Second, RPS), ์ง€์—ฐ ์‹œ๊ฐ„(์ง€์—ฐ ์‹œ๊ฐ„ ๋ถ„ํฌ ๋ฐฑ๋ถ„์œ„์ˆ˜)๊ณผ ๊ฐ™์€ ์ฃผ์š” ์„ฑ๋Šฅ ์ง€ํ‘œ(Golden Metrics)๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

์ง€์—ฐ ์‹œ๊ฐ„ ๋ถ„ํฌ ๋ฐฑ๋ถ„์œ„์ˆ˜๋ž€?

ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜์—ฌ ํ•ด๋‹น ์‹œ๊ฐ„ ๋‚ด์—์„œ ํŠน์ • ๋ฐฑ๋ถ„์œ„์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 99๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜(P99)๋Š” ์ „์ฒด ์ง€์—ฐ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜์œ„ 99%์— ํ•ด๋‹นํ•˜๋Š” ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ’์œผ๋กœ, ์ƒ์œ„ 1%์˜ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฉ”ํŠธ๋ฆญ์€ Control Plane์„ ํ†ตํ•ด ์ง‘๊ณ„๋˜์–ด ๋Œ€์‹œ๋ณด๋“œ๋‚˜ CLI๋กœ ์‰ฝ๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅํ•œ๋ฐ์š”. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž์™€ ์šด์˜์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒŒ์•…ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ง„๋‹จ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://linkerd.io/2-edge/features/dashboard/

Linkerd๋ฅผ ๋„์ž…ํ•˜๋ฉด ์šฐ๋ฆฌ ํŒ€์ด ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์งˆ๊นŒ?

Linkerd๋ฅผ ๋„์ž…ํ•˜๋ฉด ํŒ€์— ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์žˆ์„์ง€ ์ง€๊ธˆ๊นŒ์ง€์˜ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ์ „์ฒด์ ์œผ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ํ™•์ธํ•ด๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Linkerd ๋„์ž…์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋” ์ง‘์ค‘ํ•˜๋„๋ก ๋„์™€์ค€๋‹ค.

    • Linkerd๊ฐ€ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ , ๋ณด์•ˆ, ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ธํ”„๋ผ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฏ€๋กœ, ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ฐœ๋ฐœ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ๋œ๋‹ค.

  2. Linkerd๋Š” ์ ์ง„์ ์ธ ๋„์ž…๊ณผ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜์—ฌ Service Mesh๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ํŠน์ • Namespace๋‚˜ ์„œ๋น„์Šค๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ ์ง„์ ์œผ๋กœ Service Mesh๋ฅผ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ์กด์— ์šด์˜ ์ค‘์ธ ์‹œ์Šคํ…œ์—๋„ ์•ˆ์ •์ ์œผ๋กœ ๋„์ž…ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

  3. Linkerd๋Š” ์šด์˜ํŒ€์˜ ์„œ๋น„์Šค ๊ฐ€์‹œ์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผœ ์žฅ์•  ์ง„๋‹จ ์†Œ์š” ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚จ๋‹ค.

    • ํ’๋ถ€ํ•œ ์›๊ฒฉ ์ธก์ • ๋ฐ์ดํ„ฐ์™€ ์ง๊ด€์ ์ธ ๋Œ€์‹œ๋ณด๋“œ ๋•๋ถ„์— ์šด์˜ํŒ€์ด ๋ฌธ์ œ์˜ ์›์ธ์„ ์‹ ์†ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  4. Linkerd๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์˜ ๋ณด์•ˆ ์ˆ˜์ค€์„ ๊ฐ•ํ™”ํ•œ๋‹ค.

    • Linkerd์˜ mTLS ๊ธฐ๋Šฅ ๋“ฑ์œผ๋กœ Service Mesh ๋‚ด ๋ชจ๋“  ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์œ ์ถœ ๋ฐ ๋ณ€์กฐ ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

  5. Linkerd๋ฅผ ํ†ตํ•ด ๋” ์•ˆ์ •์ ์ด๊ณ  ํƒ„๋ ฅ์ ์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • Linkerd์˜ ์ž๋™ ์žฌ์‹œ๋„ ๋ฐ ํƒ€์ž„์•„์›ƒ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์œผ๋กœ ์ผ์‹œ์ ์ธ ์žฅ์• ๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๊ณ  ์„œ๋น„์Šค์˜ ์•ˆ์ •์„ฑ๋„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ญ๋งˆ๋ฌด๋ฆฌ

์ด๋ ‡๊ฒŒ Linkerd์˜ ๊ตฌ์กฐ์™€ ์ฃผ์š” ๊ธฐ๋Šฅ๊นŒ์ง€ ์‚ดํŽด๋ดค๋Š”๋ฐ์š”. ์–ด๋– ์‹ ๊ฐ€์š”? Linkerd์— ๋Œ€ํ•ด ํฅ๋ฏธ๊ฐ€ ์ข€ ๋” ์ƒ๊ธฐ์…จ๋‚˜์š”?

Linkerd์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ์™€ ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ํ’€์–ด์„œ ์ •๋ฆฌํ–ˆ์œผ๋‹ˆ Service Mesh์™€ Linkerd์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜์…จ๋˜ ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„  Linkerd์˜ ๊ฐœ๋…์„ ๋ง๋กœ ํ’€์–ด์„œ ์„ค๋ช…ํ–ˆ์ง€๋งŒ, ์ด๋ก ๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ์—” ๋„ˆ๋ฌด ์ค‘์š”ํ•œ ์ฃผ์ œ์—ฌ์„œ ๋‹ค์Œ ๊ธ€์—์„œ Linkerd์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๋Š” ์‹ค์Šต์„ ์ง„ํ–‰ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์Šต ๊ฐ€์ด๋“œ ์—ญ์‹œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ๋งŒ ์ปดํŒฉํŠธํ•˜๊ฒŒ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ด๋‹ˆ ๋ถ€๋‹ด ์—†์ด ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋‹ค์Œ ๊ธ€์—์„œ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

โœจ์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ๋Š” ์–ด๋– ์…จ๋‚˜์š”?

์ด๋ฒˆ ๊ธ€์—์„œ ๋‹ค๋ฃฌ ์ฃผ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ๋” ๋‚˜์€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํผ์—์„œ ์งง์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์žˆ์–ด์š”.

๐Ÿ‘‰ ํ”ผ๋“œ๋ฐฑ ๋ณด๋‚ด๊ธฐ (1~2๋ถ„ ์†Œ์š”)

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์€ Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์—๊ฒŒ ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

๐Ÿ”ญAidenโ€™s Lab์—์„œ ๋” ๋งŽ์€ ์•„ํ‹ฐํด์„ ๋งŒ๋‚˜๋ณด์„ธ์š”

๋ฐœํ–‰๋œ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ์•„์นด์ด๋น™ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ ์ค‘์ž…๋‹ˆ๋‹ค.