Istio API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ง€์› ๊ธฐ๋Šฅ(๊ด€๋ฆฌํ˜• ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ)

์ด ํŽ˜์ด์ง€์—์„œ๋Š” TRAFFIC_DIRECTOR ๋˜๋Š” ISTIOD๋ฅผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Cloud Service Mesh์— ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์ œํ•œ์‚ฌํ•ญ, ๊ฐ ๊ตฌํ˜„ ๊ฐ„์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ISTIOD ๊ตฌํ˜„์€ ๊ธฐ์กด ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ์„ค์น˜๋Š” ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ TRAFFIC_DIRECTOR ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ Cloud Service Mesh ์ง€์› ๊ธฐ๋Šฅ ๋ชฉ๋ก์€ Istio API ์‚ฌ์šฉ(ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด istiod ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ)์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์‚ฌ์šฉ ์ค‘์ธ Cloud Service Mesh ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„ ์‹๋ณ„์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œํ•œ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • GKE ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ง€์›๋˜๋Š” ๋ฆฌ์ „ ์ค‘ ํ•˜๋‚˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • GKE ๋ฒ„์ „์€ ์ง€์›๋˜๋Š” ๋ฒ„์ „์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ์— ๋‚˜์—ด๋œ ํ”Œ๋žซํผ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ์ถœ์‹œ ์ฑ„๋„ ๋ณ€๊ฒฝ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • asmcli ํฌํ•จ ๊ด€๋ฆฌํ˜• Cloud Service Mesh์—์„œ Fleet API ํฌํ•จ Cloud Service Mesh๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ --management manual์—์„œ --management automatic๊นŒ์ง€์˜ Fleet API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” Mesh CA์™€ ํ•จ๊ป˜ ์„ค์น˜๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด Cloud Service Mesh ๋ฒ„์ „ 1.9 ์ด์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Istio CA(์ด์ „ ๋ช…์นญ: Citadel)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € Mesh CA๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์žฅ ํ•œ๋„๋Š” ์ด ๊ฐ€์ด๋“œ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์ค‘ ๊ธฐ๋ณธ ๋ฐฐํฌ ์˜ต์…˜๋งŒ ์ง€์›๋˜๋ฉฐ, ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ ์›๊ฒฉ ๋ฐฐํฌ ์˜ต์…˜์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • istioctl ps๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์„ค๋ช…๋œ ๋Œ€๋กœ gcloud beta container fleet mesh debug ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง€์›๋˜์ง€ ์•Š๋Š” API:

    • EnvoyFilter API

    • WasmPlugin API

    • IstioOperator API

    • Kubernetes Ingress API

  • GKE Enterprise๋ฅผ ๊ตฌ๋…ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ด€๋ฆฌํ˜• ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Google Cloud ์ฝ˜์†”์˜ ํŠน์ • UI ์š”์†Œ์™€ ๊ธฐ๋Šฅ์€ GKE Enterprise ๊ตฌ๋…์ž์—๊ฒŒ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ตฌ๋…์ž์™€ ๋น„๊ตฌ๋…์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GKE Enterprise ๋ฐ Cloud Service Mesh UI ์ฐจ์ด์ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ๊ด€๋ฆฌํ˜• ์ œ์–ด ์˜์—ญ์˜ ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์„ ํƒํ•œ ์ฑ„๋„์— ํ•ด๋‹นํ•˜๋Š” Istio CRD๊ฐ€ ์ง€์ •๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— ๊ธฐ์กด Istio CRD๊ฐ€ ์žˆ์œผ๋ฉด ๋ฎ์–ด์”๋‹ˆ๋‹ค.

  • ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋Š” ๊ธฐ๋ณธ DNS ๋„๋ฉ”์ธ์ธ .cluster.local๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด Fleet์— ์ด ๋™์ž‘์ด ์‚ฌ์šฉ ์„ค์ •๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ํ•œ Envoy๋งŒ ์‚ฌ์šฉํ•˜์—ฌ JWKS๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋Š” PILOT_JWT_ENABLE_REMOTE_JWKS=envoy Istio ์˜ต์…˜๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. VPCSC_GA_SUPPORTED ์กฐ๊ฑด์ด ์—†๋Š” ์„ค์น˜(์•„๋ž˜ ์ฐธ๊ณ )์— ๋น„ํ•ด ServiceEntry ๋ฐ DestinationRule ๊ตฌ์„ฑ์— ์ถ”๊ฐ€ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. requestauthn-with-se.yaml.tmpl ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ VPC ์„œ๋น„์Šค ์ œ์–ด๊ฐ€ ์ง€์›๋˜๋Š”์ง€(์ฆ‰, VPCSC_GA_SUPPORTED ์กฐ๊ฑด์ด ํ‘œ์‹œ๋˜๋Š”์ง€) ํ™•์ธํ•˜์—ฌ ํ˜„์žฌ ์ž‘์—… ๋ชจ๋“œ๊ฐ€ PILOT_JWT_ENABLE_REMOTE_JWKS=envoy์™€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ด€๋ฆฌํ˜• ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ์ถ”๊ฐ€ ์‚ฌ์ด๋“œ์นด(Cloud Service Mesh ์‚ฌ์ด๋“œ์นด ์ œ์™ธ)๊ฐ€ ์—†๋Š” ์›Œํฌ๋กœ๋“œ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ฐจ์ด์ 

