αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž…αŸ†αžŽαžΆαŸ†αŸ” αž”αž€αž”αŸ’αžšαŸ‚αŸ– αžŸαŸ†αžŽαžΆαž‰αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αž·αžαž‡αžΆαž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αŸ†αž“αžΎαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› Istio αž’αžΆαž…αž“αžΉαž„αžŸαŸ’αžαž·αžαž“αŸ…αž›αžΎαž”αž”αžΌαžšαž˜αžΆαžαŸ‹αžšαž”αžŸαŸ‹αžœαž·αžŸαŸ’αžœαž€αžš DevOps αž‡αžΆαž…αŸ’αžšαžΎαž“ αžœαžΆαž‚αžΊαž‡αžΆαž•αž›αž·αžαž•αž›αžαŸ’αž˜αžΈαž‚αž½αžšαžŸαž˜ αžŠαŸ‚αž›αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αž—αžΆαž–αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαžŸαž˜αžαŸ’αžαž—αžΆαž–αžŠαŸ‚αž›αžœαžΆαž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž’αžΆαž…αžαŸ’αžšαžΌαžœαž€αžΆαžšαž–αŸαž›αžœαŸαž›αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αž‚αžΆαž›αŸ‹αŸ” αžœαž·αžŸαŸ’αžœαž€αžšαž‡αž“αž‡αžΆαžαž·αž’αžΆαž‘αžΊαž˜αŸ‰αž„αŸ‹ Rinor Maloku αžŠαŸ‚αž›αž‡αžΆαž’αŸ’αž“αž€αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž›αžΎαž€αžΆαžš cloud computing αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž’αŸ†αŸ—αž“αŸ…αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸ Orange Networks αž”αžΆαž“αžŸαžšαžŸαŸαžšαžŸαŸŠαŸαžšαžΈαžŸαž˜αŸ’αž—αžΆαžšαŸˆαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž‡αŸ’αžšαž˜αž»αž‡αž‘αžΉαž€αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ Istio αž™αŸ‰αžΆαž„αžšαž αŸαžŸ αž“αž·αž„αž‡αŸ’αžšαŸ…αŸ” αž‚αžΆαžαŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžšαžΏαž„αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž› Istio αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž‡αžΆαž‘αžΌαž‘αŸ… αž“αž·αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžœαžΆαž—αŸ’αž›αžΆαž˜αŸ—αžŠαŸ„αž™αž—αŸ’αž“αŸ‚αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

ធ៊ីស៊ីធូ - αž‚αž˜αŸ’αžšαŸ„αž„αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαž αž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αž˜αž€αž–αžΈ Google, IBM αž“αž·αž„ Lyft αŸ” αžœαžΆαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ microservices αžŠαžΌαž…αž‡αžΆαŸ–

  • αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αžšαžΆαž…αžšαžŽαŸαŸ– αž’αžŸαŸ‹αž–αŸαž›, αž–αŸ’αž™αžΆαž™αžΆαž˜, αž•αŸ’αž‘αž»αž€αžαž»αž›αŸ’αž™αž—αžΆαž–;
  • αžŸαž“αŸ’αžαž·αžŸαž»αžαŸ– αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž·;
  • αž€αžΆαžšαžŸαž„αŸ’αž€αŸαžαŸ– αžαžΆαž˜αžŠαžΆαž“, αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™, αž€αžαŸ‹αžαŸ’αžšαžΆαŸ”

αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž›αŸ‚αž„αž‡αžΆ "αž˜αžΈαž€αŸ’αžšαžΌ" αž‘αŸ€αžαž αžΎαž™αŸ” αžšαžΆαž›αŸ‹αž€αž·αž…αŸ’αž…αžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž’αž“αž’αžΆαž“αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž˜αŸ’αž›αŸƒαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ” αžαŸ„αŸ‡αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαŸ–

αž’αŸ’αž“αž€β€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž‚αŸ’αžšαž„β€‹αž‚αž˜αŸ’αžšαŸ„αž„αŸ– αžαžΎβ€‹αžαŸ’αžšαžΌαžœβ€‹αž…αŸ†αžŽαžΆαž™β€‹αž–αŸαž›β€‹αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αž–αž·αžŸαŸαžŸβ€‹αž˜αžαž·β€‹αž€αŸ‚αž›αž˜αŸ’αž’?
αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ– αžšαžαŸ‹αž–αžΈαžšαŸ”

MP: αžŸαŸ’αž’αžΈ?.. αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆ CRUD!
R: αž€αžΆαžšαž’αŸ’αžœαžΎ CRUD αž‚αžΊαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αžŠαŸαž„αžΆαž™αžŸαŸ’αžšαž½αž› αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αžŸαž·αž‘αŸ’αž’αž·αžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž”αžŽαŸ’αžαžΆαž‰αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‘αž»αž€αž…αž·αžαŸ’αž αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαžΎαž˜αŸ’αžαž„αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αž αž€αŸαžŠαžΌαž…αž‡αžΆ αž›αŸ†αž“αžΆαŸ†αž”αŸ†αž”αŸ‚αž€αžŸαŸ€αž‚αŸ’αžœαžΈ αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαž·αžαž·αž‡αž“αŸ” αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž•αž„αžŠαŸ‚αžšαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž›αž˜αž·αž“αž‚αžΆαŸ†αž„αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαž’αžŸαŸ‹αž–αŸαž›αž“αž·αž„ αžšαž“αžΆαŸ†αž„ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž‚αŸ†αžšαžΌαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž–αžΈαžš αžŸαžΌαž˜αž˜αžΎαž›αž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘ - αž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αŸ” αž”αž€αž”αŸ’αžšαŸ‚αŸ” )αž αžΎαž™αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αž‰αŸ’αž αžΆ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αžαžΆαž˜αžŠαžΆαž“ […]

