ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ื ืื˜ื™ืฅ. ื˜ืจืึทื ืกืœ.: ืกืขืจื•ื•ื™ืก ืžืขืฉืขืก ื”ืึธื‘ืŸ ื‘ืืฉื˜ื™ืžื˜ ื•ื•ืขืจืŸ ืึท ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืœื™ื™ื–ื•ื ื’ ืื™ืŸ ืžืึธื“ืขืจืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืคึฟืึทืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ืึธืš ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ื›ืึธื˜ืฉ Istio ืงืขืŸ ื–ื™ื™ืŸ ืื•ื™ืฃ ื“ื™ ืœื™ืคืŸ ืคื•ืŸ ืคื™ืœืข DevOps ืขื ื“ื–ืฉืึทื ื™ืจื–, ืขืก ืื™ื– ืึท ืคืขืจืœื™ ื ื™ื™ึท ืคึผืจืึธื“ื•ืงื˜ ื•ื•ืึธืก, ื›ืึธื˜ืฉ ืคื•ืœืฉื˜ืขื ื“ื™ืง ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืขืก ื’ื™ื˜, ืงืขืŸ ื“ืึทืจืคืŸ ืึท ื‘ืึทื˜ื™ื™ื˜ื™ืง ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืฆื™ื™ื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜. ื“ืขืจ ื“ื™ื™ึทื˜ืฉ ื™ื ื–ืฉืขื ื™ืจ ืจื™ื ืึธืจ ืžืึทืœืึธืงื•, ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื•ื•ืึธืœืงืŸ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืคึฟืึทืจ ื’ืจื•ื™ืก ืงืœื™ื™ืึทื ืฅ ืื™ืŸ ื“ื™ ื˜ืขืœืขืงืึธืžืžื•ื ื™ืงืึทื˜ื™ืึธืŸ ืคื™ืจืžืข ืึธืจืึทื ื“ื–ืฉ ื ืขื˜ื•ื•ืึธืจืงืก, ื”ืื˜ ื’ืขืฉืจื™ื‘ืŸ ืึท ื•ื•ื•ื ื“ืขืจืœืขืš ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืžืึทื˜ืขืจื™ืึทืœืก ื•ื•ืึธืก ืœืึธื–ืŸ ืื™ืจ ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืื•ืŸ ื˜ื™ืฃ ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ืื™ืŸ ื™ืกื˜ื™ืึธ. ืขืจ ื”ื™ื™ื‘ื˜ ื–ื™ื™ืŸ ื’ืขืฉื™ื›ื˜ืข ืžื™ื˜ ื•ื•ืึธืก ื™ืกื˜ื™ืึธ ืงืขื ืขืŸ ื˜ืึธืŸ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืื•ืŸ ื•ื•ื™ ืื™ืจ ืงืขื ืขืŸ ื’ืขืฉื•ื•ื™ื ื“ ื–ืขืŸ ืขืก ืžื™ื˜ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืื•ื™ื’ืŸ.

ื™ืกื˜ื™ืึธ - ืึทืŸ ืขืคึฟืŸ ืžืงื•ืจ ืคึผืจื•ื™ืขืงื˜ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ ืžื™ื˜ืึทืจื‘ืขื˜ ืžื™ื˜ ื˜ื™ืžื– ืคื•ืŸ Google, IBM ืื•ืŸ Lyft. ืขืก ืกืึทืœื•ื•ื– ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ื– ื•ื•ืึธืก ืฉื˜ื™ื™ืขืŸ ืื™ืŸ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก-ื‘ืื–ื™ืจื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™:

  • ืคืึทืจืงืขืจ ืžืึทื ืึทื’ืขืžืขื ื˜: ื˜ื™ื™ืžืึทื•ืฅ, ืจื™ื˜ืจื™ืขืก, ืžืึทืกืข ื‘ืึทืœืึทื ืกื™ื ื’;
  • ื–ื™ื›ืขืจืงื™ื™ึทื˜: ืกื•ืฃ ื‘ืึทื ื™ืฆืขืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ;
  • ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™: ื˜ืจื™ื™ืกื™ื ื’, ืžืึธื ื™ื˜ืึธืจื™ื ื’, ืœืึธื’ื™ื ื’.

ืึทืœืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืึทืœื•ื•ื“ ืื•ื™ืฃ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื“ืจื’ื”, ืึธื‘ืขืจ ื ืึธืš ื“ื™ื™ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก ื•ื•ืขื˜ ื ื™ื˜ ืžืขืจ ื–ื™ื™ืŸ "ืžื™ืงืจืึธ". ืึทืœืข ื“ื™ ืขืงืกื˜ืจืข ืžื™ ืฆื• ืกืึธืœื•ื•ืข ื“ื™ ืคึผืจืึธื‘ืœืขืžืก ืื™ื– ืึท ื•ื•ื™ืกื˜ ืคื•ืŸ ืคื™ืจืžืข ืจืขืกื•ืจืกืŸ ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื’ืœื™ื™ึทืš ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ื•ื•ืขืจื˜. ื–ืืœ ืก ืงื•ืง ื‘ื™ื™ึท ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ:

ืคึผืจืึธื™ืขืงื˜ ืžืึทื ืึทื’ืขืจ: ื•ื•ื™ ืœืึทื ื’ ืขืก ื ืขืžื˜ ืฆื• ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืฉื˜ืจื™ืš?
ื“ืขื•ื•ืขืœืึธืคึผืขืจ: ืฆื•ื•ื™ื™ ืกืคึผืจื™ื ืฅ.

MP: ื•ื•ืึธืก? .. ืขืก ืื™ื– ื ืึธืจ CRUD!
R: ื˜ืืŸ CRUD ืื™ื– ื“ืขืจ ื’ืจื™ื ื’ ื˜ื™ื™ืœ, ืึธื‘ืขืจ ืžื™ืจ ื ืึธืš ื“ืึทืจืคึฟืŸ ืฆื• ืึธื˜ืขื ื˜ืึทืงื™ื™ื˜ ืื•ืŸ ืึธื˜ืขืจื™ื™ื– ื™ื•ื–ืขืจื– ืื•ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก. ื–ื™ื ื˜ ื“ื™ ื ืขืฅ ืื™ื– ืึทื ืจื™ืœื™ื™ืึทื‘ืึทืœ, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืจื™ืคึผื™ื˜ื™ื“ ืจื™ืงื•ื•ืขืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืงืจื™ื™ึทื– ืฆื•ื™ืžืขืŸ ืžื•ืกื˜ืขืจ ืื™ืŸ ืงืœื™ื™ืึทื ืฅ. ืื•ื™ืš, ืฆื• ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ื’ืื ืฆืข ืกื™ืกื˜ืขื ื˜ื•ื˜ ื ื™ืฉื˜ ืงืจืึทืš, ืื™ืจ ื“ืึทืจืคึฟืŸ ื˜ื™ื™ืžืึทื•ืฅ ืื•ืŸ ื‘ืึทืœืงื›ืขื“ื– (ืคึฟืึทืจ ืžืขืจ ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ื‘ื™ื™ื“ืข ื“ืขืจืžืื ื˜ ืคึผืึทื˜ืขืจื ื–, ื–ืขืŸ ืฉืคึผืขื˜ืขืจ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ - ื‘ืขืขืจืขืš ื˜ืจืึทื ืกืœ.), ืื•ืŸ ืื™ืŸ ืกื“ืจ ืฆื• ื“ืขื˜ืขืงื˜ ืคึผืจืึธื‘ืœืขืžืก, ืžืึธื ื™ื˜ืึธืจื™ื ื’, ื˜ืจื™ื™ืกื™ื ื’, [โ€ฆ]

MP: ืึธื”, ืœืึธื–ืŸ ืื•ื ื“ื– ื ืึธืจ ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ื“ืขื ืฉื˜ืจื™ืš ืื™ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงื˜ ื“ื™ื ืกื˜.

ืื™ืš ื˜ืจืึทื›ื˜ืŸ ื“ืขืจ ื’ืขื“ืึทื ืง ืื™ื– ืงืœืึธืจ: ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ืกื˜ืขืคึผืก ืื•ืŸ ืžื™ ืคืืจืœืื ื’ื˜ ืฆื• ืœื™ื™ื’ืŸ ืื™ื™ืŸ ื“ื™ื ืกื˜ ืื™ื– ืจื™ื–ื™ืง. ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ื•ื•ื™ Istio ืจื™ืžื•ื•ื•ื– ืึทืœืข ื“ื™ ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ (ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื‘ื“ืขื” ืฆื• ื–ื™ื™ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง) ืคื•ืŸ ืกืขืจื•ื•ื™ืกืขืก.

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ื˜ืึธืŸ: ื“ืขืจ ืึทืจื˜ื™ืงืœ ืึทืกื•ืžื– ืึทื– ืื™ืจ ื”ืึธื‘ืŸ ืืจื‘ืขื˜ืŸ ื•ื•ื™ืกืŸ ืคื•ืŸ Kubernetes. ืึทื ื“ืขืจืฉ, ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืœื™ื™ืขื ืขืŸ ืžื™ื™ืŸ ื”ืงื“ืžื” ืฆื• Kubernetes ืื•ืŸ ื‘ืœื•ื™ื– ื ืึธืš ื•ื•ืึธืก ืคืึธืจื–ืขืฆืŸ ืœื™ื™ืขื ืขืŸ ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ.