ISTIOD์™€ TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„ ๊ฐ„์— ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ ๊ตฌํ˜„์„ ํ™•์ธํ•˜๋ ค๋ฉด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„ ์‹๋ณ„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • โ€“ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • โ€  - ๊ธฐ๋Šฅ API๊ฐ€ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ๊ฐ„์— ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • * โ€“ ์„ ํƒ์  ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์„ค์ • ๋˜๋Š” ๊ธฐ๋Šฅ ํ…Œ์ด๋ธ”์— ๋งํฌ๋œ ๊ธฐ๋Šฅ ๊ฐ€์ด๋“œ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํ”Œ๋žซํผ์— ์ง€์›๋˜๊ณ  ์‚ฌ์šฉ ์„ค์ •๋  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ยง โ€“ ๊ธฐ๋Šฅ์ด ํ—ˆ์šฉ ๋ชฉ๋ก์—์„œ ์ง€์›๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ด€๋ฆฌํ˜• Anthos Service Mesh์˜ ์ด์ „ ์‚ฌ์šฉ์ž๋Š” ์กฐ์ง ์ˆ˜์ค€์—์„œ ์ž๋™์œผ๋กœ ํ—ˆ์šฉ ๋ชฉ๋ก์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉ ๋ชฉ๋ก ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด Google Cloud ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์„ธ์š”.
  • โ€“ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ง€์›๋˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋ฐ ์„ ํƒ์  ๊ธฐ๋Šฅ์€ Google Cloud์ง€์›ํŒ€์—์„œ ์™„์ „ํ•˜๊ฒŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ํ‘œ์— ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜์—ด๋˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์€ ์ตœ์„ ์˜ ์ง€์›์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์„ ๊ฒฐ์ •ํ•˜๋Š” ์š”์†Œ

Fleet์—์„œ ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋ฅผ ์ฒ˜์Œ์œผ๋กœ ํ”„๋กœ๋น„์ €๋‹ํ•˜๋ฉด ์‚ฌ์šฉํ•  ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๊ตฌํ˜„์ด ํ•ด๋‹น Fleet์—์„œ ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜๋Š” ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌํ˜• Cloud Service Mesh์— ์˜จ๋ณด๋”ฉํ•˜๋Š” ์ƒˆ Fleet์€ ํŠน์ • ์˜ˆ์™ธ๋ฅผ ์ œ์™ธํ•˜๊ณ  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ์กด ๊ด€๋ฆฌํ˜• Cloud Service Mesh ์‚ฌ์šฉ์ž๋Š” 2024๋…„ 6์›” 30์ผ๊นŒ์ง€ ๊ฐ™์€ Google Cloud์กฐ์ง์˜ ์ƒˆ Fleet์„ ๊ด€๋ฆฌํ˜• Cloud Service Mesh์— ์˜จ๋ณด๋”ฉํ•  ๋•Œ ISTIOD ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž ์ค‘ ํ•œ ๋ช…์ธ ๊ฒฝ์šฐ ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์—ฌ ์ด ๋™์ž‘์„ ๋ฏธ์„ธ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ์‚ฌ์šฉ๋Ÿ‰์ด ๋ณ€๊ฒฝ ์—†์ด TRAFFIC_DIRECTOR ๊ตฌํ˜„๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž๋Š” 2024๋…„ 9์›” 8์ผ๊นŒ์ง€ ISTIOD ๊ตฌํ˜„์„ ๊ณ„์† ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์„œ๋น„์Šค ๊ณต์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)
  • ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ๋•Œ Fleet์˜ Google Cloud ์šฉ GKE ํด๋Ÿฌ์Šคํ„ฐ์— ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด Cloud Service Mesh ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ ISTIOD ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์ด ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค.
  • Fleet์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ GKE Sandbox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ด€๋ฆฌํ˜• Cloud Service Mesh๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ๋•Œ ISTIOD ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์ด ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌํ˜• ์ œ์–ด ์˜์—ญ ์ง€์› ๊ธฐ๋Šฅ