αžŸαž˜αžΆαž‡αž·αž€αžŸαž—αžΆαŸ– ធូ αž’αž‰αŸ’αž…αžΉαž„αžαŸ„αŸ‡αž”αž‰αŸ’αž…αžΌαž›αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž‘αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αž›αž·αžαž•αž›αŸ”

αžαŸ’αž‰αž»αŸ†β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αž‚αŸ†αž“αž·αžβ€‹αž“αŸαŸ‡β€‹αž…αŸ’αž”αžΆαžŸαŸ‹β€‹αžŽαžΆαžŸαŸ‹αŸ– αž…αŸ†αž“αž½αž“β€‹αž‡αŸ†αž αžΆαž“β€‹αž“αž·αž„β€‹αž€αžΆαžšβ€‹αžαž·αžβ€‹αžαŸ†β€‹αž”αŸ’αžšαžΉαž„β€‹αž”αŸ’αžšαŸ‚αž„β€‹αžŠαŸ‚αž›β€‹αž‘αžΆαž˜αž‘αžΆαžšβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αžŸαŸαžœαžΆβ€‹αž˜αž½αž™β€‹αž‚αžΊβ€‹αž’αŸ†β€‹αžŸαž˜αŸ’αž”αžΎαž˜αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Istio αžŠαž€αž…αŸαž‰αž“αžΌαžœαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎ (αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž”αŸ†αžŽαž„αž‡αžΆαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜) αž–αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αŸ– αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ Kubernetes αŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸαžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž’αžΆαž“ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž…αŸ†αž–αŸ„αŸ‡ Kubernetes αž αžΎαž™αž˜αžΆαž“αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž”αž“αŸ’αžαž’αžΆαž“αžŸαž˜αŸ’αž—αžΆαžšαŸˆαž“αŸαŸ‡αŸ”

αž‚αŸ†αž“αž·αž

αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž›αŸ„αž€αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“ Istio αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž½αž™αž’αŸ’αžœαžΎαžŸαŸ†αžŽαžΎαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ– αž’αŸ’αžœαžΎαž€αžΆαžšαž”αŸ‰αž»αž“αž”αŸ‰αž„αžαŸ’αž˜αžΈ αž•αŸ’αžαž›αŸ‹αž–αŸαž›αžœαŸαž›αžΆαž’αžŸαŸ‹αž–αŸαž› αž”αžΎαž€αž§αž”αž€αžšαžŽαŸαž”αŸ†αž”αŸ’αž›αŸ‚αž„αžŸαŸ€αž‚αŸ’αžœαžΈαŸ”αž›αŸ”

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αž…αžšαžΆαž…αžšαžŽαŸαž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes

Istio αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž―αž€αž‘αŸαžŸ αž”αŸ†αž”αŸ‚αž€αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž–αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž€αžΆαžšαžšαŸ†αžαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž”αžŽαŸ’αžαžΆαž‰αŸ” αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž’αž“αž»αžœαžαŸ’αžαŸ–

  • αž€αžΆαžšαž’αžαŸ‹αž’αŸ’αž˜αžαŸ‹αž€αŸ†αž αž»αžŸαŸ– αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž›αŸαžαž€αžΌαžŠαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” αžœαžΆαž™αž›αŸ‹αžαžΆαžαžΎαžŸαŸ†αžŽαžΎαž“αŸαŸ‡αž”αžšαžΆαž‡αŸαž™αž αžΎαž™αž¬αž’αžαŸ‹ αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž‘αžΎαž„αžœαž·αž‰αŸ”
  • αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ CanaryαŸ– αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαžαŸ‚αž—αžΆαž‚αžšαž™αžαŸαžšαž“αŸƒαžŸαŸ†αžŽαžΎαž‘αŸ…αž€αžΆαž“αŸ‹αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”
  • αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž“αž·αž„αž˜αŸ‰αŸ‚αžαŸ’αžšαŸ– αžαžΎαžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž–αŸαž›αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΎαž˜αŸ’αž”αžΈαž†αŸ’αž›αžΎαž™αžαž”?
  • αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“ αž“αž·αž„αž€αžΆαžšαžŸαž„αŸ’αž€αŸαžαŸ– αž”αž“αŸ’αžαŸ‚αž˜αž”αž‹αž˜αž€αžαžΆαž–αž·αžŸαŸαžŸαž‘αŸ…αžŸαŸ†αžŽαžΎαž“αžΈαž˜αž½αž™αŸ— αž αžΎαž™αžαžΆαž˜αžŠαžΆαž“αž–αž½αž€αžœαžΆαžαžΆαž˜αž…αž„αŸ’αž€αŸ„αž˜αŸ”
  • αžŸαž“αŸ’αžαž·αžŸαž»αžαŸ– αž‘αžΆαž‰αž™αž€αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆ JWT αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αžŸαž·αž‘αŸ’αž’αž·αž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž›αž‘αŸ’αž’αž—αžΆαž–αž˜αž½αž™αž…αŸ†αž“αž½αž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ (αž–αž·αžαž‡αžΆαž˜αžΆαž“αžαž·αž…αžαž½αž…αžŽαžΆαžŸαŸ‹!) αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž€αŸ‹αž‘αžΆαž‰αž…αŸ†αžŽαžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž’αŸ’αž“αž€αŸ” αž₯αž‘αžΌαžœβ€‹αž™αžΎαž„β€‹αž…αžΌαž›β€‹αž˜αžΎαž›β€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αž›αž˜αŸ’αž’αž·αžβ€‹αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ!

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž’αŸŠαžΈαžŸαŸ’αžαžΌ