ืื™ื“ืขืข

ืื™ืŸ ื ื•ื•ืขืœื˜ ืืŸ ืื™ืกื˜ื™ืื• ืžืื›ื˜ ืื™ื™ืŸ ืกืขืจื•ื•ื™ืก ื“ื™ืจืขืงื˜ืข ืคืืจืœืื ื’ืขืŸ ืฆื• ืืŸ ืื ื“ืขืจืŸ, ืื•ืŸ ืื™ืŸ ืคืืœ ืคื•ืŸ ื ื“ื•ืจื›ืคืืœ ื“ืืจืฃ ื“ื™ ืกืขืจื•ื•ื™ืก ืขืก ืืœื™ื™ื ืก ื‘ืื”ืื ื“ืœืขืŸ: ืžืื›ืŸ ื ื ื™ื™ืข ืคืจื•ืื•ื•, ืฆื•ืฉื˜ืขืœืŸ ื ืฆื™ื™ื˜-ืื•ื™ืก, ืขืคืขื ืขืŸ ื ืงืจื™ื™ื– ืฆื•ื™ืžืขืŸ ืืื–"ื• ื•.

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ื ืขืฅ ืคืึทืจืงืขืจ ืื™ืŸ Kubernetes

Istio ืึธืคืคืขืจืก ืึท ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืœื™ื™ื–ื•ื ื’, ื’ืึธืจ ืืคื’ืขืฉื™ื™ื“ื˜ ืคื•ืŸ ืกืขืจื•ื•ื™ืกืขืก ืื•ืŸ ืคืึทื ื’ืงืฉืึทื ื™ื ื’ ื“ื•ืจืš ื™ื ื˜ืขืจืคื™ืจื™ื ื’ ืžื™ื˜ ื ืขืฅ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข. ืื•ืŸ ืึทื–ื•ื™ ืขืก ื™ืžืคึผืœืึทืžืึทื ืฅ:

  • ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ: ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืกื˜ืึทื˜ื•ืก ืงืึธื“ ืื™ืŸ ื“ืขืจ ืขื ื˜ืคืขืจ, ืขืก ืคืืจืฉื˜ื™ื™ื˜ ืฆื™ ื“ื™ ื‘ืงืฉื” ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื•ืŸ ืฉื™ื™ึทืขืš-ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ ืขืก.
  • ืงืึทื ืึทืจื™ ืจืึธืœืึธื•ื•ืฅ: ืจื™ื“ืขืจืขืงืฅ ื‘ืœื•ื™ื– ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ ืคึผืจืึธืฆืขื ื˜ ืคื•ืŸ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืกืขืจื•ื•ื™ืก.
  • ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืžืขื˜ืจื™ืงืก: ื•ื•ื™ ืœืึทื ื’ ื”ืื˜ ืขืก ื ืขืžืขืŸ ืคึฟืึทืจ ื“ื™ ื“ื™ื ืกื˜ ืฆื• ืจื™ืกืคึผืึทื ื“?
  • ื˜ืจื™ื™ืกื™ื ื’ ืื•ืŸ ืึธื‘ืกืขืจื•ื•ืึทืฆื™ืข: ืžื•ืกื™ืฃ ืกืคึผืขืฆื™ืขืœ ื›ืขื“ืขืจื– ืฆื• ื™ืขื“ืขืจ ื‘ืงืฉื” ืื•ืŸ ื˜ืจืึทืกืขืก ื–ื™ื™ ืึทืจื™ื‘ืขืจ ื“ื™ ืงื ื•ื™ืœ.
  • ื–ื™ื›ืขืจืงื™ื™ึทื˜: ืจื™ื˜ืจื™ื•ื•ื– JWT ื˜ืึธืงืขืŸ, ืึธื˜ืขื ื˜ืึทืงื™ื™ืฅ ืื•ืŸ ืึธื˜ืขืจื™ื™ื–ื™ื– ื ื™ืฆืขืจืก.

ื“ืึธืก ื–ืขื ืขืŸ ื‘ืœื•ื™ื– ืึท ื‘ื™ืกืœ ืคื•ืŸ ื“ื™ ืคึผืึทืกืึทื‘ื™ืœืึทื˜ื™ื– (ื˜ืึทืงืข ื ืึธืจ ืึท ื‘ื™ืกืœ!) ืฆื• ื™ื ื˜ืจื™ื’ ืื™ืจ. ืื™ืฆื˜ ืœืึธื–ืŸ ืก ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ืื™ืŸ ื“ื™ ื˜ืขื›ื ื™ืฉ ื“ืขื˜ืึทื™ืœืก!

ื™ืกื˜ื™ืึธ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ

Istio ื™ื ื˜ืขืจืกืขืคึผื˜ ืึทืœืข ื ืขืฅ ืคืึทืจืงืขืจ ืื•ืŸ ืึทืคึผืœื™ื™ื– ืึท ืกื›ื•ื ืคื•ืŸ ื›ึผืœืœื™ื ืฆื• ืขืก, ื™ื ืกืขืจื˜ื™ื ื’ ืึท ืงืœื•ื’ ืคึผืจืึทืงืกื™ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืกื™ื™ื“ืงืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ืŸ ื™ืขื“ืขืจ ืคึผืึธื“. ืคึผืจืึทืงืกื™ื– ื•ื•ืึธืก ืึทืงื˜ืึทื•ื•ื™ื™ื˜ ืึทืœืข ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคืึธืจืขื ืึท ื“ืึทื˜ืึท ืคืœืึทืš, ืื•ืŸ ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืงืึทื ืคื™ื’ื™ืขืจื“ ื ื™ืฆืŸ ืงืึธื ื˜ืจืึธืœ ืคึผืœื™ื™ืŸ.

ื“ืึทื˜ืึท ืคืœืึทืš

ืคึผืจืึทืงืกื™ื– ื™ื ืกืขืจื˜ืึทื“ ืื™ืŸ ืคึผืึธื“ืก ืœืึธื–ืŸ Istio ืœื™ื™ื›ื˜ ื˜ืจืขืคืŸ ื“ื™ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืœืึธืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ื– ืคื•ืŸ ืจื™ื˜ืจื™ื™ ืื•ืŸ ืงืจื™ื™ึทื– ืฆื•ื™ืžืขืŸ.

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ื•ื•ื™ ืจืขื˜ืจื™ืขืก ืื•ืŸ ืงืจื™ื™ึทื– ื‘ืจื™ื™ืงื™ื ื’ ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ Envoy

ืกืึทืžืขืจื™ื™ื–:

  1. ืขื ื•ื•ื•ื™ (ืžื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ืึท ืคึผืจืึทืงืกื™ ืœื™ื’ืŸ ืื™ืŸ ืึท ืกื™ื™ื“ืงืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ, ื•ื•ืึธืก ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื•ื•ื™ ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืจืึธื“ื•ืงื˜ - ื‘ืขืขืจืขืš. ืื™ื‘ืขืจื–ืขืฆืŸ) ืกืขื ื“ื– ืึท ื‘ืงืฉื” ืฆื• ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ื ืกื˜ ื‘ ืื•ืŸ ืคื™ื™ืœื–.
  2. Envoy Sidecar ืคืจื•ื‘ื™ืจื˜ ื•ื•ื™ื“ืขืจ (ืคืจื•ื‘ื™ืจื˜ ื•ื•ื™ื“ืขืจ). (1)
  3. ื“ื™ ื‘ืงืฉื” ืคื™ื™ืœื– ืื•ืŸ ืื™ื– ืื•ืžื’ืขืงืขืจื˜ ืฆื• ื“ื™ ืคึผืจืึทืงืกื™ ื•ื•ืึธืก ื”ืึธื˜ ื’ืขืจื•ืคึฟืŸ ืขืก.
  4. ื“ืึธืก ืขืคึฟื ื˜ ืงืจื™ื™ึทื– ื‘ืจืขืึทืงืขืจ ืื•ืŸ ืจื•ืคื˜ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ื“ื™ื ืกื˜ ืคึฟืึทืจ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืจื™ืงื•ื•ืขืก. (2)

ื“ืึธืก ืžื™ื™ื ื˜ ืึทื– ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ื ื•ืฆืŸ ืืŸ ืื ื“ืขืจ ืจื™ื˜ืจื™ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ืžืึทื›ืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืจื™ื™ึทื– ื‘ืจืขืึทืงื™ื ื’ ืื•ืŸ ืกืขืจื•ื•ื™ืก ื•ืคื“ืขืงื•ื ื’ ืื™ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš X, Y ืึธื“ืขืจ Z. ืึทืœืข ื“ืขื ืื•ืŸ ืคื™ืœ ืžืขืจ ืื™ื– ื‘ื ื™ืžืฆื ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ ืื™ืŸ ื™ืกื˜ื™ืึธ ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ืงื™ื™ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ืงืึธื“.