์„ค์น˜, ์—…๊ทธ๋ ˆ์ด๋“œ, ๋กค๋ฐฑ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Fleet ๊ธฐ๋Šฅ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GKE ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜
Mesh CA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ASM 1.9 ๋ฒ„์ „์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ
1.9 ์ด์ „์˜ Cloud Service Mesh ๋ฒ„์ „์—์„œ ์ง์ ‘(๊ฑด๋„ˆ๋›ฐ๊ธฐ ์ˆ˜์ค€) ์—…๊ทธ๋ ˆ์ด๋“œ(๊ฐ„์ ‘ ์—…๊ทธ๋ ˆ์ด๋“œ ์„ค๋ช… ์ฐธ์กฐ)
Istio OSS์—์„œ ์ง์ ‘(๊ฑด๋„ˆ๋›ฐ๊ธฐ ์ˆ˜์ค€) ์—…๊ทธ๋ ˆ์ด๋“œ(๊ฐ„์ ‘ ์—…๊ทธ๋ ˆ์ด๋“œ ์„ค๋ช… ์ฐธ์กฐ)
Istio-on-GKE ๋ถ€๊ฐ€๊ธฐ๋Šฅ์—์„œ ์ง์ ‘(๊ฑด๋„ˆ๋›ฐ๊ธฐ ์ˆ˜์ค€) ์—…๊ทธ๋ ˆ์ด๋“œ(๊ฐ„์ ‘ ์—…๊ทธ๋ ˆ์ด๋“œ ์„ค๋ช… ์ฐธ์กฐ)
์„ ํƒ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์„ค์ •

ํ™˜๊ฒฝ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์ง€์›๋˜๋Š” ๋ฆฌ์ „ ์ค‘ ํ•˜๋‚˜์—์„œ ํ˜„์žฌ ์ถœ์‹œ ์ฑ„๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” GKE ๋ฒ„์ „
์ง€์›๋˜๋Š” ๋ฆฌ์ „ ์ค‘ ํ•˜๋‚˜์˜ GKE Autopilot ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ˜„์žฌ ์ถœ์‹œ ์ฑ„๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” GKE ๋ฒ„์ „
Google Cloud ์™ธ๋ถ€ ํ™˜๊ฒฝ(GKE Enterprise ์˜จํ”„๋ ˆ๋ฏธ์Šค, ๊ธฐํƒ€ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ GKE Enterprise, Amazon EKS, Microsoft AKS ๋˜๋Š” ๊ธฐํƒ€ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ)

ํ™•์žฅ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
ํด๋Ÿฌ์Šคํ„ฐ๋‹น 1,000๊ฐœ ์„œ๋น„์Šค ๋ฐ 5,000๊ฐœ ์›Œํฌ๋กœ๋“œ
๋ฉ”์‹œ๋‹น 50๊ฐœ์˜ ํ—ค๋“œ๋ฆฌ์Šค ์„œ๋น„์Šค ํฌํŠธ, ํ—ค๋“œ๋ฆฌ์Šค ์„œ๋น„์Šค ํฌํŠธ๋‹น 36๊ฐœ์˜ ํฌ๋“œ

ํ”Œ๋žซํผ ํ™˜๊ฒฝ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
๋‹จ์ผ ๋„คํŠธ์›Œํฌ
๋‹ค์ค‘ ๋„คํŠธ์›Œํฌ
๋‹จ์ผ ํ”„๋กœ์ ํŠธ
๊ณต์œ  VPC๊ฐ€ ํฌํ•จ๋œ ๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ

๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
๋‹ค์ค‘ ๊ธฐ๋ณธ
๊ธฐ๋ณธ ์›๊ฒฉ
์„ ์–ธ์  API๋ฅผ ์‚ฌ์šฉํ•œ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰
์›๊ฒฉ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•œ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰
์„ ์–ธ์  API ๋ฐ ๊ฐ„๋‹จํ•œ ํ† ํด๋กœ์ง€๋ฅผ ์‚ฌ์šฉํ•œ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰

์šฉ์–ด์— ๋Œ€ํ•œ ์ฐธ๊ณ ์‚ฌํ•ญ

  • ๋‹ค์ค‘ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ํ•ด๋‹น ๊ตฌ์„ฑ์„ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์— ๋ณต์ œํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์›๊ฒฉ ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ ๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ตฌ์„ฑ์„ ํฌํ•จํ•˜๊ณ  ์ •๋ณด ์†Œ์Šค๋กœ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค.
  • Cloud Service Mesh๋Š” ์ผ๋ฐ˜ ์—ฐ๊ฒฐ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ„์†Œํ™”๋œ ๋„คํŠธ์›Œํฌ ์ •์˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์ธ์Šคํ„ด์Šค๋Š” ๊ฒŒ์ดํŠธ์›จ์ด ์—†์ด ์ง์ ‘ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ํ† ํด๋กœ์ง€๋Š” Fleet์˜ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰์— ์ฐธ์—ฌํ•˜๊ฑฐ๋‚˜ ์ฐธ์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ณต์žกํ•œ ํ† ํด๋กœ์ง€์—๋Š” (a) ๋‹จ๋ฐฉํ–ฅ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰(์˜ˆ: ํด๋Ÿฌ์Šคํ„ฐ A๋Š” ํด๋Ÿฌ์Šคํ„ฐ B์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ ๋ฐ˜๋Œ€๋Š” ๋ถˆ๊ฐ€๋Šฅํ•จ) ๋ฐ (b) ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์—”๋“œํฌ์ธํŠธ ๊ฒ€์ƒ‰ ๋„คํŠธ์›Œํฌ(์˜ˆ: ํด๋Ÿฌ์Šคํ„ฐ A์™€ B๋Š” ์„œ๋กœ์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ณ  ํด๋Ÿฌ์Šคํ„ฐ C์™€ D๋Š” ์„œ๋กœ์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ A/B์™€ C/D๋Š” ์„œ๋กœ์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Œ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ด๋ฏธ์ง€

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Distroless ํ”„๋ก์‹œ ์ด๋ฏธ์ง€ โ€ 

โ€  ๊ด€๋ฆฌํ˜•(TD) ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ํฌํ•จ๋œ Cloud Service Mesh๋Š” distroless ์ด๋ฏธ์ง€ ์œ ํ˜•๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Distroless ์ด๋ฏธ์ง€์—๋Š” ์ตœ์†Œํ•œ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ bash ๋˜๋Š” curl๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๋ช…๋ น์–ด๋Š” distroless ์ด๋ฏธ์ง€์— ์—†์œผ๋ฏ€๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ž„์‹œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ ์›Œํฌ๋กœ๋“œ ํฌ๋“œ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฒ€์‚ฌํ•˜๊ณ  ์ปค์Šคํ…€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋Š” Cloud Service Mesh ๋กœ๊ทธ ์ˆ˜์ง‘์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ณด์•ˆ

VPC ์„œ๋น„์Šค ์ œ์–ด

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
VPC ์„œ๋น„์Šค ์ œ์–ด

์ธ์ฆ์„œ ๋ฐฐํฌ ๋ฐ ์ˆœํ™˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์›Œํฌ๋กœ๋“œ ์ธ์ฆ์„œ ๊ด€๋ฆฌ
์ธ๊ทธ๋ ˆ์Šค ๋ฐ ์ด๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์™ธ๋ถ€ ์ธ์ฆ์„œ ๊ด€๋ฆฌ

์ธ์ฆ ๊ธฐ๊ด€(CA) ์ง€์›

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Cloud Service Mesh ์ธ์ฆ ๊ธฐ๊ด€
Certificate Authority Service
Istio CA
์ปค์Šคํ…€ CA์™€ ํ†ตํ•ฉ

๋ณด์•ˆ ๊ธฐ๋Šฅ

Istio ๋ณด์•ˆ ๊ธฐ๋Šฅ ์ง€์› ์™ธ์—๋„ Cloud Service Mesh๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋˜๋„๋ก ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
IAP ํ†ตํ•ฉ
์ตœ์ข… ์‚ฌ์šฉ์ž ์ธ์ฆ
์—ฐ์Šต ์‹คํ–‰ ๋ชจ๋“œ
๊ฑฐ๋ถ€ ๋กœ๊น…
๊ฐ์‚ฌ ์ •์ฑ…(์ง€์›๋˜์ง€ ์•Š์Œ)

์Šน์ธ ์ •์ฑ…

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์Šน์ธ v1beta1 ์ •์ฑ… โ€ 
์ปค์Šคํ…€ ์Šน์ธ ์ •์ฑ… ยง

โ€  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์€ rules.from.source.RemoteIp ๋ฐ rules.from.source.NotRemoteIp ํ•„๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”ผ์–ด ์ธ์ฆ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์ž๋™ mTLS
mTLS PERMISSIVE ๋ชจ๋“œ
mTLS STRICT ๋ชจ๋“œ * *
mTLS DISABLE ๋ชจ๋“œ

์ธ์ฆ ์š”์ฒญ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
JWT ์ธ์ฆ(์ฐธ๊ณ  1)
JWT ํด๋ ˆ์ž„ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…
ํ—ค๋”์— ๋Œ€ํ•œ JWT ์‚ฌ๋ณธ ํด๋ ˆ์ž„

์ฐธ๊ณ :

  1. ์ œ3์ž JWT๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  2. RequestAuthentication API๋ฅผ ์ •์˜ํ•  ๋•Œ JWKSURI์— ์ „์ฒด FQDN/ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ด€๋ฆฌํ˜• ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ JWKS URI๋ฅผ ์ง€์ •ํ•  ๋•Œ Envoy๊ฐ€ JWKS๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ ๋ถ„์„

์ธก์ •ํ•ญ๋ชฉ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Cloud Monitoring(HTTP ํ”„๋ก์‹œ ๋‚ด ์ธก์ •ํ•ญ๋ชฉ)
Cloud Monitoring(TCP ํ”„๋ก์‹œ ๋‚ด ์ธก์ •ํ•ญ๋ชฉ)
Grafana๋กœ Prometheus ์ธก์ •ํ•ญ๋ชฉ ๋‚ด๋ณด๋‚ด๊ธฐ(Envoy ์ธก์ •ํ•ญ๋ชฉ๋งŒ ํ•ด๋‹น) * *
Kiali๋กœ Prometheus ์ธก์ •ํ•ญ๋ชฉ ๋‚ด๋ณด๋‚ด๊ธฐ
Cloud Service Mesh ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๋Š” Google Cloud Managed Service for Prometheus * *
Istio Telemetry API โ€ 
ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€์˜ ์ปค์Šคํ…€ ์–ด๋Œ‘ํ„ฐ/๋ฐฑ์—”๋“œ
์ž„์˜ ์›๊ฒฉ ๋ถ„์„ ๋ฐ ๋กœ๊น… ๋ฐฑ์—”๋“œ

โ€  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์•ก์„ธ์Šค ๋กœ๊ทธ ๋ฐ ํŠธ๋ ˆ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Istio ์›๊ฒฉ ๋ถ„์„ API์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ํŠธ๋ ˆ์ด์Šค ์ƒ˜ํ”Œ๋ง ๋ ˆ์ดํŠธ ๊ตฌ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ์š”์ฒญ ๋กœ๊น…

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
ํŠธ๋ž˜ํ”ฝ ๋กœ๊ทธ
์•ก์„ธ์Šค ๋กœ๊ทธ * *

์ถ”์ 

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Cloud Trace * *
Jaeger ์ถ”์ (๊ณ ๊ฐ ๊ด€๋ฆฌํ˜• Jaeger ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ํ˜ธํ™˜ ๊ฐ€๋Šฅ
Zipkin ์ถ”์ (๊ณ ๊ฐ ๊ด€๋ฆฌํ˜• Zipkin ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ํ˜ธํ™˜ ๊ฐ€๋Šฅ

๋„คํŠธ์›Œํ‚น

ํŠธ๋ž˜ํ”ฝ ๊ฐ€๋กœ์ฑ„๊ธฐ ๋ฐ ๋ฆฌ๋””๋ ‰์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
CAP_NET_ADMIN๊ณผ ํ•จ๊ป˜ init ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” iptables ์‚ฌ์šฉ โ€ 
Istio ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค(CNI)
ํ™”์ดํŠธ๋ฐ•์Šค ์‚ฌ์ด๋“œ์นด

โ€  init ์ปจํ…Œ์ด๋„ˆ ๋Œ€์‹  ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค(CNI)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ ์ง€์›

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
IPv4
HTTP/1.1
HTTP/2
TCP ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ(์ฐธ๊ณ  1)
gRPC
IPv6 โ€ 

์ฐธ๊ณ :

  1. TCP๋Š” ๋„คํŠธ์›Œํ‚น ๋ฐ TCP ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘์— ์ง€์›๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด์ง€๋งŒ ๋ณด๊ณ ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ธก์ •ํ•ญ๋ชฉ์€ Google Cloud ์ฝ˜์†”์˜ HTTP ์„œ๋น„์Šค์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  2. WebSocket, MongoDB, Redis, Kafka, Cassandra, RabbitMQ, Cloud SQL ๋“ฑ์˜ ํ”„๋กœํ† ์ฝœ์„ ์œ„ํ•œ ๋ ˆ์ด์–ด 7 ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์„œ๋น„์Šค๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. TCP ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ์ง€์›์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํ† ์ฝœ์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TCP ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์—์„œ ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ(์˜ˆ: Kafka๊ฐ€ ํ”„๋กœํ† ์ฝœ๋ณ„ ์‘๋‹ต์—์„œ ๋ฆฌ๋””๋ ‰์…˜ ์ฃผ์†Œ๋ฅผ ์ „์†กํ•˜๊ณ  ์ด ๋ฆฌ๋””๋ ‰์…˜์ด Cloud Service Mesh์˜ ๋ผ์šฐํŒ… ๋กœ์ง๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)์—๋Š” ํ”„๋กœํ† ์ฝœ์ด ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. โ€  ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC์—์„œ IPv6 ์ด์ค‘ ์Šคํƒ ๊ธฐ๋Šฅ์€ C++ ๋ฐ Python, gRPC Go v1.71 ๋˜๋Š” gRPC Node.js v1.12์˜ gRPC 1.66.1 ์ด์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ์Šคํƒ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” gRPC ๋ฒ„์ „์œผ๋กœ ์ด์ค‘ ์Šคํƒ ๊ธฐ๋Šฅ์„ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” Traffic Director์—์„œ ์ „์†กํ•œ ์ฒซ ๋ฒˆ์งธ ์ฃผ์†Œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Envoy ๋ฐฐํฌ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์‚ฌ์ด๋“œ์นด
์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด
์‚ฌ์ด๋“œ์นด์—์„œ ์ง์ ‘ ์ด๊ทธ๋ ˆ์Šค
์ด๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•œ ์ด๊ทธ๋ ˆ์Šค * *

CRD ์ง€์›

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์‚ฌ์ด๋“œ์นด ๋ฆฌ์†Œ์Šค
์„œ๋น„์Šค ํ•ญ๋ชฉ ๋ฆฌ์†Œ์Šค
๋น„์œจ, ๊ฒฐํ•จ ์‚ฝ์ž…, ๊ฒฝ๋กœ ์ผ์น˜, ๋ฆฌ๋””๋ ‰์…˜, ์žฌ์‹œ๋„, ์žฌ์ž‘์„ฑ, ์ œํ•œ ์‹œ๊ฐ„, ์žฌ์‹œ๋„, ๋ฏธ๋Ÿฌ๋ง, ํ—ค๋” ์กฐ์ž‘, CORS ๋ผ์šฐํŒ… ๊ทœ์น™
`EnvoyFilter` API ยง
`WasmPlugin` API
Istio Operator

Istio ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์šฉ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์„œ๋“œ ํŒŒํ‹ฐ ์™ธ๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ
Google Cloud ๋‚ด๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ * *

์„œ๋น„์Šค ๋ฉ”์‹œ ํด๋ผ์šฐ๋“œ ๊ฒŒ์ดํŠธ์›จ์ด

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
์„œ๋น„์Šค ๋ฉ”์‹œ ํด๋ผ์šฐ๋“œ ๊ฒŒ์ดํŠธ์›จ์ด

Kubernetes Gateway API

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Kubernetes Gateway API

๋ถ€ํ•˜ ๋ถ„์‚ฐ ์ •์ฑ…

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
๋ผ์šด๋“œ ๋กœ๋นˆ
์ตœ์†Œ ์—ฐ๊ฒฐ ์ˆ˜
๋ฌด์ž‘์œ„
ํŒจ์Šค ์Šค๋ฃจ
์ผ๊ด€๋œ ํ•ด์‹œ
์ง€์—ญ
GCPTrafficDistributionPolicy
GCPBackendPolicy

์„œ๋น„์Šค ํ•ญ๋ชฉ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
ServiceEntry v1beta1 โ€ 

โ€  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์€ ๋‹ค์Œ ํ•„๋“œ์™€ ํ•„๋“œ์˜ ๊ฐ’์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • workloadSelector ํ•„๋“œ
  • endpoints[].network ํ•„๋“œ
  • endpoints[].locality ํ•„๋“œ
  • endpoints[].weight ํ•„๋“œ
  • endpoints[].serviceAccount ํ•„๋“œ
  • resolution ํ•„๋“œ์˜ DNS_ROUND_ROBIN ๊ฐ’
  • location ํ•„๋“œ์˜ MESH_INTERNAL ๊ฐ’
  • endpoints[].address ํ•„๋“œ์˜ Unix ๋„๋ฉ”์ธ ์†Œ์ผ“ ์ฃผ์†Œ
  • subjectAltNames ํ•„๋“œ

๋Œ€์ƒ ๊ทœ์น™

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
DestinationRule v1beta1 โ€ 

โ€  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์€ ๋‹ค์Œ ํ•„๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • trafficPolicy.loadBalancer.localityLbSetting ํ•„๋“œ
  • trafficPolicy.tunnel ํ•„๋“œ
  • trafficPolicy.tls.credentialName ํ•„๋“œ
  • trafficPolicy.portLevelSettings[].tls.credentialName ํ•„๋“œ

๋˜ํ•œ TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์—์„œ๋Š” ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ •์˜ํ•˜๋Š” ๋Œ€์ƒ ๊ทœ์น™์ด Kubernetes ์„œ๋น„์Šค ๋˜๋Š” ServiceEntry์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Sidecar

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Sidecar v1beta1 โ€ 

โ€  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์€ ๋‹ค์Œ ํ•„๋“œ์™€ ํ•„๋“œ์˜ ๊ฐ’์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ingress ํ•„๋“œ
  • egress.port ํ•„๋“œ
  • egress.bind ํ•„๋“œ
  • egress.captureMode ํ•„๋“œ
  • inboundConnectionPool ํ•„๋“œ

MeshConfig

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
DiscoverySelectors โ€ 
LocalityLB ยง
ExtensionProviders ยง
CACert
ImageType - distroless ยง
OutboundTrafficPolicy ยง
defaultProviders.accessLogging
defaultProviders.tracing
defaultConfig.tracing.stackdriver ยง
accessLogFile ยง

โ€  TRAFFIC_DIRECTOR ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌํ˜„์€ discoverySelectors๋กœ ๊ตฌ์„ฑ๋œ ๋ฉ”์‹œ์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์ˆ˜์ •๋  ๋•Œ ํ•ฉ์„ฑ ์„œ๋น„์Šค ๋ฐ ์ƒ์„ฑ๋œ ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน์„ ์ž๋™์œผ๋กœ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋ ค๋ฉด ๋” ์ด์ƒ discoverySelectors์— ์ง€์ •๋˜์ง€ ์•Š์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ํ•ฉ์„ฑ ์„œ๋น„์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•˜๊ณ  ์ถ”๊ฐ€๋œ ์„œ๋น„์Šค ์ฃผ์„์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ •๋ฆฌ ์•ˆ๋‚ด๋Š” ์ •๋ฆฌ ๋ฌธ์ œ ํ•ด๊ฒฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ProxyConfig

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
DNS ํ”„๋ก์‹œ(ISTIO_META_DNS_CAPTURE, ISTIO_META_DNS_AUTO_ALLOCATE)
HTTP/1.0 ์ง€์›(ISTIO_META_NETWORK)
์ด๋ฏธ์ง€ ์„ ํƒ(distroless ๋˜๋Š” ๊ธฐ๋ณธ ์ด๋ฏธ์ง€) โ€ 
Kubernetes ๋„ค์ดํ‹ฐ๋ธŒ ์‚ฌ์ด๋“œ์นด(ENABLE_NATIVE_SIDECARS)

โ€  ์‚ฝ์ž…์—๋Š” distroless ์ด๋ฏธ์ง€๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฆฌ์ „

GKE ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹ค์Œ ๋ฆฌ์ „ ์ค‘ ํ•˜๋‚˜์— ๋˜๋Š” ๋‹ค์Œ ๋ฆฌ์ „ ์ค‘ ํ•˜๋‚˜์˜ ์˜์—ญ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์—ญ ์œ„์น˜
africa-south1 ์š”ํ•˜๋„ค์Šค๋ฒ„๊ทธ
asia-east1 ํƒ€์ด์™„
asia-east2 ํ™์ฝฉ
asia-northeast1 ์ผ๋ณธ ๋„์ฟ„
asia-northeast2 ์ผ๋ณธ ์˜ค์‚ฌ์นด
asia-northeast3 ๋Œ€ํ•œ๋ฏผ๊ตญ
asia-south1 ์ธ๋„ ๋ญ„๋ฐ”์ด
asia-south2 ์ธ๋„ ๋ธ๋ฆฌ
asia-southeast1 ์‹ฑ๊ฐ€ํฌ๋ฅด
asia-southeast2 ์ž์นด๋ฅดํƒ€
australia-southeast1 ์˜ค์ŠคํŠธ๋ ˆ์ผ๋ฆฌ์•„ ์‹œ๋“œ๋‹ˆ
australia-southeast2 ์˜ค์ŠคํŠธ๋ ˆ์ผ๋ฆฌ์•„ ๋ฉœ๋ฒ„๋ฅธ
europe-central2 ํด๋ž€๋“œ
europe-north1 ํ•€๋ž€๋“œ
europe-southwest1 ์ŠคํŽ˜์ธ
europe-west1 ๋ฒจ๊ธฐ์—
europe-west2 ์ž‰๊ธ€๋žœ๋“œ
europe-west3 ๋…์ผ ํ”„๋ž‘ํฌํ‘ธ๋ฅดํŠธ
europe-west4 ๋„ค๋œ๋ž€๋“œ
europe-west6 ์Šค์œ„์Šค
europe-west8 ์ดํƒˆ๋ฆฌ์•„ ๋ฐ€๋ผ๋…ธ
europe-west9 ํ”„๋ž‘์Šค
europe-west10 ๋…์ผ ๋ฒ ๋ฅผ๋ฆฐ
europe-west12 ์ดํƒˆ๋ฆฌ์•„ ํ† ๋ฆฌ๋…ธ
me-central1 ๋„ํ•˜
me-central2 ์‚ฌ์šฐ๋””์•„๋ผ๋น„์•„ ๋‹ด๋ง˜
me-west1 ํ…”์•„๋น„๋ธŒ
northamerica-northeast1 ์บ๋‚˜๋‹ค ๋ชฌํŠธ๋ฆฌ์˜ฌ
northamerica-northeast2 ์บ๋‚˜๋‹ค ํ† ๋ก ํ† 
southamerica-east1 ๋ธŒ๋ผ์งˆ
southamerica-west1 ์น ๋ ˆ
us-central1 ์•„์ด์˜ค์™€
us-east1 ์‚ฌ์šฐ์Šค์บ๋กค๋ผ์ด๋‚˜
us-east4 ๋ถ๋ฒ„์ง€๋‹ˆ์•„
us-east5 ์˜คํ•˜์ด์˜ค
us-south1 ๋Œˆ๋Ÿฌ์Šค
us-west1 ์˜ค๋ฆฌ๊ฑด
us-west2 ๋กœ์Šค์•ค์ ค๋ ˆ์Šค
us-west3 ์†”ํŠธ๋ ˆ์ดํฌ์‹œํ‹ฐ
us-west4 ๋ผ์Šค๋ฒ ์ด๊ฑฐ์Šค

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
Google Cloud ์ฝ˜์†”์˜ Cloud Service Mesh ๋Œ€์‹œ๋ณด๋“œ
Cloud Monitoring
Cloud Logging

๋„๊ตฌ

๊ธฐ๋Šฅ ๊ด€๋ฆฌํ˜•(TD) ๊ด€๋ฆฌํ˜•(istiod)
gcloud beta container fleet mesh debug ๋„๊ตฌ