Istio αžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž…αžšαžΆαž…αžšαžŽαŸαž”αžŽαŸ’αžαžΆαž‰αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž…αŸ’αž”αžΆαž”αŸ‹αž‘αŸ…αžœαžΆ αžŠαŸ„αž™αž”αž‰αŸ’αž…αžΌαž›αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž†αŸ’αž›αžΆαžαžœαŸƒαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆαž’αž»αž„αž…αŸ†αž αŸ€αž„αž‘αŸ…αž€αŸ’αž“αž»αž„αž•αžαž“αžΈαž˜αž½αž™αŸ—αŸ” αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžαŸ’αžαž—αžΆαž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αž‡αžΆ a αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αž αžΎαž™αž–αž½αž€αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαžΆαž˜αžœαž“αŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎ αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„.

αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž•αž αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ Istio αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž–αŸαž‰αžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŸαžΌαž˜αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ†αž”αŸ’αž›αŸ‚αž„αžŸαŸ€αž‚αŸ’αžœαžΈαž˜αŸ’αžαž„αž‘αŸ€αžαŸ”

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αžΆαžšαž–αŸ’αž™αžΆαž™αžΆαž˜ αž“αž·αž„αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αžŸαŸ€αž‚αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„ Envoy

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž„αŸ’αžαŸαž”:

  1. αž”αŸ’αžšαŸαžŸαž·αž (αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž’αž»αž„αž…αŸ†αž αŸ€αž„ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆ αž•αž›αž·αžαž•αž›αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ - αž”αŸ’αžšαž αŸ‚αž› αž”αž€αž”αŸ’αžšαŸ‚αŸ” ) αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαž‘αŸ…αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ B αž αžΎαž™αž”αžšαžΆαž‡αŸαž™αŸ”
  2. Envoy Sidecar αž–αŸ’αž™αžΆαž™αžΆαž˜αž˜αŸ’αžαž„αž‘αŸ€αž (αž–αŸ’αž™αžΆαž™αžΆαž˜αž˜αŸ’αžαž„αž‘αŸ€αž). (1​)
  3. αžŸαŸ†αžŽαžΎαž”αžšαžΆαž‡αŸαž™ αž αžΎαž™αžαŸ’αžšαžΌαžœαžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž›αž αŸ…αžœαžΆαžœαž·αž‰αŸ”
  4. αžœαžΆαž”αžΎαž€ Circuit Breaker αž αžΎαž™αž αŸ…αžŸαŸαžœαžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” (2​)

αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαžΆαž€αž›αŸ’αž”αž„αž˜αŸ’αžαž„αž‘αŸ€αžαž‘αŸ αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αžŸαŸ€αž‚αŸ’αžœαžΈ αž“αž·αž„αž€αžΆαžšαžšαž€αžƒαžΎαž‰αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ X, Y ឬ ZαŸ” αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡ αž“αž·αž„αž’αŸ’αžœαžΈαŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαž‚αžΊαž’αžΆαž…αžšαž€αž”αžΆαž“αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ Istio αž“αž·αž„αž˜αž·αž“αž‘αžΆαž˜αž‘αžΆαžš αž‘αŸ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαŸ”

αž’αžŸαŸ’αž…αžΆαžšαŸ’αž™! αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž…αž„αŸ‹αž‘αŸ…αž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžšαž‡αžΆαž˜αž½αž™ Istio αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž“αŸ…αžαŸ‚αž˜αžΆαž“αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™αžαŸ’αž›αŸ‡ αž”αžΎαž€αžŸαŸ†αžŽαž½αžšαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸαŸ‡αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαžŸαž€αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ’αžšαž”αŸ‹αž±αž€αžΆαžŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αž‡αžΈαžœαž·αž αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™αž–αžΈαž’αž˜αŸ’αž˜αž‡αžΆαžαž·αž˜αž½αž™αŸ– αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αžαž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž˜αž·αž“αžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαžŽαžΆαž˜αž½αž™αŸ”

αž αžΎαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž’αŸ’αž“αž€αžŸαž½αžšαžαžΆ "αžαžΎαžœαžΆαž’αžΆαž…αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αž”αžΆαž“αž‘αŸ?"

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžšαžαžΆαž˜αžŸαž˜αž»αž‘αŸ’αžšαž αžΎαž™ αžαŸ„αŸ‡αž˜αž€αžŸαŸ’αž‚αžΆαž›αŸ‹αž™αž“αŸ’αžαž αŸ„αŸ‡αž”αž‰αŸ’αž‡αžΆαŸ”

αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„