ื’ืจื•ื™ืก! ืื™ืฆื˜ ืื™ืจ ื•ื•ื™ืœื˜ ืฆื• ื’ื™ื™ืŸ ืื•ื™ืฃ ืึท ื ืขืกื™ืข ืžื™ื˜ ื™ืกื˜ื™ืึธ, ืึธื‘ืขืจ ืื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ืขื˜ืœืขื›ืข ืกืคืงื•ืช, ืึธื•ืคึผืึทื ื“ ืคืจืื’ืขืก. ืื•ื™ื‘ ื“ืึธืก ืื™ื– ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืœื™ื™ื–ื•ื ื’ ืคึฟืึทืจ ืึทืœืข ืžืืœ ืื™ืŸ ืœืขื‘ืŸ, ืื™ืจ ื”ืึธื˜ ืึท ื ืึทื˜ื™ืจืœืขืš ื—ืฉื“: ื ืึธืš ืึทืœืข, ืึทืœืข ืึทื–ืึท ืกืึทืœื•ืฉืึทื ื– ืื™ืŸ ืคืึทืงื˜ ื–ืขื ืขืŸ ื•ืžืคึผืึทืกื™ืง ืคึฟืึทืจ ืงื™ื™ืŸ ืคืึทืœ.

ืื•ืŸ ืœืขืกืึธืฃ ืื™ืจ ืคืจืขื’ืŸ: "ืื™ื– ืขืก ืงื•ืกื˜ืึธืžื™ื–ืึทื‘ืœืข?"

ืื™ืฆื˜ ืื™ืจ ื–ืขื ื˜ ื’ืจื™ื™ื˜ ืคึฟืึทืจ ื“ื™ ื™ื ื ืขืกื™ืข, ืœืึธื–ืŸ ืื•ื ื“ื– ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš.

ืงืึธื ื˜ืจืึธืœ ืคึผืœื™ื™ืŸ

ืขืก ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื“ืจื™ื™ึท ืงืึทืžืคึผืึธื•ื ืึทื ืฅ: ืคึผื™ืœืึธื˜, ืžื™ืงืกืขืจ ะธ ืฆื™ื˜ืึทื“ืขืœ, ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืฆื•ื–ืึทืžืขืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืขื ื•ื•ื™ืก ืฆื• ืžืึทืจืฉืจื•ื˜ ืคืึทืจืงืขืจ, ื“ื•ืจื›ืคื™ืจืŸ ืคึผืึทืœืึทืกื™ื– ืื•ืŸ ืงืœื™ื™ึทื‘ืŸ ื˜ืขืœืขืžืขื˜ืจื™ ื“ืึทื˜ืŸ. ืกื›ืขืžืึทื˜ื™ืฉ ืึทืœืฅ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ืงืึธื ื˜ืจืึธืœ ืคึผืœืึทื ืข ืžื™ื˜ ื“ืึทื˜ืึท ืคืœืึทืš

ืขื ื•ื•ืึธื™ืก (ื“"ื” ื“ืึทื˜ืŸ ืคืœืึทืš) ื–ืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจื“ ื ื™ืฆืŸ Kubernetes CRD (ืงืึทืกื˜ืึทื ืจื™ืกืึธืจืก ื“ืขืคื™ื ื™ืฉืึทื ื–) ื“ื™ืคื™ื™ื ื“ ื“ื•ืจืš Istio ืื•ืŸ ืกืคึผืึทืกื™ืคื™ืงืœื™ ื‘ื“ืขื” ืคึฟืึทืจ ื“ืขื ืฆื•ื•ืขืง. ื•ื•ืึธืก ื“ืึธืก ืžื™ื™ื ื˜ ืฆื• ืื™ืจ ืื™ื– ืึทื– ื–ื™ื™ ื•ื™ืกืงื•ืžืขืŸ ืฆื• ื–ื™ื™ืŸ ื ืึธืจ ืืŸ ืื ื“ืขืจ ืžื™ื˜ืœ ืื™ืŸ Kubernetes ืžื™ื˜ ืึท ื‘ืึทืงืึทื ื˜ ืกื™ื ื˜ืึทืงืก. ืึทืžืึธืœ ื‘ืืฉืืคืŸ, ื“ืขื ืžื™ื˜ืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผื™ืงื˜ ืึทืจื•ื™ืฃ ื“ื•ืจืš ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš ืื•ืŸ ื’ืขื•ื•ืขื ื“ื˜ ืฆื• ื“ื™ ืขื ื•ื•ืึธื™ืก.

ืฉื™ื™ื›ื•ืช ืคื•ืŸ ืกืขืจื•ื•ื™ืกืขืก ืฆื• Istio

ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ื™ ืฉื™ื™ื›ื•ืช ืคื•ืŸ Istio ืฆื• ืกืขืจื•ื•ื™ืกืขืก, ืึธื‘ืขืจ ื ื™ืฉื˜ ื“ื™ ืคืึทืจืงืขืจื˜: ื•ื•ื™ ื˜ืึธืŸ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• Istio?

ืฆื• ื–ื™ื™ืŸ ืขืจืœืขืš, ืกืขืจื•ื•ื™ืกืขืก ื–ืขื ืขืŸ ื•ื•ื™ ืึทื•ื•ืขืจ ืคื•ืŸ ื™ืกื˜ื™ืึธ ืก ื‘ื™ื™ึทื–ื™ื™ึทืŸ ื•ื•ื™ ืคื™ืฉ ื–ืขื ืขืŸ ืคื•ืŸ ื•ื•ืึทืกืขืจ ื•ื•ืขืŸ ื–ื™ื™ ืคืจืขื’ืŸ ื–ื™ืš, "ื•ื•ืึธืก ืื™ื– ื•ื•ืึทืกืขืจ ืกื™ื™ึท ื•ื•ื™ ืกื™ื™ึท?"

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ื’ืขืžืขืœ ื•ื•ื™ืงื˜ืึธืจื™ืึท ื“ื™ืžื™ื˜ืจืึทืงืึธืคึผืึธื•ืœืึธืก: โ€” ืฐื™ ืื–ื•ื™ ื’ืขืคืขืœื˜ ืื™ืจ ื“ืืก ืฐืืืขืจ ? - ื•ื•ืึธืก ืื™ื– ื•ื•ืึทืกืขืจ ืกื™ื™ึท ื•ื•ื™ ืกื™ื™ึท?

ืื–ื•ื™, ืื™ืจ ืงืขื ืขืŸ ื ืขืžืขืŸ ืึท ืืจื‘ืขื˜ืŸ ืงื ื•ื™ืœ ืื•ืŸ ื ืึธืš ื“ื™ืคึผืœื•ื™ื™ื ื’ ื“ื™ Istio ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ืœื™ื’ืŸ ืื™ืŸ ืขืก ื•ื•ืขื˜ ืคืึธืจื–ืขืฆืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ, ืื•ืŸ ื ืึธืš ืจื™ืžื•ื•ื•ื™ื ื’ ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ืึทืœืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ื•ื˜ ื•ื•ื™ื“ืขืจ. ืขืก ืื™ื– ืงืœืึธืจ ืึทื– ืื™ืŸ ื“ืขื ืคืึทืœ ืื™ืจ ื•ื•ืขื˜ ืคืึทืจืœื™ืจืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš Istio.

ื’ืขื ื•ื’ ื˜ืขืึธืจื™ืข - ืœืึธืžื™ืจ ืฉื˜ืขืœืŸ ื“ืขื ื•ื•ื™ืกืŸ ืื™ืŸ ืคื™ืจ!

ื™ืกื˜ื™ืึธ ืื™ืŸ ืคื™ืจ

Istio ืจื™ืงื•ื•ื™ื™ืขืจื– ืึท ืงื•ื‘ืขืจื ืขื˜ืขืก ืงื ื•ื™ืœ ืžื™ื˜ ืœืคึผื—ื•ืช 4 ื•ื•ืงืคึผื•ืก ืื•ืŸ 8 ื’ื™ื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื‘ืึทืจืึทืŸ ื‘ื ื™ืžืฆื. ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืฉื˜ืขืœืŸ ืึท ืงื ื•ื™ืœ ืื•ืŸ ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื ื™ืฆืŸ Google Cloud Platform, ื•ื•ืึธืก ืึธืคืคืขืจืก ื ื™ื™ึทืข ื ื™ืฆืขืจืก ืคืจื™ื™ $300.

ื ืึธืš ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ืงื ื•ื™ืœ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืึทืงืกืขืก ืฆื• Kubernetes ื“ื•ืจืš ื“ื™ ืงืึทื ืกืึธื•ืœ ื ื•ืฆืŸ, ืื™ืจ ืงืขื ืขืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ Istio ื“ื•ืจืš ื“ื™ ื”ืขืœื ืคึผืขืงืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ.

ื”ืขืœื ื™ื ืกื˜ืึทืœื™ืจื•ื ื’

ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ื”ืขืœื ืงืœื™ืขื ื˜ ืื•ื™ืฃ ื“ื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ, ื•ื•ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ืขื ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื˜ืขืžืคึผืœืึทื˜ืขืก ืคึฟืึทืจ ื™ื ืกื˜ืึธืœื™ื ื’ Istio ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’.

ื™ื ืกื˜ืึทืœื™ืจืŸ Istio

ืืจืืคืงืืคื™ืข Istio ืจืขืกื•ืจืกืŸ ืคึฟื•ืŸ ืœืขืฆื˜ ืžืขืœื“ื•ื ื’ (ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ืžื—ื‘ืจ ืก ืœื™ื ืง ืฆื• ื•ื•ืขืจืกื™ืข 1.0.5 ืื™ื– ืคืืจืขื ื“ืขืจื˜ ืฆื• ื“ื™ ืื™ืฆื˜ื™ืงืข, ื“"ื” 1.0.6 - ื‘ืขืขืจืขืš ืื™ื‘ืขืจื–ืขืฆื•ื ื’), ืขืงืกื˜ืจืึทืงื˜ ื“ื™ ืื™ื ื”ืึทืœื˜ ืื™ืŸ ืื™ื™ืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ, ื•ื•ืึธืก ืื™ืš ื•ื•ืขืœ ืื™ืฆื˜ ืจื•ืคืŸ [istio-resources].

ืฆื• ืœื™ื™ื›ื˜ ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื™ืกื˜ื™ืึธ ืจืขืกื•ืจืกืŸ, ืฉืึทืคึฟืŸ ืึท ื ืึทืžืขืกืคึผืึทืกืข ืื™ืŸ ื“ื™ K8s ืงื ื•ื™ืœ istio-system:

$ kubectl create namespace istio-system

ืคืึทืจืขื ื“ื™ืงืŸ ื“ื™ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ื“ื•ืจืš ื’ื™ื™ืŸ ืฆื• ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ [istio-resources] ืื•ืŸ ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ:

$ helm template install/kubernetes/helm/istio 
  --set global.mtls.enabled=false 
  --set tracing.enabled=true 
  --set kiali.enabled=true 
  --set grafana.enabled=true 
  --namespace istio-system > istio.yaml

ื“ืขืจ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ืึทืจื•ื™ืกืคื™ืจืŸ ื“ื™ ืฉืœื™ืกืœ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ Istio ืฆื• ืึท ื˜ืขืงืข istio.yaml. ืžื™ืจ ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื ืึธืจืžืึทืœ ืžื•ืกื˜ืขืจ ืฆื• ืคึผืึทืกืŸ ื–ื™ืš, ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก:

  • global.mtls.enabled ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ false (ื“"ื” mTLS ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜ - ืึทืคึผืคึผืจืึธืงืก.)ืฆื• ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ืื•ื ื“ื–ืขืจ ื“ื™ื™ื˜ื™ื ื’ ืคึผืจืึธืฆืขืก;
  • tracing.enabled ื›ื•ืœืœ ื‘ืขื˜ืŸ ื˜ืจื™ื™ืกื™ื ื’ ื ื™ืฆืŸ Jaeger;
  • kiali.enabled ื™ื ืกื˜ืึธืœื– Kiali ืื™ืŸ ืึท ืงื ื•ื™ืœ ืฆื• ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื– ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ืŸ ืคืึทืจืงืขืจ;
  • grafana.enabled ื™ื ืกื˜ืึธืœื– Grafana ืฆื• ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื– ื’ืขื–ืืžืœื˜ ืžืขื˜ืจื™ืงืก.

ืœืึธืžื™ืจ ื ื•ืฆืŸ ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืจืขืกื•ืจืกืŸ ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ:

$ kubectl apply -f istio.yaml

ื“ื™ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ืคื•ืŸ Istio ืื•ื™ืฃ ื“ืขื ืงื ื•ื™ืœ ืื™ื– ื’ืึทื ืฅ! ื•ื•ืึทืจื˜ืŸ ื‘ื™ื– ืึทืœืข ืคึผืึธื“ืก ื–ืขื ืขืŸ ืื™ืŸ ื“ื™ ื ืึธืžืขืŸ ืคึผืœืึทืฅ istio-system ื•ื•ืขื˜ ืงืขื ืขืŸ Running ืึธื“ืขืจ Completedื“ื•ืจืš ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืื•ื ื˜ืŸ:

$ kubectl get pods -n istio-system

ืื™ืฆื˜ ืžื™ืจ ื–ืขื ืขืŸ ื’ืจื™ื™ื˜ ืฆื• ืคืึธืจื–ืขืฆืŸ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’, ื•ื•ื• ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทืจื•ื™ืฃ ืื•ืŸ ืคืœื™ืกื ื“ื™ืง.

ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ื“ื™ ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ

ืœืึธืžื™ืจ ื ื•ืฆืŸ ื“ืขื ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜ ื”ืงื“ืžื” ืึทืจื˜ื™ืงืœ ืฆื• Kubernetes. ืขืก ืื™ื– ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ื’ืขื ื•ื’ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ Istio ืื™ืŸ ืคื™ืจ.

ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืคื™ืจ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก:

  1. ื“ื™ื ืกื˜ ืกืึท-ืคืจืึธื ื˜ืขื ื“, ื•ื•ืึธืก ืกืขืจื•ื•ืขืก ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืคื•ืŸ ืึท Reactjs ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ;
  2. ื“ื™ื ืกื˜ SA-WebApp, ื•ื•ืึธืก ืกืขืจื•ื•ืขืก ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก ืงื•ื•ื™ืจื™ื–;
  3. ื“ื™ื ืกื˜ ืกืึท-ืœืึธื’ื™ืง, ื•ื•ืืก ืคื™ืจื˜ ื–ื™ืš ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก;
  4. ื“ื™ื ืกื˜ SA-ืคื™ืขื“ื‘ืึทืงืง, ื•ื•ืึธืก ื ืขืžื˜ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืคื•ืŸ ื ื™ืฆืขืจืก ื•ื•ืขื’ืŸ ื“ื™ ืึทืงื™ืขืจืึทืกื™ ืคื•ืŸ ื“ื™ ืึทื ืึทืœื™ืกื™ืก.

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ืื™ืŸ ื“ืขื ื“ื™ืึทื’ืจืึทืžืข, ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื‘ืึทื“ื™ื ื•ื ื’ืก, ืžื™ืจ ืื•ื™ืš ื–ืขืŸ ื“ื™ ื™ื ื’ืจืขืกืก ืงืึธื ื˜ืจืึธืœืœืขืจ, ื•ื•ืึธืก ืื™ืŸ Kubernetes ืจื•ืฅ ื™ื ืงืึทืžื™ื ื’ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ืฆื•ื ืขืžืขืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก. Istio ื ื™ืฆื˜ ืึท ืขื ืœืขืš ื‘ืึทื’ืจื™ืฃ ืื™ืŸ ื–ื™ื™ืŸ Ingress Gateway, ืžืขืจ ื“ืขื˜ืึทื™ืœืก ืคื•ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ื ืึธื›ืคืึธืœื’ืŸ.

ืคืœื™ืกื ื“ื™ืง ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ืึท ืคึผืจืึทืงืกื™ ืคึฟื•ืŸ Istio

ืคึฟืึทืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื“ืขืจืžืื ื˜ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืงืœืึธื•ืŸ ื“ื™ื™ืŸ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื™ืกื˜ื™ืึธ-ืžืึทืกื˜ืขืจื™. ืขืก ื›ึผื•ืœืœ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ืžืึทื ื™ืคืขืกืฅ ืคึฟืึทืจ Kubernetes ืื•ืŸ Istio.

ื™ื ืกืขืจื˜ื™ื ื’ ืกื™ื™ื“ืงืึทืจืก

ื™ื ืกืขืจืฉืึทืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืึธื“ืขืจ ืžืึทื ื™ื•ืึทืœื™. ืฆื• ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืกื™ื™ื“ืงืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจื–, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืึท ืคื™ืจืžืข ืฆื• ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข istio-injection=enabled, ื•ื•ืึธืก ืื™ื– ื’ืขื˜ืืŸ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ kubectl label namespace default istio-injection=enabled
namespace/default labeled

ืื™ืฆื˜ ื™ืขื“ืขืจ ืคึผืึธื“ ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืคึผืœื•ื™ื“ ืื™ืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื ืึทืžืขืกืคึผืึทืกืข (default) ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ื–ื™ื™ืŸ ืกื™ื™ื“ืงืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ. ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ืขื, ืœืึธื–ืŸ ืื•ื ื“ื– ืฆืขื•ื•ื™ืงืœืขืŸ ื“ื™ ืคึผืจืึธื‘ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ื•ืจืš ื’ื™ื™ืŸ ืฆื• ื“ื™ ื•ื•ืึธืจืฆืœ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืคื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ [istio-mastery] ืื•ืŸ ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ kubectl apply -f resource-manifests/kube
persistentvolumeclaim/sqlite-pvc created
deployment.extensions/sa-feedback created
service/sa-feedback created
deployment.extensions/sa-frontend created
service/sa-frontend created
deployment.extensions/sa-logic created
service/sa-logic created
deployment.extensions/sa-web-app created
service/sa-web-app created

ื ืึธืš ื“ื™ืคึผืœื•ื™ื“ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก, ืœืึธืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทื– ื“ื™ ืคึผืึธื“ืก ื”ืึธื‘ืŸ ืฆื•ื•ื™ื™ ืงืึทื ื˜ื™ื™ื ืขืจื– (ืžื™ื˜ ื“ื™ ืกืขืจื•ื•ื™ืก ื–ื™ืš ืื•ืŸ ื–ื™ื™ืŸ ืกื™ื™ื“ืงืึทืจ) ื“ื•ืจืš ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ kubectl get pods ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืื•ื ื˜ืขืจ ื“ื™ ื–ื™ื™ึทืœ READY ื•ื•ืขืจื˜ ืกืคึผืขืกื™ืคื™ืขื“ 2/2, ืกื™ืžื‘ืึทืœื™ื™ื–ื™ื ื’ ืึทื– ื‘ื™ื™ื“ืข ืงืึทื ื˜ื™ื™ื ืขืจื– ืœื•ื™ืคืŸ:

$ kubectl get pods
NAME                           READY     STATUS    RESTARTS   AGE
sa-feedback-55f5dc4d9c-c9wfv   2/2       Running   0          12m
sa-frontend-558f8986-hhkj9     2/2       Running   0          12m
sa-logic-568498cb4d-2sjwj      2/2       Running   0          12m
sa-logic-568498cb4d-p4f8c      2/2       Running   0          12m
sa-web-app-599cf47c7c-s7cvd    2/2       Running   0          12m

ื•ื•ื™ืกื•ืึทืœืœื™ ืขืก ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ืึทื ื•ื•ื•ื™ ืคึผืจืึทืงืกื™ ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืึธื“ืก

ืื™ืฆื˜ ืึทื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืึทืจื•ื™ืฃ ืื•ืŸ ืคืœื™ืกื ื“ื™ืง, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœืึธื–ืŸ ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ ืฆื• ืงื•ืžืขืŸ ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

Ingress Gateway

ื“ืขืจ ื‘ืขืกื˜ืขืจ ืคื™ืจ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืขื (ืœืึธื–ืŸ ืคืึทืจืงืขืจ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ) ืื™ื– ื“ื•ืจืš Ingress Gateway ืื™ืŸ Istio, ื•ื•ืึธืก ืื™ื– ืœื™ื’ืŸ ื‘ื™ื™ึท ื“ื™ "ื‘ืจืขื’" ืคื•ืŸ ื“ืขื ืงื ื•ื™ืœ ืื•ืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื’ืขื‘ืŸ Istio ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืึทื–ืึท ื•ื•ื™ ืจื•ื˜ื™ื ื’, ืžืึทืกืข ื‘ืึทืœืึทื ืกื™ื ื’, ื–ื™ื›ืขืจื”ื™ื™ื˜ ืื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืคึฟืึทืจ ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ.

ื“ื™ Ingress Gateway ืงืึธืžืคึผืึธื ืขื ื˜ ืื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืก ื•ื•ืึธืก ืคืึธืจื•ื•ืขืจื“ื– ืขืก ื•ื™ืกื•ื•ื™ื™ื ื™ืง ื–ืขื ืขืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ื‘ืขืฉืึทืก ื“ื™ Istio ื™ื ืกื˜ืึทืœื™ืจื•ื ื’. ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืก, ืœื•ื™ืคืŸ:

$ kubectl get svc -n istio-system -l istio=ingressgateway
NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP
istio-ingressgateway   LoadBalancer   10.0.132.127   13.93.30.120

ืžื™ืจ ื•ื•ืขืœืŸ ืคืึธืจื–ืขืฆืŸ ืฆื• ืึทืงืกืขืก ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื ื™ืฆืŸ ื“ืขื IP (ืื™ืš ื•ื•ืขืœ ืึธืคึผืฉื™ืงืŸ ืฆื• ืขืก ื•ื•ื™ EXTERNAL-IP), ืึทื–ื•ื™ ืคึฟืึทืจ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก ืžื™ืจ ื•ื•ืขืœืŸ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื•ื•ืขืจื˜ ืื™ืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง:

$ EXTERNAL_IP=$(kubectl get svc -n istio-system 
  -l app=istio-ingressgateway 
  -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')

ืื•ื™ื‘ ืื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืึทืงืกืขืก ื“ืขื IP ื“ื•ืจืš ืึท ื‘ืœืขื˜ืขืจืขืจ ืื™ืฆื˜, ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ืกืขืจื•ื•ื™ืก ืึทื ืึทื•ื•ื™ื™ืœืึทื‘ืึทืœ ื˜ืขื•ืช ื•ื•ื™ื™ึทืœ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ื™ืกื˜ื™ืึธ ื‘ืœืึทืงืก ืึทืœืข ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ, ื’ื™ื™ื˜ื•ื•ื™ื™ ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื“ื™ืคื™ื™ื ื“.

ื’ื™ื™ื˜ื•ื•ื™ื™ ืžื™ื˜ืœ

Gateway ืื™ื– ืึท CRD (Custom Resource Definition) ืื™ืŸ Kubernetes, ื“ื™ืคื™ื™ื ื“ ื ืึธืš ื™ื ืกื˜ืึธืœื™ื ื’ Istio ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ืื•ืŸ ื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืคึผืึธืจืฅ, ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืžื—ื ื•ืช ืคึฟืึทืจ ื•ื•ืึธืก ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืœืึธื–ืŸ ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ.

ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืœืึธื–ืŸ ื”ื˜ื˜ืคึผ ืคืึทืจืงืขืจ ืื•ื™ืฃ ืคึผืึธืจื˜ 80 ืคึฟืึทืจ ืึทืœืข ืžื—ื ื•ืช. ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื•ืจืš ื“ื™ ืคืืœื’ืขื ื“ืข ื“ืขืคึฟื™ื ื™ืฆื™ืข (http-gateway.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: http-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
- "*"

ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื“ืึทืจืฃ ืงื™ื™ืŸ ื“ืขืจืงืœืขืจื•ื ื’ ืึทื—ื•ืฅ ืคึฟืึทืจ ื“ื™ ืกืขืœืขืงื˜ืึธืจ istio: ingressgateway. ืžื™ื˜ ื“ืขื ืกืขืœืขืงื˜ืึธืจ ืžื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื•ื•ืึธืก Ingress Gateway ืฆื• ืฆื•ืœื™ื™ื’ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ื“ืึธืก ืื™ื– ื“ื™ ื™ื ื’ืจืขืกืก ื’ืึทื˜ืขื•ื•ื™ื™ึท ืงืึธื ื˜ืจืึธืœืœืขืจ, ื•ื•ืึธืก ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืื™ืŸ Istio.

ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื•ื•ืขื ื“ื˜ ื“ื•ืจืš ืจื•ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ kubectl apply -f resource-manifests/istio/http-gateway.yaml gateway.networking.istio.io/http-gateway created

ื“ื™ ื’ื™ื™ื˜ื•ื•ื™ื™ ืื™ืฆื˜ ืึทืœืึทื•ื– ืึทืงืกืขืก ืฆื• ืคึผืึธืจื˜ 80, ืึธื‘ืขืจ ื”ืื˜ ืงื™ื™ืŸ ื’ืขื“ืึทื ืง ื•ื•ื• ืฆื• ืžืึทืจืฉืจื•ื˜ ืจื™ืงื•ื•ืขืก. ืคึฟืึทืจ ื“ืขื ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื‘ืึทื“ื™ื ื•ื ื’ืก.

VirtualService ืžื™ื˜ืœ

ื“ื™ VirtualService ื“ืขืจืฆื™ื™ืœื˜ ื“ื™ Ingress Gateway ื•ื•ื™ ืฆื• ืžืึทืจืฉืจื•ื˜ ืจื™ืงื•ื•ืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืขืจืœื•ื™ื‘ื˜ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ.

ืจื™ืงื•ื•ืขืก ืฆื• ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืงื•ืžืขืŸ ื“ื•ืจืš http-gateway ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ sa-frontend, sa-web-app ืื•ืŸ sa-feedback ื‘ืึทื“ื™ื ื•ื ื’ืก:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ืจื•ืฅ ื•ื•ืึธืก ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ืงืึทื ืคื™ื’ื™ืขืจื“ ืžื™ื˜ VirtualServices

ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื“ื™ ืจื™ืงื•ื•ืขืก ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• SA-Frontend:

  • ืคึผื™ื ื˜ืœืขืš ื’ืœื™ื™ึทื›ืŸ ืฆื•ื–ืืžืขืŸ ื“ืขื ื•ื•ืขื’ / ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• SA-Frontend ืฆื• ื‘ืึทืงื•ืžืขืŸ index.html;
  • ืคึผืจืขืคื™ืงืกืขื“ ืคึผืึทื˜ืก /static/* ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• SA-Frontend ืฆื• ื‘ืึทืงื•ืžืขืŸ ืกื˜ืึทื˜ื™ืง ื˜ืขืงืขืก ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืคืจืึธื ื˜ืขื ื“, ืึทื–ืึท ื•ื•ื™ CSS ืื•ืŸ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜;
  • ืคึผืึทื˜ืก ืžืึทื˜ืฉื˜ ื“ื•ืจืš ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืง '^.*.(ico|png|jpg)$', ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• ืกืึท-ืคืจืึธื ื˜ืขื ื“, ื•ื•ื™ื™ึทืœ ื“ืืก ื–ืขื ืขืŸ ื“ื™ ื‘ื™ืœื“ืขืจ ื’ืขื•ื•ื™ื–ืŸ ืื•ื™ืฃ ื“ืขื ื‘ืœืึทื˜.

ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ืึทื˜ืฉื™ื•ื•ื“ ื“ื•ืจืš ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ (sa-virtualservice-external.yaml):

kind: VirtualService
metadata:
  name: sa-external-services
spec:
  hosts:
  - "*"
  gateways:
  - http-gateway                      # 1
  http:
  - match:
    - uri:
        exact: /
    - uri:
        exact: /callback
    - uri:
        prefix: /static
    - uri:
        regex: '^.*.(ico|png|jpg)$'
    route:
    - destination:
        host: sa-frontend             # 2
        port:
number: 80

ื•ื•ื™ื›ื˜ื™ืง ืคื•ื ืงื˜ืŸ:

  1. ื“ืขื VirtualService ืจืขืคืขืจืก ืฆื• ืจื™ืงื•ื•ืขืก ื•ื•ืึธืก ืงื•ืžืขืŸ ื“ื•ืจืš http-gateway;
  2. ะ’ destination ื“ื™ ื“ื™ื ืกื˜ ืฆื• ื•ื•ืึธืก ืจื™ืงื•ื•ืขืก ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืื™ื– ื‘ืืฉืœืืกืŸ.

ื˜ืึธืŸ: ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ื™ื‘ืŸ ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ืึท ื˜ืขืงืข sa-virtualservice-external.yaml, ื•ื•ืึธืก ืื•ื™ืš ื›ึผื•ืœืœ ืกืขื˜ื˜ื™ื ื’ืก ืคึฟืึทืจ ืจื•ื˜ื™ื ื’ ืื™ืŸ SA-WebApp ืื•ืŸ SA-Feedback, ืึธื‘ืขืจ ืื™ื– ืคืึทืจืงื™ืจืฆื˜ ื“ืึธ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืคึฟืึทืจ ืงื•ืจืฅ.

ืœืึธืžื™ืจ ืฆื•ืœื™ื™ื’ืŸ VirtualService ื“ื•ืจืš ืจื•ืคืŸ:

$ kubectl apply -f resource-manifests/istio/sa-virtualservice-external.yaml
virtualservice.networking.istio.io/sa-external-services created

ื˜ืึธืŸ: ื•ื•ืขืŸ ืžื™ืจ ืคืึทืจื ื•ืฆืŸ Istio ืจืขืกื•ืจืกืŸ, ื“ื™ Kubernetes API ืกืขืจื•ื•ื™ืจืขืจ ืงืจื™ื™ื™ืฅ ืึท ื’ืขืฉืขืขื ื™ืฉ ื•ื•ืึธืก ืื™ื– ื‘ืืงื•ืžืขืŸ ื“ื•ืจืš ื“ื™ Istio ืงืึธื ื˜ืจืึธืœ ืคึผืœืึทื ืข, ืื•ืŸ ื ืึธืš ื“ืขื, ื“ื™ ื ื™ื™ึทืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื•ื•ืขื ื“ื˜ ืฆื• ื“ื™ ืขื ื•ื•ื•ื™ ืคึผืจืึทืงืกื™ื– ืคื•ืŸ ื™ืขื“ืขืจ ืคึผืึธื“. ืื•ืŸ ื“ื™ ื™ื ื’ืจืขืกืก ื’ืึทื˜ืขื•ื•ื™ื™ึท ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ืืŸ ืื ื“ืขืจ ืขื ื•ื•ื•ื™ ืงืึทื ืคื™ื’ื™ืขืจื“ ืื™ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš. ืึทืœืข ื“ืขื ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก ืื™ืŸ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
Istio-IngressGateway ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื‘ืขื˜ืŸ ืจื•ื˜ื™ื ื’

ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืื™ืฆื˜ ื‘ื ื™ืžืฆื ืื•ื™ืฃ http://{EXTERNAL-IP}/. ืฆื™ ื ื™ื˜ ื–ืึธืจื’ ืื•ื™ื‘ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ื ื™ื˜ ื’ืขืคึฟื•ื ืขืŸ ืกื˜ืึทื˜ื•ืก: ืžืืœ ืขืก ื ืขืžื˜ ืึท ื‘ื™ืกืœ ืžืขืจ ืคึฟืึทืจ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืฆื• ื ืขืžืขืŸ ื•ื•ื™ืจืงื•ื ื’ ืื•ืŸ ืขื ื•ื•ื•ื™ ืงืึทื˜ืฉืขืก ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ.

ืื™ื™ื“ืขืจ ืคึผืจืึทืกื™ื“ื™ื ื’, ืฉืคึผื™ืœ ืžื™ื˜ ื“ื™ ืึทืคึผ ืึท ื‘ื™ืกืœ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืคืึทืจืงืขืจ. (ื–ื™ื™ึทืŸ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืื™ื– ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ืงืœืขืจื™ื˜ื™ ืื™ืŸ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืึทืงืฉืึทื ื– - ื‘ืขืขืจืขืš ืื™ื‘ืขืจื–ืขืฆื•ื ื’.).

ืงื™ืึทืœื™: ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™

ืฆื• ื‘ืึทืงื•ืžืขืŸ ืฆื• ื“ื™ Kiali ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ื™ื•ื•ืข ืฆื•ื‘ื™ื ื“, ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ kubectl port-forward 
    $(kubectl get pod -n istio-system -l app=kiali 
    -o jsonpath='{.items[0].metadata.name}') 
    -n istio-system 20001

... ืื•ืŸ ืขืคืขื ืขืŸ http://localhost:20001/, ืœืึธื’ื™ื ื’ ืื™ืŸ ื•ื•ื™ ืึทื“ืžื™ืŸ / ืึทื“ืžื™ืŸ. ื“ืึธ ืื™ืจ ื•ื•ืขื˜ ื’ืขืคึฟื™ื ืขืŸ ืคื™ืœืข ื ื•ืฆื™ืง ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ืœืžืฉืœ, ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ Istio ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื– ื‘ืึทื“ื™ื ื•ื ื’ืก ื ื™ืฆืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื’ืขื–ืืžืœื˜ ืคึฟื•ืŸ ื™ื ื˜ืขืจืกืขืคึผื˜ื™ื ื’ ื ืขืฅ ืจื™ืงื•ื•ืขืก, ื‘ืึทืงื•ืžืขืŸ ืขื ื˜ืคึฟืขืจืก ืฆื• ื“ื™ ืคึฟืจืื’ืŸ "ื•ื•ืขืจ ืื™ื– ืงืึธื ื˜ืึทืงื˜ ืžื™ื˜ ื•ื•ืขืžืขืŸ?", "ื•ื•ืึธืก ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืกืขืจื•ื•ื™ืก ืื™ื– ื™ืงืกืคึผื™ืจื™ืึทื ืกื˜. ื“ื•ืจื›ืคืึทืœ?โ€ ืื•ืŸ ืื–ื•ื™ ื•ื•ื™ื™ื˜ืขืจ. ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื•ื™ืกืคืึธืจืฉืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ Kiali ืื™ื™ื“ืขืจ ืื™ืจ ืžืึทืš ืื•ื™ืฃ ืฆื• ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื–ื™ื ื’ ืžืขื˜ืจื™ืงืก ืžื™ื˜ Grafana.

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ื’ืจืึทืคืึทื ืึท: ืžืขื˜ืจื™ืง ื•ื•ื™ื–ืฉื•ื•ืึทืœืึทื–ื™ื™ืฉืึทืŸ

ืžืขื˜ืจื™ืงืก ื’ืขื–ืืžืœื˜ ืื™ืŸ Istio ื’ื™ื™ืŸ ืื™ืŸ ืคึผืจืึธืžืขื˜ื”ืขื•ืก ืื•ืŸ ื–ืขื ืขืŸ ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื–ื“ ืžื™ื˜ Grafana. ืฆื• ื‘ืึทืงื•ืžืขืŸ ืฆื• ื“ื™ Grafana ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ื™ื•ื•ืข ืฆื•ื‘ื™ื ื“, ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืื•ื ื˜ืŸ ืื•ืŸ ืขืคืขื ืขืŸ http://localhost:3000/:

$ kubectl -n istio-system port-forward 
    $(kubectl -n istio-system get pod -l app=grafana 
    -o jsonpath={.items[0].metadata.name}) 3000

ืงืœื™ืงื™ื ื’ ืื•ื™ืฃ ื“ื™ ืžืขื ื™ื• ื”ื™ื™ื ืฉืคึผื™ืฅ ืœื™ื ืงืก ืื•ืŸ ืกืึทืœืขืงื˜ื™ื ื’ Istio ืกืขืจื•ื•ื™ืก ื“ืึทืฉื‘ืึธืจื“ ืื™ืŸ ื“ื™ ืฉืคึผื™ืฅ ืœื™ื ืงืก ื•ื•ื™ื ืงืœ, ืึธื ื”ื™ื™ื‘ ืžื™ื˜ ื“ื™ื ืกื˜ ืกืึท-ื•ื•ืขื‘-ืึทืคึผืฆื• ืงื•ืงืŸ ืื™ืŸ ื“ื™ ื’ืขื–ืืžืœื˜ ืžืขื˜ืจื™ืงืก:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ื•ื•ืึธืก ืึทื•ื•ื™ื™ืฅ ืื•ื ื“ื– ื“ืึธ ืื™ื– ืึท ืœื™ื™ื“ื™ืง ืื•ืŸ ื’ืึธืจ ื ื•ื“ื ืข ืคืึธืจืฉื˜ืขืœื•ื ื’ - ื“ื™ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ื•ื•ืขื˜ ืงื™ื™ื ืžืึธืœ ืึทืคึผืจื•ื•ื• ืคื•ืŸ ื“ืขื. ืœืึธืžื™ืจ ืžืึทื›ืŸ ืึท ืงืœื™ื™ืŸ ืžืึทืกืข ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ while true; do 
    curl -i http://$EXTERNAL_IP/sentiment 
    -H "Content-type: application/json" 
    -d '{"sentence": "I love yogobella"}'; 
    sleep .8; done

ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ืคื™ืœ ื‘ืขืกืขืจ ื’ืจืึทืคืก, ืื•ืŸ ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื–ื™ื™, ื•ื•ื•ื ื“ืขืจืœืขืš ืคึผืจืึธืžืขื˜ื”ืขื•ืก ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ื’ืจืึทืคืึทื ืึท ืคึฟืึทืจ ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื–ื™ื ื’ ืžืขื˜ืจื™ืงืก ื•ื•ืึธืก ืœืึธื–ืŸ ืื•ื ื“ื– ืฆื• ืœืขืจื ืขืŸ ื•ื•ืขื’ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’, ื’ืขื–ื•ื ื˜, ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ / ื“ืขืจื ื™ื“ืขืจื™ืงื•ื ื’ ืื™ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื™ื‘ืขืจ ืฆื™ื™ื˜.

ืฆื•ื ืกื•ืฃ, ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื˜ืจื™ื™ืกื™ื ื’ ืจื™ืงื•ื•ืขืก ืื™ืŸ ืกืขืจื•ื•ื™ืกืขืก.

Jaeger: ื˜ืจื™ื™ืกื™ื ื’

ืžื™ืจ ื•ื•ืขืœืŸ ื“ืึทืจืคึฟืŸ ื˜ืจื™ื™ืกื™ื ื’ ื•ื•ื™ื™ึทืœ ื“ื™ ืžืขืจ ื‘ืึทื“ื™ื ื•ื ื’ืก ืžื™ืจ ื”ืึธื‘ืŸ, ื“ื™ ืžืขืจ ืฉื•ื•ืขืจ ืขืก ืื™ื– ืฆื• ื‘ืึทืงื•ืžืขืŸ ืฆื• ื“ื™ ื’ืจื•ื ื˜ ืคื•ืŸ ื“ื™ ื“ื•ืจื›ืคืึทืœ. ื–ืืœ ืก ืงื•ืง ืื™ืŸ ืึท ืคึผืฉื•ื˜ ืคืึทืœ ืคื•ืŸ ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
ื˜ื™ืคึผื™ืฉ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ื˜ืจืึทืค - ื“ื•ืจื›ืคืึทืœ ื‘ืขื˜ืŸ

ื“ื™ ื‘ืงืฉื” ืงื•ืžื˜, ืคืืœื˜ - ื•ื•ืืก ืื™ื– ื“ื™ ืกื™ื‘ื”? ืขืจืฉื˜ืขืจ ื“ื™ื ืกื˜? ืื“ืขืจ ื“ื™ ืฆื•ื•ื™ื™ื˜ืข? ืขืก ื–ืขื ืขืŸ ืื•ื™ืกื ืขืžืขืŸ ืื™ืŸ ื‘ื™ื™ื“ืข - ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื“ื™ ืœืึธื’ืก ืคื•ืŸ ื™ืขื“ืขืจ. ื•ื•ื™ ืึธืคื˜ ื”ืึธื‘ืŸ ืื™ืจ ื’ืขื›ืืคื˜ ื–ื™ืš ื˜ืืŸ ื“ืขื? ืื•ื ื“ื–ืขืจ ืึทืจื‘ืขื˜ ืื™ื– ืžืขืจ ื•ื•ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื“ื™ื˜ืขืงื˜ื™ื•ื•ื– ื•ื•ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ...

ื“ืึธืก ืื™ื– ืึท ืคึผืจืึธืกื˜ ืคึผืจืึธื‘ืœืขื ืื™ืŸ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืื•ืŸ ืื™ื– ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื˜ืจื™ื™ืกื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ, ืื™ืŸ ื•ื•ืึธืก ืกืขืจื•ื•ื™ืกืขืก ืคืึธืจืŸ ืึท ื™ื™ื ืฆื™ืง ื›ืขื“ืขืจ ืฆื• ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ, โ€‹โ€‹ื ืึธืš ื•ื•ืึธืก ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ืคืึธืจื•ื•ืขืจื“ื™ื“ ืฆื• ื“ื™ ื˜ืจื™ื™ืกื™ื ื’ ืกื™ืกื˜ืขื, ื•ื•ื• ืขืก ืื™ื– ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ื“ื™ ื‘ืขื˜ืŸ ื“ืึทื˜ืŸ. ื“ืึธ ืก ืึท ืื™ืœื•ืกื˜ืจืึทืฆื™ืข:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
TraceId ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื‘ืงืฉื”

Istio ื ื™ืฆื˜ Jaeger Tracer, ื•ื•ืึธืก ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ื™ ืคืึทืจืงื•ื™ืคืขืจ-ืคืจื™ื™ึท ืึธืคึผืขื ื˜ืจืึทืกื™ื ื’ ืึทืคึผื™ ืคืจื™ื™ืžื•ื•ืขืจืง. ืื™ืจ ืงืขื ื˜ ืึทืงืกืขืก ื“ื™ Jaeger ื‘ืึทื ื™ืฆืขืจ ืฆื•ื‘ื™ื ื“ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ kubectl port-forward -n istio-system 
    $(kubectl get pod -n istio-system -l app=jaeger 
    -o jsonpath='{.items[0].metadata.name}') 16686

ืื™ืฆื˜ ื’ื™ื™ืŸ ืฆื• http://localhost:16686/ ืื•ืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืึท ื“ื™ื ืกื˜ ืกืึท-ื•ื•ืขื‘-ืึทืคึผ. ืื•ื™ื‘ ื“ื™ ืกืขืจื•ื•ื™ืก ืื™ื– ื ื™ืฉื˜ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ืคืึทืœ-ืึทืจืึธืคึผ ืžืขื ื™ื•, ื•ื•ื™ื™ึทื–ืŸ / ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื˜ืขื˜ื™ืงื™ื™ื˜ ืื•ื™ืฃ ื“ืขื ื‘ืœืึทื˜ ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืฆื•ื‘ื™ื ื“. ื ืึธืš ื“ืขื, ื“ืจื™ืงื˜ ืื•ื™ืฃ ื“ื™ ืงื ืขืคึผืœ ื’ืขืคึฟื™ื ืขืŸ ื˜ืจืึทืกืขืก, ื•ื•ืึธืก ื•ื•ืขื˜ ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืœืขืฆื˜ืข ื˜ืจืึทืกืขืก - ืกืขืœืขืงื˜ื™ืจืŸ ืงื™ื™ืŸ - ื“ื™ื˜ื™ื™ืœื“ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ืึทืœืข ื˜ืจืึทืกืขืก ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1

ื“ืขื ืฉืคึผื•ืจ ื•ื•ื™ื™ื–ื˜:

  1. ื“ื™ ื‘ืงืฉื” ืงื•ืžื˜ ืืจื™ื™ืŸ istio-ingressgateway (ื“ืึธืก ืื™ื– ื“ืขืจ ืขืจืฉื˜ืขืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก, ืื•ืŸ ืึท Trace ID ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืคึฟืึทืจ ื“ื™ ื‘ืขื˜ืŸ), ื ืึธืš ื•ื•ืึธืก ื“ื™ ื’ื™ื™ื˜ื•ื•ื™ื™ ืกืขื ื“ื– ื“ื™ ื‘ืงืฉื” ืฆื• ื“ื™ ืกืขืจื•ื•ื™ืก ืกืึท-ื•ื•ืขื‘-ืึทืคึผ.
  2. ืื™ืŸ ื“ื™ื ืกื˜ ืกืึท-ื•ื•ืขื‘-ืึทืคึผ ื“ื™ ื‘ืงืฉื” ืื™ื– ืคึผื™ืงื˜ ืึทืจื•ื™ืฃ ื“ื•ืจืš ื“ื™ ืขื ื•ื•ื•ื™ ืกื™ื™ื“ืงืึทืจ, ืึท "ืงื™ื ื“" ืื™ื– ื‘ืืฉืืคืŸ ืื™ืŸ ื“ื™ ืฉืคึผืึทืŸ (ืึทื– ืก ื•ื•ืึธืก ืžื™ืจ ื–ืขืŸ ืขืก ืื™ืŸ ื“ื™ ื˜ืจืึทืกืขืก) ืื•ืŸ ืจื™ื“ืขืจืขืงื˜ื™ื“ ืฆื• ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืกืึท-ื•ื•ืขื‘-ืึทืคึผ. (ืฉืคึผืึทืŸ - ืึท ืœืึทื“ื–ืฉื™ืงืึทืœ ืึทืคึผืึทืจืึทื˜ ืคื•ืŸ ืึทืจื‘ืขื˜ ืื™ืŸ Jaeger, ื•ื•ืึธืก ื”ืื˜ ืึท ื ืึธืžืขืŸ, ืึธื ื”ื™ื™ื‘ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืื•ืŸ ื“ื™ ื’ืขื“ื•ื™ืขืจ. ืกืคึผืึทื ืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื ืขืกื˜ืขื“ ืื•ืŸ ืึธืจื“ืขืจื“. ื ื“ื™ืจืขืงื˜ืขื“ ืึทืกื™ืงืœื™ืง ื’ืจืึทืคื™ืง ืคื•ืŸ ืกืคึผืึทื ืก ืคืืจืžืขืŸ ืึท ืฉืคึผื•ืจ. โ€” ื‘ืขืขืจืขืš. ืื™ื‘ืขืจื–ืขืฆืŸ)
  3. ื“ืึธ ื“ื™ ื‘ืงืฉื” ืื™ื– ืคึผืจืึทืกืขืกื˜ ื“ื•ืจืš ื“ืขื ืื•ืคึฟืŸ ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก. ื“ื™ ื˜ืจืึทืกืขืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื•ืจืš ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ื™.ืข. ื–ื™ื™ ืคืืจืœืื ื’ื˜ ืงืึธื“ ืขื ื“ืขืจื•ื ื’ืขืŸ.
  4. ืคึฟื•ืŸ ื“ืขื ืžืึธืžืขื ื˜ ืื•ื™ืฃ, ืึท POST ื‘ืขื˜ืŸ ืื™ื– ื™ื ื™ืฉื™ื™ื™ื˜ื™ื“ ืื™ืŸ ืกืึท-ืœืึธื’ื™ืง. Trace ID ืžื•ื–ืŸ ื–ื™ื™ืŸ ืคืึธืจื•ื•ืขืจื“ื™ื“ ืคึฟื•ืŸ ืกืึท-ื•ื•ืขื‘-ืึทืคึผ.
  5. ...

ื˜ืึธืŸ: ืื™ืŸ ืฉืจื™ื˜ 4, ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื–ืึธืœ ื–ืขืŸ ื“ื™ ื›ืขื“ืขืจื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื•ืจืš Istio ืื•ืŸ ืคืึธืจืŸ ื–ื™ื™ ืฆื• ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืจื™ืงื•ื•ืขืก ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ:

ืฆื•ืจื™ืง ืฆื• ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ Istio. ื˜ื™ื™ืœ 1
(ื) Istio ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืคืึธืจื•ื•ืขืจื“ื™ื ื’ ื›ืขื“ืขืจื–; (ื‘) ืกืขืจื•ื•ื™ืกืขืก ื–ืขื ืขืŸ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื›ืขื“ืขืจื–

Istio ื˜ื•ื˜ ืจื•ื‘ึฟ ืคื•ืŸ ื“ื™ ืึทืจื‘ืขื˜ ื•ื•ื™ื™ึทืœ ... ื“ื–ืฉืขื ืขืจื™ื™ืฅ ื›ืขื“ืขืจื– ืคึฟืึทืจ ื™ื ืงืึทืžื™ื ื’ ืจื™ืงื•ื•ืขืก, ืงืจื™ื™ื™ืฅ ื ื™ื™ึทืข ืกืคึผืึทื ืก ืื™ืŸ ื™ืขื“ืขืจ ืกื™ื™ื“ืงืึทืจืข ืื•ืŸ ืคืึธืจื•ื•ืขืจื“ื– ื–ื™ื™. ืึธื‘ืขืจ, ืึธืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื›ืขื“ืขืจื– ื™ืŸ ืกืขืจื•ื•ื™ืกืขืก, ื“ื™ ืคื•ืœ ื‘ืขื˜ืŸ ืฉืคึผื•ืจ ื•ื•ืขื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืึทืจืคืึทืœืŸ.

ื“ื™ ืคืืœื’ืขื ื“ืข ื›ืขื“ืขืจื– ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ:

x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context

ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึท ืฉื•ื•ืขืจ ืึทืจื‘ืขื˜, ืึธื‘ืขืจ ืฆื• ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื–ื™ื™ึทืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืขืก ืื™ื– ืฉื•ื™ืŸ ืคื™ืœืข ืœื™ื™ื‘ืจืขืจื™ื– - ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ื“ื™ ืกืึท-ื•ื•ืขื‘-ืึทืคึผ ื“ื™ื ืกื˜, ื“ืขืจ RestTemplate ืงืœื™ืขื ื˜ ืคืึธืจื•ื•ืขืจื“ื– ื“ื™ ื›ืขื“ืขืจื– ืื•ื™ื‘ ืื™ืจ ืคืฉื•ื˜ ืœื™ื™ื’ืŸ ื“ื™ Jaeger ืื•ืŸ OpenTracing ืœื™ื™ื‘ืจืขืจื™ื– ืฆื• ื–ื™ื™ื ืข ืึทื“ื™ืงืฉืึทื ื–.

ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– ื“ื™ ืกืขื ื˜ื™ืžืขื ื˜ ืึทื ืึทืœื™ืกื™ืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขืžืึทื ืกื˜ืจื™ื™ืฅ ื™ืžืคึผืœืึทืžืึทื ืฅ ืื™ืŸ ืคืœืึทืกืง, ืกืคึผืจื™ื ื’ ืื•ืŸ ASP.NET ืงืึธืจ.

ืื™ืฆื˜ ืึทื– ืขืก ืื™ื– ืงืœืึธืจ ื•ื•ืึธืก ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ (ืึธื“ืขืจ ื›ึผืžืขื˜ ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ), ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ืคื™ื™ึทืŸ-ื˜ื•ื ื“ ืจื•ื˜ื™ื ื’, ื ืขืฅ ืคืึทืจืงืขืจ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’, ื–ื™ื›ืขืจื”ื™ื™ื˜, ืืื–"ื• ื•!

ื ืื˜ื™ืฅ. ื˜ืจืึทื ืกืœ.: ืœื™ื™ืขื ืขืŸ ื•ื•ืขื’ืŸ ื“ืขื ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ืžืึทื˜ืขืจื™ืึทืœืก ืื•ื™ืฃ Istio ืคึฟื•ืŸ Rinor Maloku, ืื™ื‘ืขืจื–ืขืฆื•ื ื’ืขืŸ ืคื•ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ื ืึธื›ืคืึธืœื’ืŸ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’ ืื™ืŸ ื“ืขื ืœืขื‘ืŸ ืฆื•ืงื•ื ืคึฟื˜. ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ (14ื˜ืŸ ืžืขืจืฅ): ื“ื™ ืจื’ืข ื˜ื™ื™ืœ ืื™ื– ืฉื•ื™ืŸ ืืจื•ื™ืก.

ืคึผืก ืคื•ืŸ ืื™ื‘ืขืจื–ืขืฆืขืจ

ืœื™ื™ืขื ืขืŸ ืื•ื™ืš ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’:

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’