αžœαžΆαž˜αžΆαž“αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž”αžΈαž™αŸ‰αžΆαž„αŸ– αžŸαžΆαž€αž›αŸ’αž”αž„, αž›αžΆαž™ ΠΈ CitadelαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαžšαž½αž˜αž‚αŸ’αž“αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αŸαžŸαž€αž‡αž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αž…αžšαžΆαž…αžšαžŽαŸ αž–αž„αŸ’αžšαžΉαž„αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™ αž“αž·αž„αž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΌαžšαž›αŸαžαŸ” αžαžΆαž˜αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžœαžΆαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡:

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž“αŸƒαž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αžΆαž˜αž½αž™αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž”αŸαžŸαž€αž‡αž“ (ឧ. αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎ Kubernetes CRD (αž“αž·αž™αž˜αž“αŸαž™αž’αž“αž’αžΆαž“αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“) αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™ Istio αž“αž·αž„αž˜αžΆαž“αž”αŸ†αžŽαž„αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸαŸ‡αŸ” αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž‚αžΊαžαžΆαž–αž½αž€αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž’αž“αž’αžΆαž“αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αžŠαŸ‚αž›αž˜αžΆαž“αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹αŸ” αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž αž’αž“αž’αžΆαž“αž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αžŠαŸ„αž™αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž”αŸαžŸαž€αž‡αž“αŸ”

αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™ Istio

αž™αžΎαž„αž”αžΆαž“αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαž”αžŸαŸ‹ Istio αž…αŸ†αž–αŸ„αŸ‡αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαž‘αŸαŸ– αžαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„ Istio αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž“αž·αž™αžΆαž™αž±αŸ’αž™αžαŸ’αžšαž„αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαžŠαžΉαž„αž’αŸ†αž–αžΈαžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹ Istio αžαžŽαŸˆαžŠαŸ‚αž›αžαŸ’αžšαžΈαž˜αžΆαž“αž‘αžΉαž€ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžŸαž½αžšαžαŸ’αž›αž½αž“αž―αž„αžαžΆ "αžαžΎαž‘αžΉαž€αž‡αžΆαž’αŸ’αžœαžΈ?"

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αž§αž‘αžΆαž αžšαžŽαŸ Victoria Dimitrakopoulos: - αžαžΎαž’αŸ’αž“αž€αž…αžΌαž›αž…αž·αžαŸ’αžαž‘αžΉαž€αž™αŸ‰αžΆαž„αž˜αŸ‰αŸαž…? - αžαžΎαž‘αžΉαž€αž‡αžΆαž’αŸ’αžœαžΈ?

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž’αŸ’αž“αž€αž’αžΆαž…αž™αž€αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŸαž˜αžΆαžŸαž—αžΆαž‚ Istio αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž“αžΉαž„αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαž€αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž…αŸαž‰ αž’αŸ’αžœαžΈαŸ—αž“αžΉαž„αž›αŸ’αž’αž˜αŸ’αžαž„αž‘αŸ€αžαŸ” αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αž”αžΆαžαŸ‹αž”αž„αŸ‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™ Istio αŸ”

αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ - αžαŸ„αŸ‡αž™αž€αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž“αŸαŸ‡αž‘αŸ…αž’αž“αž»αžœαžαŸ’αž!

Istio αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž

Istio αž‘αžΆαž˜αž‘αžΆαžšαž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αžŠαŸ‚αž›αž˜αžΆαž“ vCPU αž™αŸ‰αžΆαž„αžαž·αž… 4 αž“αž·αž„ RAM 8 GB αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž…αž„αŸ’αž€αŸ„αž˜αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž“αž·αž„αž’αŸ’αžœαžΎαžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž–αžΈαž’αžαŸ’αžαž”αž‘ αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎ Google Cloud Platform αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αž˜αžΈ αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ ៣០០ αžŠαž»αž›αŸ’αž›αžΆαžš.

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αž„αŸ’αž€αžΎαžαž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ Kubernetes αžαžΆαž˜αžšαž™αŸˆαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž»αž„αžŸαžΌαž› αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αž‘αžΎαž„ Istio αžαžΆαž˜αžšαž™αŸˆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹ Helm αŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž˜αž½αž€

αžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Helm αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ αž―αž€αžŸαžΆαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžš. αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž‚αŸ†αžšαžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αž‘αžΎαž„ Istio αž“αŸ…αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Istio

αž‘αžΆαž‰αž™αž€αž’αž“αž’αžΆαž“ Istio αž–αžΈ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαŸ” (αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžŠαžΎαž˜αž‘αŸ…αž€αŸ†αžŽαŸ‚ 1.0.5 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžαžΌαžšαž‘αŸ…αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž–αŸ„αž›αž‚αžΊ 1.0.6 - αž”αŸ’αžšαž αŸ‚αž›αž”αž€αž”αŸ’αžšαŸ‚αŸ” )αžŸαŸ’αžšαž„αŸ‹αž˜αžΆαžαž·αž€αžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αžαžαžαŸ‚αž˜αž½αž™ αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž αŸ…αž‡αžΆαž”αž“αŸ’αž [istio-resources].

αžŠαžΎαž˜αŸ’αž”αžΈαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž’αž“αž’αžΆαž“ Istio αž”αž„αŸ’αž€αžΎαž namespace αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ 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

αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αžšαž½αž…αžšαžΆαž›αŸ‹αž αžΎαž™αžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αžαž“αŸ…αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžœαž·αž—αžΆαž‚αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ

αž…αžΌαžšαž™αžΎαž„αž”αŸ’αžšαžΎαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Sentiment Analysis αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžšαž½αž…αž αžΎαž™ αž’αžαŸ’αžαž”αž‘αžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ Kubernetes. αžœαžΆαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹ Istio αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αžΆαž“αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž…αŸ†αž“αž½αž“αž”αž½αž“αŸ–

  1. RЎRΞΌSΠ‚RΠ†RΡ‘SΠƒ SA-FrontenαžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Reactjs;
  2. RЎRΞΌSΠ‚RΠ†RΡ‘SΠƒ SA-WebAppαžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎαžŸαŸ†αžŽαž½αžšαž€αžΆαžšαžœαž·αž—αžΆαž‚αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ;
  3. RЎRΞΌSΠ‚RΠ†RΡ‘SΠƒ SA-LogicαžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αžαŸ’αž›αž½αž“αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹ αž€αžΆαžšαžœαž·αž—αžΆαž‚αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ;
  4. RЎRΞΌSΠ‚RΠ†RΡ‘SΠƒ SA- αž˜αžαž·αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž˜αžαž·αž€αŸ‚αž›αž˜αŸ’αž’αž–αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αŸ†αž–αžΈαž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž€αžΆαžšαžœαž·αž—αžΆαž‚αŸ”

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž“αŸαŸ‡ αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž™αžΎαž„αž€αŸαžƒαžΎαž‰ Ingress Controller αžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž”αž‰αŸ’αž‡αžΌαž“αžŸαŸ†αžŽαžΎαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαž˜αžŸαŸ’αžšαž”αŸ” Istio αž”αŸ’αžšαžΎαž‚αŸ†αž“αž·αžαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Ingress Gateway αžšαž”αžŸαŸ‹αžœαžΆ αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αžΉαž„αž’αŸ’αžœαžΎαžαžΆαž˜αŸ”

αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αž½αž™αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž–αžΈ Istio

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘ αžŸαžΌαž˜αž€αŸ’αž›αžΌαž“αžƒαŸ’αž›αžΆαŸ†αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž‡αŸ†αž“αžΆαž‰ istio. αžœαžΆαž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes αž“αž·αž„ Istio αŸ”

αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžšαžαž™αž“αŸ’αžαž…αŸ†αž αŸ€αž„

αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· ឬ αžŠαŸ„αž™αžŠαŸƒ. αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αžΌαž›αž’αž»αž„αž…αŸ†αž αŸ€αž„αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžŸαŸ’αž›αžΆαž€αž‘αŸ…αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ istio-injection=enabledαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

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

αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž•αžαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ (default) αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αž»αž„αž…αŸ†αž αŸ€αž„αžšαž”αžŸαŸ‹αžœαžΆαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžœαžΆ αžŸαžΌαž˜αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαžΆαž€αž›αŸ’αž”αž„ αžŠαŸ„αž™αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαž root αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„ [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
αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž”αŸαžŸαž€αž‡αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž•αžαžαž›αž˜αž½αž™αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž αžΎαž™ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž…αžšαžΆαž…αžšαž…αžΌαž›αž…αžΌαž›αž˜αž€αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž…αŸ’αžšαž€αž‘αŸ’αžœαžΆαžšαž…αžΌαž›

αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž›αŸ’αž’αž”αŸ†αž•αž»αžαžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ (αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž…αžšαžΆαž…αžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜) αž‚αžΊαž†αŸ’αž›αž„αž€αžΆαžαŸ‹ αž…αŸ’αžšαž€αž‘αŸ’αžœαžΆαžšαž…αžΌαž› αž“αŸ…αž€αŸ’αž“αž»αž„ 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 αž“αŸαŸ‡αžαžΆαž˜αžšαž™αŸˆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡ αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ Istio αžšαžΆαžšαžΆαŸ†αž„αž…αžšαžΆαž…αžšαžŽαŸαž…αžΌαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”, Gateway αž˜αž·αž“αž‘αžΆαž“αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αŸ”

αž’αž“αž’αžΆαž“αž…αŸ’αžšαž€αž•αŸ’αž›αžΌαžœ

Gateway αž‚αžΊαž‡αžΆ CRD (Custom Resource Definition) αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„ Istio αž“αŸ…αž€αŸ’αž“αž»αž„ cluster αž αžΎαž™αž”αžΎαž€αž›αž‘αŸ’αž’αž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αŸ’αžšαž€ αž–αž·αž’αžΈαž€αžΆαžš αž“αž·αž„ hosts αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž…αžšαžΆαž…αžšαž…αžΌαž›αŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž…αž„αŸ‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž…αžšαžΆαž…αžš HTTP αž“αŸ…αž›αžΎαž…αŸ’αžšαž€ 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 services:

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αž•αŸ’αž›αžΌαžœαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ VirtualServices

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž‚αž½αžšαž•αŸ’αž‰αžΎαž‘αŸ… SA-FrontendαŸ–

  • αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸ…αžαžΆαž˜αž•αŸ’αž›αžΌαžœ / αž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ… SA-Frontend αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“ index.html;
  • αž•αŸ’αž›αžΌαžœαž”αž»αž–αŸ’αžœαž”αž‘ /static/* αžαŸ’αžšαžΌαžœαžαŸ‚αž•αŸ’αž‰αžΎαž‘αŸ… SA-Frontend αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž―αž€αžŸαžΆαžšαž‹αž·αžαž·αžœαž“αŸ’αžαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž αžŠαžΌαž…αž‡αžΆ CSS αž“αž·αž„ JavaScript αŸ”
  • αž•αŸ’αž›αžΌαžœαžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžŠαŸ„αž™αž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαŸ” '^.*.(ico|png|jpg)$'αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ… SA-Frontend αž–αžΈαž–αŸ’αžšαŸ„αŸ‡ αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž›αžΎαž‘αŸ†αž–αŸαžšαŸ”

αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ (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. αžŸαŸαžœαžΆβ€‹αž“αž·αž˜αŸ’αž˜αž·αžβ€‹αž“αŸαŸ‡β€‹αžŸαŸ†αžŠαŸ…β€‹αž›αžΎβ€‹αžŸαŸ†αžŽαžΎβ€‹αžŠαŸ‚αž›β€‹αž˜αž€β€‹αžŠαž›αŸ‹ 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 αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž˜αŸ’αžšαžΎ API αžšαž”αžŸαŸ‹ Kubernetes αž”αž„αŸ’αž€αžΎαžαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αžŠαŸ„αž™ Istio Control Plane αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈ Envoy αžšαž”αžŸαŸ‹ pod αž“αžΈαž˜αž½αž™αŸ—αŸ” αž αžΎαž™αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ Ingress Gateway αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαŸαžŸαž·αžαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ Control Plane αŸ” αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αŸ–

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Istio-IngressGateway αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœαžŸαŸ’αž“αžΎαžŸαž»αŸ†

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžœαž·αž—αžΆαž‚αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“αž“αŸ…αž›αžΎ http://{EXTERNAL-IP}/. αž€αž»αŸ†αž”αžΆαžšαž˜αŸ’αž— αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž€αž˜αž·αž“αžƒαžΎαž‰αŸ– αž–αŸαž›αžαŸ’αž›αŸ‡αžœαžΆαžαŸ’αžšαžΌαžœαž…αŸ†αžŽαžΆαž™αž–αŸαž›αž™αžΌαžšαž”αž“αŸ’αžαž·αž…αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž αžΎαž™ Envoy αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–.

αž˜αž»αž“αž“αžΉαž„αž”αž“αŸ’αž αžŸαžΌαž˜αž›αŸαž„αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αžαž·αž…αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž…αžšαžΆαž…αžšαžŽαŸαŸ” (αžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ - αž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αŸ” transl αŸ” ).

Kiali: αž€αžΆαžšαžŸαž„αŸ’αž€αŸαž

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžšαžŠαŸ’αž‹αž”αžΆαž› 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

Grafana: αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αž˜αŸ‰αŸ‚αžαŸ’αžš

αž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž”αžΆαž“αž“αŸ… Istio αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ Prometheus αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž˜αžΎαž›αžƒαžΎαž‰αžŠαŸ„αž™ 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 αž“αŸ…αž‡αŸ’αžšαž»αž„αžαžΆαž„αž†αŸ’αžœαŸαž„αžαžΆαž„αž›αžΎ αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ sa-web-appαžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž”αžΆαž“αŸ–

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž€αŸ†αž–αž»αž„β€‹αžšαž„αŸ‹αž…αžΆαŸ†β€‹αž™αžΎαž„β€‹αž“αŸ…β€‹αž‘αžΈβ€‹αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž€αžΆαžšβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž‘αž‘αŸβ€‹αž“αž·αž„β€‹αž‚αž½αžšβ€‹αž±αŸ’αž™β€‹αž’αž»αž‰β€‹αž‘αŸ’αžšαžΆαž“αŸ‹β€‹αž‘αžΆαŸ†αž„β€‹αžŸαŸ’αžšαž»αž„ - αž€αžΆαžšβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž‚αŸ’αžšαž„β€‹αž“αžΉαž„β€‹αž˜αž·αž“β€‹αžŠαŸ‚αž›β€‹αž™αž›αŸ‹αž–αŸ’αžšαž˜β€‹αž…αŸ†αž–αŸ„αŸ‡β€‹αž€αžΆαžšβ€‹αž“αŸαŸ‡β€‹αŸ” αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαžαž”αž“αŸ’αž‘αž»αž€αžαžΌαž…αž˜αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

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

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž€αŸ’αžšαžΆαž αŸ’αžœαžŠαŸ‚αž›αž›αŸ’αž’αž‡αžΆαž„αž˜αž»αž“ αž αžΎαž™αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž–αž½αž€αžœαžΆ αž§αž”αž€αžšαžŽαŸ Prometheus αžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž“αž·αž„ Grafana αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αžŸαž·αž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αžŸαž»αžαž—αžΆαž– αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’/αž€αžΆαžšαžαž™αž…αž»αŸ‡αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαžΆαž˜αž–αŸαž›αžœαŸαž›αžΆαŸ”

αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžŸαŸ†αžŽαžΎαžαžΆαž˜αžŠαžΆαž“αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”

Jaeger: αžαžΆαž˜αžŠαžΆαž“

αž™αžΎαž„β€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αž€αžΆαžšβ€‹αžαžΆαž˜β€‹αžŠαžΆαž“β€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αžαŸ‚β€‹αž™αžΎαž„β€‹αž˜αžΆαž“β€‹αžŸαŸαžœαžΆβ€‹αž€αžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž…αŸ’αžšαžΎαž“ αžœαžΆβ€‹αž€αžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž›αŸ†αž”αžΆαž€β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αžˆαžΆαž“β€‹αž‘αŸ…β€‹αžšαž€β€‹αž˜αžΌαž›αž αŸαžαž»β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž”αžšαžΆαž‡αŸαž™αŸ” αžαŸ„αŸ‡αž˜αžΎαž›αž€αžšαžŽαžΈαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αž–αžΈαžšαžΌαž”αž—αžΆαž–αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
αž§αž‘αžΆαž αžšαžŽαŸαž’αž˜αŸ’αž˜αžαžΆαž“αŸƒαžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™

αžŸαŸ†αžŽαžΎαž”αžΆαž“αž˜αž€, αž’αŸ’αž›αžΆαž€αŸ‹ - αžαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž‡αžΆβ€‹αž αŸαžαž»αž•αž›? αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ†αž”αžΌαž„? αž¬αž‘αžΈαž–αžΈαžš? αž˜αžΆαž“αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž‘αžΆαŸ†αž„αž–αžΈαžš - αžαŸ„αŸ‡αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αžΈαž˜αž½αž™αŸ—αŸ” αžαžΎαž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αžαŸ’αž›αž½αž“αž―αž„αž’αŸ’αžœαžΎαž”αŸ‚αž”αž“αŸαŸ‡αž‰αžΉαž€αž‰αžΆαž”αŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαžΆ? αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊαžŠαžΌαž…αž‡αžΆαž’αŸ’αž“αž€αžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž„αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ...

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž αžΆαž‘αžΌαž‘αŸ…αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž“αž·αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαž˜αžŠαžΆαž“αž…αŸ‚αž€αž…αžΆαž™ αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž”αž‰αŸ’αž‡αžΌαž“αž”αž‹αž˜αž€αžαžΆαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž‘αŸ…αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž–αŸαžαŸŒαž˜αžΆαž“αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαž˜αžŠαžΆαž“ αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαŸ†αžŽαžΎαŸ” αž“αŸαŸ‡αž‡αžΆαžšαžΌαž”αž—αžΆαž–αŸ–

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
TraceId αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŸαŸ†αžŽαžΎ

Istio αž”αŸ’αžšαžΎ Jaeger Tracer αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ OpenTracing API αž―αž€αžšαžΆαž‡αŸ’αž™αž–αžΈαž’αŸ’αž“αž€αž›αž€αŸ‹αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ 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/ αž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ sa-web-app. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΊαž“αž»αž™αž‘αž˜αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡ αž”αž„αŸ’αž αžΆαž‰/αž”αž„αŸ’αž€αžΎαžαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž“αŸ…αž›αžΎαž‘αŸ†αž–αŸαžš αž αžΎαž™αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž…αž»αž…αž›αžΎαž”αŸŠαžΌαžαž»αž„ αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαžΆαž“αžŠαŸ‚αž›αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αžŠαžΆαž“αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αž - αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŽαžΆαž˜αž½αž™ - αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαžŠαžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž‘αžΎαž„αŸ–

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αžŠαžΆαž“αž“αŸαŸ‡αž”αž„αŸ’αž αžΆαž‰αŸ–

  1. αž–αžΆαž€αŸ’αž™αžŸαž»αŸ†αž…αžΌαž›αž˜αž€ istio-ingressgateway (αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜β€‹αžŠαŸ†αž”αžΌαž„β€‹αž‡αžΆαž˜αž½αž™β€‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜β€‹αž˜αž½αž™ αž αžΎαž™β€‹αž›αŸαžβ€‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹β€‹αžŠαžΆαž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžŸαŸ†αžŽαžΎ) αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž–αžΈβ€‹αž“αŸ„αŸ‡β€‹αž…αŸ’αžšαž€β€‹αž…αŸαž‰β€‹αž“αžΉαž„β€‹αž•αŸ’αž‰αžΎβ€‹αžŸαŸ†αžŽαžΎβ€‹αž‘αŸ…β€‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ sa-web-app.
  2. αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ sa-web-app αžŸαŸ†αžŽαžΎβ€‹αž“αŸαŸ‡β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‘αž‘αž½αž›β€‹αžŠαŸ„αž™β€‹αžšαžαž™αž“αŸ’αžβ€‹αžαžΆαž„β€‹αž”αŸ’αžšαŸαžŸαž·αž β€œαž€αžΌαž“β€ αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž€αŸ’αž“αž»αž„β€‹αž…αž“αŸ’αž›αŸ„αŸ‡ (αž“αŸ„αŸ‡β€‹αž‡αžΆβ€‹αž˜αžΌαž›β€‹αž αŸαžαž»β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αžƒαžΎαž‰β€‹αžœαžΆβ€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αžŠαžΆαž“) αž αžΎαž™β€‹αž”αž‰αŸ’αž‡αžΌαž“β€‹αž”αž“αŸ’αžβ€‹αž‘αŸ…β€‹αž€αž»αž„αžαžΊαž“αŸαžšαŸ” sa-web-app. (αžšαž™αŸˆαž–αŸαž› - αž―αž€αžαžΆαž‘αžΌαž‡αžΈαžαž›αž“αŸƒαž€αžΆαžšαž„αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Jaeger αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡ αž–αŸαž›αžœαŸαž›αžΆαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αž“αž·αž„αžšαž™αŸˆαž–αŸαž›αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž…αž“αŸ’αž›αŸ„αŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž“αž·αž„αž”αž‰αŸ’αž‡αžΆαŸ” αž€αŸ’αžšαžΆαž αŸ’αžœ acyclic αžŠαžΉαž€αž“αžΆαŸ†αž“αŸƒαžœαž·αžŸαžΆαž›αž—αžΆαž–αž”αž„αŸ’αž€αžΎαžαž‡αžΆαžŠαžΆαž“αž˜αž½αž™αŸ” - αž”αŸ’αžšαž αŸ‚αž› αž”αž€αž”αŸ’αžšαŸ‚αŸ” )
  3. αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš αž€αžΆαžšαžœαž·αž—αžΆαž‚αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ. αžŠαžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžšαž½αž…αž αžΎαž™αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ i.e. αž–αž½αž€αž‚αŸαž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΌαžŠαŸ”
  4. αž…αžΆαž”αŸ‹αž–αžΈαž–αŸαž›αž“αŸαŸ‡αžαž‘αŸ… αžŸαŸ†αžŽαžΎ POST αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„ សអ-αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆ. αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαžΆαž“αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž–αžΈ sa-web-app.
  5. ...

αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αŸ– αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αŸ†αž αžΆαž“αž‘αžΈ 4 αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αž½αžšαžαŸ‚αžƒαžΎαž‰αž”αž‹αž˜αž€αžαžΆαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™ Istio αž αžΎαž™αž”αž‰αŸ’αž‡αžΌαž“αžœαžΆαž‘αŸ…αžŸαŸ†αžŽαžΎαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαžΌαž…αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž‡αžΆαž˜αž½αž™ Istio αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1
(A) Istio αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž”αž‹αž˜αž€αžαžΆ; (ខ) αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αŸ’αž”αžΆαž›

Istio αž’αŸ’αžœαžΎαž€αžΆαžšαž„αžΆαžšαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚... αž”αž„αŸ’αž€αžΎαžαž”αž‹αž˜αž€αžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαž…αžΌαž› αž”αž„αŸ’αž€αžΎαžαžœαž·αžŸαžΆαž›αž—αžΆαž–αžαŸ’αž˜αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαŸ‚αž‘αžΆαŸ†αž“αžΈαž˜αž½αž™αŸ— αž“αž·αž„αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž–αž½αž€αž‚αŸαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžŠαŸ„αž™αž˜αž·αž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž”αž‹αž˜αž€αžαžΆαžαžΆαž„αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž•αŸ’αž›αžΌαžœαžŠαžΆαž“αžŸαŸ†αžŽαžΎαž–αŸαž‰αž›αŸαž‰αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαžαŸ‹αž”αž„αŸ‹αŸ”

αž”αž‹αž˜αž€αžαžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž™αž€αž˜αž€αž–αž·αž…αžΆαžšαžŽαžΆαŸ–

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

αž“αŸαŸ‡β€‹αž˜αž·αž“β€‹αž˜αŸ‚αž“β€‹αž‡αžΆβ€‹αž€αž·αž…αŸ’αž…αž€αžΆαžšβ€‹αž›αŸ†αž”αžΆαž€β€‹αž“αŸ„αŸ‡β€‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αžŸαž˜αŸ’αžšαž½αž›β€‹αžŠαž›αŸ‹β€‹αž€αžΆαžšβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž˜αžΆαž“β€‹αžšαž½αž…β€‹αž αžΎαž™αŸ” αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” - αž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ sa-web-app αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ RestTemplate αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž”αž‹αž˜αž€αžαžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Jaeger αž“αž·αž„ OpenTracing αž‘αŸ… αž€αžΆαžšαž‰αŸ€αž“αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ”.

αž…αŸ†αžŽαžΆαŸ†αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Sentiment Analysis αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„ Flask, Spring αž“αž·αž„ ASP.NET CoreαŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹ (αž¬αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹) αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž€αžΆαžšαž•αžΆαž€αž–αž·αž“αŸαž™ routing, network traffic management, security, etc.!

αž…αŸ†αžŽαžΆαŸ†αŸ” αž”αž€αž”αŸ’αžšαŸ‚αŸ– αžŸαžΌαž˜αž’αžΆαž“αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸƒαžŸαž˜αŸ’αž—αžΆαžšαŸˆαž“αŸ…αž›αžΎ Istio αž–αžΈ Rinor Maloku αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αžŠαŸ‚αž›αž“αžΉαž„αž’αŸ’αžœαžΎαžαžΆαž˜αž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αžΆαž–αŸαž›αžαžΆαž„αž˜αž»αžαž“αŸαŸ‡αŸ” αž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™ (αžαŸ’αž„αŸƒαž‘αžΈαŸ‘αŸ€ αžαŸ‚αž˜αžΈαž“αžΆ)αŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈαž–αžΈαžšαž“αŸƒ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž½αž…αž αžΎαž™αŸ”

PS αž–αžΈαž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚

αžŸαžΌαž˜αž’αžΆαž“αž•αž„αžŠαŸ‚αžšαž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