рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЦрд╛рд▓реАрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рдЖрдзреБрдирд┐рдХ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЙрдкрд╛рдп рдмрдирд▓реЗ рдЖрд╣реЗрдд. рдЬрд░реА Istio рд╣реЗ рдЕрдиреЗрдХ DevOps рдЕрднрд┐рдпрдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдУрдард╛рд╡рд░ рдЕрд╕рд▓реЗ рддрд░реА, рд╣реЗ рдПрдХ рдирд╡реАрди рдЙрддреНрдкрд╛рджрди рдЖрд╣реЗ рдЬреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рд╕рд░реНрд╡рд╕рдорд╛рд╡реЗрд╢рдХ рдЕрд╕рд▓реЗ рддрд░реА, рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдмрд░рд╛рдЪ рд╡реЗрд│ рд▓рд╛рдЧреЗрд▓. рджреВрд░рд╕рдВрдЪрд╛рд░ рдХрдВрдкрдиреА рдСрд░реЗрдВрдЬ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдордзреАрд▓ рдореЛрдареНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреБрдЯрд┐рдВрдЧрд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рд▓реЗрд▓реЗ рдЬрд░реНрдорди рдЕрднрд┐рдпрдВрддрд╛ рд░рд┐рдиреЛрд░ рдорд╛рд▓реЛрдХреВ рдпрд╛рдВрдиреА рд╕рд╛рдордЧреНрд░реАрдЪреА рдПрдХ рдЕрджреНрднреБрдд рдорд╛рд▓рд┐рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА рдЖрд╣реЗ рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрд╕реНрдЯрд┐рдУрдордзреНрдпреЗ рдЬрд▓рдж рдЖрдгрд┐ рдЦреЛрд▓рд╡рд░ рдЬрд╛рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЗрд╕реНрдЯрд┐рдУ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдХрд╛рдп рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдЖрдкрдг рддреЗ рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдбреЛрд│реНрдпрд╛рдВрдиреА рдкрдЯрдХрди рдХрд╕реЗ рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдпрд╛рд╕рд╣ рддреЛ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрдереЗрдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рддреЛ.
рдЗрд╕реНрдЯрд┐рдУ тАФ Google, IBM рдЖрдгрд┐ Lyft рдЪреНрдпрд╛ рд╕рдВрдШрд╛рдВрдЪреНрдпрд╛ рд╕рд╣рдХрд╛рд░реНрдпрд╛рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдкреНрд░рдХрд▓реНрдк. рд╣реЗ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕-рдЖрдзрд╛рд░рд┐рдд рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЙрджреНрднрд╡рдгрд╛рд▒реНрдпрд╛ рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ, рдЬрд╕реЗ рдХреА:
- рд╡рд╛рд╣рддреВрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди: рдХрд╛рд▓рдмрд╛рд╣реНрдп, рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди, рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ;
- рд╕реБрд░рдХреНрд╖рд╛: рдЕрдВрддрд┐рдо рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛;
- рдирд┐рд░реАрдХреНрд╖рдгрдХреНрд╖рдорддрд╛: рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ, рд▓реЙрдЧрд┐рдВрдЧ.
рдпрд╛ рд╕рд░реНрд╡рд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░рд╛рд╡рд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдирдВрддрд░ рддреБрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛ рдпрд╛рдкреБрдвреЗ тАЬрдорд╛рдпрдХреНрд░реЛтАЭ рд░рд╛рд╣рдгрд╛рд░ рдирд╛рд╣реАрдд. рдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрддреНрди рдореНрд╣рдгрдЬреЗ рдХрдВрдкрдиреАрдЪреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдЕрдкрд╡реНрдпрдп рдЖрд╣реЗ рдЬреНрдпрд╛рдЪрд╛ рдереЗрдЯ рд╡реНрдпрд╡рд╕рд╛рдп рдореВрд▓реНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдЪрд▓рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ:
рдкреНрд░рдХрд▓реНрдк рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ: рдлреАрдбрдмреЕрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рддреА рд╡реЗрд│ рд▓рд╛рдЧрддреЛ?
рд╡рд┐рдХрд╕рдХ: рджреЛрди рд╕реНрдкреНрд░рд┐рдВрдЯ.рдЦрд╛рд╕рджрд╛рд░: рдХрд╛рдп?... рд╣реЗ рдлрдХреНрдд CRUD рдЖрд╣реЗ!
R: CRUD рдХрд░рдгреЗ рд╣рд╛ рд╕реЛрдкрд╛ рднрд╛рдЧ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддрд░реАрд╣реА рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдЖрдгрд┐ рдЕрдзрд┐рдХреГрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдиреЗрдЯрд╡рд░реНрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рд╡рд┐рдирдВрддреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддрд╕реЗрдЪрд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдирдореБрдирд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдордзреНрдпреЗ. рддрд╕реЗрдЪ, рд╕рдВрдкреВрд░реНрдг рд╕рд┐рд╕реНрдЯреАрдо рдХреНрд░реЕрд╢ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдпрддрд╛ рдЖрдгрд┐рдмрд▓реНрдХрд╣реЗрдбреНрд╕ (рдЙрд▓реНрд▓реЗрдЦрд┐рдд рджреЛрдиреНрд╣реА рдирдореБрдиреНрдпрд╛рдВрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╛рдВрд╕рд╛рдареА, рд▓реЗрдЦрд╛рдд рдирдВрддрд░ рдкрд╣рд╛ - рдЕрдВрджрд╛рдЬреЗ рднрд╛рд╖рд╛рдВрддрд░.), рдЖрдгрд┐ рд╕рдорд╕реНрдпрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ, рдЯреНрд░реЗрд╕рд┐рдВрдЧ, [тАж]рдЦрд╛рд╕рджрд╛рд░: рдЕрд░реЗ, рдордЧ рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡реЗрдордзреНрдпреЗ рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░реВрдпрд╛.
рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рдХрд▓реНрдкрдирд╛ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ: рдПрдХ рд╕реЗрд╡рд╛ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкрд╛рд╡рд▓реЗ рдЖрдгрд┐ рдкреНрд░рдпрддреНрдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдЪрдВрдб рдЖрд╣реЗ. рдпрд╛ рд▓реЗрдЦрд╛рдд, рд╕реЗрд╡рд╛рдВрдордзреВрди Istio рд╡рд░ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдХреНрд▓рд┐рд╖реНрдЯрддрд╛ (рдЬреЗ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рдореНрд╣рдгреВрди рд╣реЗрддреВ рдирд╛рд╣реА) рдХрд╕реЗ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЗ рддреЗ рдЖрдореНрд╣реА рдкрд╛рд╣реВ.
рд╢реЗрд░рд╛: рд╣рд╛ рд▓реЗрдЦ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреЗ рдХрд╛рд░реНрдп рдЬреНрдЮрд╛рди рдЖрд╣реЗ. рдЕрдиреНрдпрдерд╛, рдореА рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ
Istio рдХрд▓реНрдкрдирд╛
Istio рдирд╕рд▓реЗрд▓реНрдпрд╛ рдЬрдЧрд╛рдд, рдПрдХ рд╕реЗрд╡рд╛ рджреБрд╕рд░реНтАНрдпрд╛рд▓рд╛ рдереЗрдЯ рд╡рд┐рдирдВрддреА рдХрд░рддреЗ рдЖрдгрд┐ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕, рд╕реЗрд╡реЗрдиреЗ рддреА рд╕реНрд╡рддрдГ рд╣рд╛рддрд╛рд│рд▓реА рдкрд╛рд╣рд┐рдЬреЗ: рдирд╡реАрди рдкреНрд░рдпрддреНрди рдХрд░рд╛, рдХрд╛рд▓рдмрд╛рд╣реНрдп рдкреНрд░рджрд╛рди рдХрд░рд╛, рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЙрдШрдбрд╛ рдЗ.
Kubernetes рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рд░рд╣рджрд╛рд░реА
Istio рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрд╛рдп рдСрдлрд░ рдХрд░рддреЗ, рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рдордзреНрдпреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░реВрди рд╕реЗрд╡рд╛рдВрдкрд╛рд╕реВрди рдкреВрд░реНрдгрдкрдгреЗ рд╡рд┐рднрдХреНрдд рдЖрдгрд┐ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рддреЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ:
- рдЪреБрдХреАрдЪреА рд╕рд╣рдирд╢реАрд▓рддрд╛: рдкреНрд░рддрд┐рд╕рд╛рджрд╛рддреАрд▓ рд╕реНрдерд┐рддреА рдХреЛрдбрдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░, рд╡рд┐рдирдВрддреА рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реА рдХреА рдирд╛рд╣реА рд╣реЗ рд╕рдордЬрддреЗ рдЖрдгрд┐ рддреЗ рдкреБрдиреНрд╣рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ.
- рдХреЕрдирд░реА рд░реЛрд▓рдЖрдЙрдЯреНрд╕: рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреАрд╡рд░ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рдХреЗрд╡рд│ рдирд┐рд╢реНрдЪрд┐рдд рдЯрдХреНрдХреЗрд╡рд╛рд░реА рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ.
- рджреЗрдЦрд░реЗрдЦ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕: рд╕реЗрд╡реЗрд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рддреА рд╡реЗрд│ рд▓рд╛рдЧрд▓рд╛?
- рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдирд┐рд░реАрдХреНрд╖рдгрдХреНрд╖рдорддрд╛: рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдирдВрддреАрд╡рд░ рд╡рд┐рд╢реЗрд╖ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЬреЛрдбрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд╕рдВрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЯреНрд░реЗрд╕ рдХрд░рддреЗ.
- рд╕реБрд░рдХреНрд╖рд╛: JWT рдЯреЛрдХрди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдкреНрд░рдорд╛рдгреАрдХреГрдд рдХрд░рддреЗ рдЖрдгрд┐ рдЕрдзрд┐рдХреГрдд рдХрд░рддреЗ.
рдпрд╛ рдлрдХреНрдд рдХрд╛рд╣реА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗрдд (рдЦрд░реЛрдЦрд░ рдлрдХреНрдд рдХрд╛рд╣реА!) рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдзрдгреНрдпрд╛рд╕рд╛рдареА. рдЖрддрд╛ рддрд╛рдВрддреНрд░рд┐рдХ рддрдкрд╢реАрд▓рд╛рдд рдЬрд╛рдКрдпрд╛!
Istio рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
Istio рд╕рд░реНрд╡ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реЕрдлрд┐рдХрдордзреНрдпреЗ рдЕрдбрдерд│рд╛ рдЖрдгрддреЗ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдбрдордзреНрдпреЗ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░реЙрдХреНрд╕реА рдЯрд╛рдХреВрди рддреНрдпрд╛рд╡рд░ рдирд┐рдпрдорд╛рдВрдЪрд╛ рд╕рдВрдЪ рд▓рд╛рдЧреВ рдХрд░рддреЗ. рд╕рд░реНрд╡ рдХреНрд╖рдорддрд╛ рд╕рдХреНрд░рд┐рдп рдХрд░рдгрд╛рд░реЗ рдкреНрд░реЙрдХреНрд╕реА рдлреЙрд░реНрдо a рдбреЗрдЯрд╛ рдкреНрд▓реЗрди, рдЖрдгрд┐ рддреЗ рд╡рд╛рдкрд░реВрди рдЧрддрд┐рд╢реАрд▓рдкрдгреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди.
рдбреЗрдЯрд╛ рдкреНрд▓реЗрди
рдкреЙрдбреНрд╕рдордзреНрдпреЗ рдШрд╛рддрд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рдЗрд╕реНрдЯрд┐рдУрд▓рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЧрд░рдЬрд╛ рд╕рд╣рдЬрдкрдгреЗ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдЖрдгрд┐ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдлрдВрдХреНрд╢рдиреНрд╕ рддрдкрд╛рд╕реВ.
рдПрдиреНрд╡реНрд╣реЙрдпрдордзреНрдпреЗ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдЖрдгрд┐ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд
рд╕рд╛рд░рд╛рдВрд╢
- рджреВрдд (рдЖрдореНрд╣реА рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЙрдХреНрд╕реАрдмрджреНрджрд▓ рдмреЛрд▓рдд рдЖрд╣реЛрдд, рдЬреЗ рдореНрд╣рдгреВрди рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ
рд╕реНрд╡рддрдВрддреНрд░ рдЙрддреНрдкрд╛рджрди - рдЕрдВрджрд╛рдЬреЗ рдЕрдиреБрд╡рд╛рдж.) рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рд╕ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рддреЗ рдЖрдгрд┐ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрддреЗ. - рджреВрдд рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ (рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛). (1)
- рд╡рд┐рдирдВрддреА рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реА рдЖрдгрд┐ рддреА рдХреЙрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЙрдХреНрд╕реАрдХрдбреЗ рдкрд░рдд рдХреЗрд▓реА рдЬрд╛рддреЗ.
- рд╣реЗ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЙрдШрдбрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рдкреБрдвреАрд▓ рд╕реЗрд╡реЗрд▓рд╛ рдХреЙрд▓ рдХрд░рддреЗ. (2)
рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рджреБрд╕рд░реА рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреНрдпрд╛рдЪреА рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА, рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбрд┐рд╕реНрдХрд╡рд░реАрдЪреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ X, Y рдХрд┐рдВрд╡рд╛ Z рдордзреНрдпреЗ рд╕реНрд╡рддрдГрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рд╣реЗ рд╕рд░реНрд╡ рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. Istio рдордзреНрдпреЗ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА рдирд╛рд╣реА рдХреЛрдбрдордзреАрд▓ рдмрджрд▓.
рдЫрд╛рди! рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ Istio рд╕рд╣ рдкреНрд░рд╡рд╛рд╕рд╛рд▓рд╛ рдЬрд╛рдпрдЪреЗ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рддрд░реАрд╣реА рддреБрдордЪреНрдпрд╛ рдордирд╛рдд рдХрд╛рд╣реА рд╢рдВрдХрд╛ рдЖрд╣реЗрдд, рдЦреБрд▓реЗ рдкреНрд░рд╢реНрди рдЖрд╣реЗрдд. рдЬрд░ рд╣рд╛ рдЬреАрд╡рдирд╛рддреАрд▓ рд╕рд░реНрд╡ рдкреНрд░рд╕рдВрдЧрд╛рдВрд╕рд╛рдареА рдПрдХ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдЙрдкрд╛рдп рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдиреИрд╕рд░реНрдЧрд┐рдХ рд╢рдВрдХрд╛ рдЖрд╣реЗ: рддрдерд╛рдкрд┐, рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЕрд╕реЗ рд╕рд░реНрд╡ рдЙрдкрд╛рдп рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдЕрдпреЛрдЧреНрдп рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдпреЗрддреЗ.
рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рддреБрдореНрд╣реА рд╡рд┐рдЪрд╛рд░рд╛рд▓: "рддреЗ рд╕рд╛рдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ рдХрд╛?"
рдЖрддрд╛ рддреБрдореНрд╣реА рд╕рдореБрджреНрд░рд╛рдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╕рд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣рд╛рдд, рдЪрд▓рд╛ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрдирд╢реА рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдК рдпрд╛.
рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди
рдпрд╛рдд рддреАрди рдШрдЯрдХ рдЕрд╕рддрд╛рдд: рдкрд╛рдпрд▓рдЯ, рдорд┐рдХреНрд╕рд░ ╨╕ рдХрд┐рд▓реНрд▓рд╛, рдЬреЗ рдорд╛рд░реНрдЧ рд░рд╣рджрд╛рд░реАрд╕рд╛рдареА рджреВрддрд╛рдВрдирд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдзреЛрд░рдгрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЯреЗрд▓рд┐рдореЗрдЯреНрд░реА рдбреЗрдЯрд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХрддреНрд░ рдХрд╛рдо рдХрд░рддрд╛рдд. рдпреЛрдЬрдирд╛рдмрджреНрдзрд░рд┐рддреНрдпрд╛ рд╣реЗ рд╕рд░реНрд╡ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:
рдбреЗрдЯрд╛ рдкреНрд▓реЗрдирд╕рд╣ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рдирд╛рдЪрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж
рджреВрдд (рдореНрд╣рдгрдЬреЗ рдбреЗрдЯрд╛ рдкреНрд▓реЗрди) рд╡рд╛рдкрд░реВрди рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд
Istio рд╕реЗрд╡рд╛рдВрдЪрд╛ рд╕рдВрдмрдВрдз
рдЖрдореНрд╣реА рд╕реЗрд╡рд╛рдВрд╢реА рдЗрд╕реНрдЯрд┐рдУрдЪрд╛ рд╕рдВрдмрдВрдз рд╡рд░реНрдгрди рдХреЗрд▓рд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЙрд▓рдЯ рдирд╛рд╣реА: рд╕реЗрд╡рд╛ рдЗрд╕реНрдЯрд┐рдУрд╢реА рдХрд╢рд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд?
рдкреНрд░рд╛рдорд╛рдгрд┐рдХрдкрдгреЗ рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рд╕реЗрд╡рд╛рдВрдирд╛ рдЗрд╕реНрдЯрд┐рдУрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдЪреА рдЬрд╛рдгреАрд╡ рдЕрд╕рддреЗ рдЬрд╕реЗ рдорд╛рд╕реЗ рдкрд╛рдгреНрдпрд╛рдЪреЗ рдЕрд╕рддрд╛рдд рдЬреЗрд╡реНрд╣рд╛ рддреЗ рд╕реНрд╡рддрдГрд▓рд╛ рд╡рд┐рдЪрд╛рд░рддрд╛рдд, "рддрд░реАрд╣реА рдкрд╛рдгреА рдХрд╛рдп рдЖрд╣реЗ?"
рдЪрд┐рддреНрд░рдг
рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдкрдг рдХрд╛рд░реНрдпрд░рдд рдХреНрд▓рд╕реНрдЯрд░ рдШреЗрдК рд╢рдХрддрд╛ рдЖрдгрд┐ Istio рдШрдЯрдХ рддреИрдирд╛рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреНрдпрд╛рдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдп рдХрд░рдд рд░рд╛рд╣рддреАрд▓ рдЖрдгрд┐ рд╣реЗ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реНрдпрд╛рдирдВрддрд░, рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдиреНрд╣рд╛ рдареАрдХ рд╣реЛрдИрд▓. рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЖрдкрдг Istio рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд╖рдорддрд╛ рдЧрдорд╛рд╡рд╛рд▓.
рдкреБрд░реЗрд╕рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд - рдЪрд▓рд╛ рд╣реЗ рдЬреНрдЮрд╛рди рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рдЖрдгреВрдпрд╛!
рд╕рд░рд╛рд╡ рдордзреНрдпреЗ Istio
Istio рд▓рд╛ рдХрд┐рдорд╛рди 4 vCPUs рдЖрдгрд┐ 8 GB RAM рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реЗ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХреНрд▓рд╕реНрдЯрд░ рджреНрд░реБрддрдкрдгреЗ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд▓реЗрдЦрд╛рддреАрд▓ рд╕реВрдЪрдирд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореА Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ, рдЬреЗ рдирд╡реАрди рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдСрдлрд░ рдХрд░рддреЗ
рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рдХрдиреНрд╕реЛрд▓ рдпреБрдЯрд┐рд▓рд┐рдЯреАрджреНрд╡рд╛рд░реЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣реА рд╣реЗрд▓реНрдо рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░рджреНрд╡рд╛рд░реЗ Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛.
рд╣реЗрд▓реНрдо рд╕реНрдерд╛рдкрдирд╛
рддреБрдордЪреНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рд╣реЗрд▓реНрдо рдХреНрд▓рд╛рдпрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛, рдЬрд╕реЗ рдордзреНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ
Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ
рд╡рд░реВрди Istio рд╕рдВрд╕рд╛рдзрдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ [istio-resources]
.
Istio рд╕рдВрд╕рд╛рдзрдиреЗ рд╕рд╣рдЬ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА, 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
рдЖрддрд╛ рдЖрдореНрд╣реА рдкреБрдвреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдд рд╕реБрд░реВ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЛрдд, рдЬрд┐рдереЗ рдЖрдореНрд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реВ рдХрд░реВ.
рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рдЕреЕрдирд╛рд▓рд┐рд╕рд┐рд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рдЕреЕрдирд╛рд▓рд┐рд╕рд┐рд╕ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВ
рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдд рдЪрд╛рд░ рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ:
- рд╕реЗрд╡рд╛ рдПрд╕рдП-рдлреНрд░рдВрдЯрдПрдВрдб, рдЬреЗ Reactjs рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рдлреНрд░рдВрдЯрдПрдВрдбрд▓рд╛ рд╕рд░реНрд╡реНрд╣ рдХрд░рддреЗ;
- рд╕реЗрд╡рд╛ SA-WebApp, рдЬреЗ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рд╕реЗрд╡рд╛ рджреЗрддреЗ;
- рд╕реЗрд╡рд╛ рдПрд╕рдП- рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░, рдЬреЗ рд╕реНрд╡рддрдГ рдХрд╛рд░реНрдп рдХрд░рддреЗ
рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ; - рд╕реЗрд╡рд╛ SA- рдЕрднрд┐рдкреНрд░рд╛рдп, рдЬреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдЪреНрдпрд╛ рдЕрдЪреВрдХрддреЗрдмрджреНрджрд▓ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдХрдбреВрди рдЕрднрд┐рдкреНрд░рд╛рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ.
рдпрд╛ рдЖрдХреГрддреАрдордзреНрдпреЗ, рд╕реЗрд╡рд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА рдЗрдВрдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рджреЗрдЦреАрд▓ рдкрд╛рд╣рддреЛ, рдЬреЛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдпреЛрдЧреНрдп рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддреЛ. Istio рддреНрдпрд╛рдЪреНрдпрд╛ Ingress Gateway рдордзреНрдпреЗ рд╕рдорд╛рди рд╕рдВрдХрд▓реНрдкрдирд╛ рд╡рд╛рдкрд░рддреЗ, рдЬреНрдпрд╛рдЪреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓ рдкреБрдвреЗ рдпреЗрддреАрд▓.
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 рдордзреНрдпреЗ, рдЬреЗ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ "рдПрдЬ" рд╡рд░ рд╕реНрдерд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ Istio рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЬрд╕реЗ рдХреА рд░рд╛рдЙрдЯрд┐рдВрдЧ, рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ, рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ рдЗрдирдХрдорд┐рдВрдЧ рдЯреНрд░реЕрдлрд┐рдХрд╕рд╛рдареА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
рдЗрдВрдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдШрдЯрдХ рдЖрдгрд┐ рддреЗ рдмрд╛рд╣реЗрд░реВрди рдкреБрдвреЗ рдиреЗрдгрд╛рд░реА рд╕реЗрд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ 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}')
рдЬрд░ рддреБрдореНрд╣реА рдЖрддрд╛ рдмреНрд░рд╛рдЙрдЭрд░рджреНрд╡рд╛рд░реЗ рдпрд╛ рдЖрдпрдкреАрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рддреНрд░реБрдЯреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓, рдХрд╛рд░рдг рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рддрдкрдгреЗ Istio рд╕рд░реНрд╡ рдпреЗрдгрд╛рд░реЗ рд░рд╣рджрд╛рд░реА рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рддреЗ, рдЧреЗрдЯрд╡реЗрдЪреА рдЕрджреНрдпрд╛рдк рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЭрд╛рд▓реЗрд▓реА рдирд╛рд╣реА.
рдЧреЗрдЯрд╡реЗ рд╕рдВрд╕рд╛рдзрди
рдЧреЗрдЯрд╡реЗ рд╣реЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдПрдХ CRD (рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕ рдбреЗрдлрд┐рдирд┐рд╢рди) рдЖрд╣реЗ, рдЬреЗ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ Istio рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдкреЛрд░реНрдЯ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдгрд┐ рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рдЬреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд░рд╣рджрд╛рд░реАрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ.
рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣реА рд╕рд░реНрд╡ рд╣реЛрд╕реНрдЯрд╕рд╛рдареА рдкреЛрд░реНрдЯ 80 рд╡рд░ HTTP рд░рд╣рджрд╛рд░реАрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ. рдХрд╛рд░реНрдп рдЦрд╛рд▓реАрд▓ рд╡реНрдпрд╛рдЦреНрдпреЗрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ (
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
. рдпрд╛ рд╕рд┐рд▓реЗрдХреНрдЯрд░рдЪреНрдпрд╛ рд╕рд╣рд╛рдпреНрдпрд╛рдиреЗ рдЖрдкрдг рдХреЛрдгрддреНрдпрд╛ рдЗрдВрдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗрд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рд╛рдпрдЪреЗ рддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддреЛ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд╣реЗ рдЗрдВрдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрд╣реЗ, рдЬреЗ рдЗрд╕реНрдЯрд┐рдУрдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ.
рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рдХреЙрд▓ рдХрд░реВрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ:
$ kubectl apply -f resource-manifests/istio/http-gateway.yaml gateway.networking.istio.io/http-gateway created
рдЧреЗрдЯрд╡реЗ рдЖрддрд╛ рдкреЛрд░реНрдЯ 80 рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ, рдкрд░рдВрддреБ рд╡рд┐рдирдВрддреНрдпрд╛ рдХреБрдареЗ рдорд╛рд░реНрдЧрд╕реНрде рдХрд░рд╛рдпрдЪреНрдпрд╛ рдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдирд╛рд╣реА. рдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓ рдЖрднрд╛рд╕реА рд╕реЗрд╡рд╛.
рдЖрднрд╛рд╕реА рд╕реЗрд╡рд╛ рд╕рдВрд╕рд╛рдзрди
рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдХрд╢рд╛ рдорд╛рд░реНрдЧрд╛рдиреЗ рдХрд░рд╛рдпрдЪреНрдпрд╛ рд╣реЗ рдЗрдВрдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗрд▓рд╛ рд╕рд╛рдВрдЧрддреЗ.
http-рдЧреЗрдЯрд╡реЗрджреНрд╡рд╛рд░реЗ рдпреЗрдгрд╛рд▒реНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдЕрд░реНрдЬрд╛рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ sa-frontend, sa-web-app рдЖрдгрд┐ sa-feedback рд╕реЗрд╡рд╛рдВрдирд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд:
VirtualServices рд╕рд╣ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдорд╛рд░реНрдЧ
SA-Frontend рд▓рд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рд╣реВ:
- рд╡рд╛рдЯреЗрдд рдЕрдЪреВрдХ рдЬреБрд│рдгреА
/
index.html рдорд┐рд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА SA-Frontend рд╡рд░ тАЛтАЛрдкрд╛рдард╡рд╛рд╡реЗ; - рдЙрдкрд╕рд░реНрдЧ рдорд╛рд░реНрдЧ
/static/*
CSS рдЖрдгрд┐ JavaScript рд╕рд╛рд░рдЦреНрдпрд╛ рдлреНрд░рдВрдЯрдПрдВрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕реНрдерд┐рд░ рдлрд╛рдпрд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА SA-Frontend рд▓рд╛ рдкрд╛рдард╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ; - рд░реЗрдЧреНрдпреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рджреНрд╡рд╛рд░реЗ рдЬреБрд│рд▓реЗрд▓реЗ рдкрде
'^.*.(ico|png|jpg)$'
, SA-Frontend рд╡рд░ тАЛтАЛрдкрд╛рдард╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдХрд╛рд░рдг рд╣реА рдкреГрд╖реНрдард╛рд╡рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗрд▓реА рдЪрд┐рддреНрд░реЗ рдЖрд╣реЗрдд.
рдЦрд╛рд▓реАрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирджреНрд╡рд╛рд░реЗ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рд╛рдзреНрдп рдХреЗрд▓реА рдЬрд╛рддреЗ (
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
рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореБрджреНрджреЗ:
- рдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд╕рд░реНрд╡реНрд╣рд┐рд╕рджреНрд╡рд╛рд░реЗ рдпреЗрдгрд╛рд▒реНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн рдЖрд╣реЗ http-рдЧреЗрдЯрд╡реЗ;
- ╨Т
destination
рдЬреНрдпрд╛ рд╕реЗрд╡реЗрд▓рд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рддреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
рд╢реЗрд░рд╛: рд╡рд░реАрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдЖрд╣реЗ sa-virtualservice-external.yaml
, рдЬреНрдпрд╛рдордзреНрдпреЗ SA-WebApp рдЖрдгрд┐ SA-рдлреАрдбрдмреЕрдХ рдордзреАрд▓ рд░реВрдЯрд┐рдВрдЧрд╕рд╛рдареА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддреЗрд╕рд╛рдареА рд▓реЗрдЦрд╛рдд рдпреЗрдереЗ рд▓рд╣рд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗ.
рдЪрд▓рд╛ рдХреЙрд▓ рдХрд░реВрди рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рд▓рд╛рдЧреВ рдХрд░реВрдпрд╛:
$ kubectl apply -f resource-manifests/istio/sa-virtualservice-external.yaml
virtualservice.networking.istio.io/sa-external-services created
рд╢реЗрд░рд╛: рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА Istio рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рддреЛ, рддреЗрд╡реНрд╣рд╛ Kubernetes API рд╕рд░реНрд╡реНрд╣рд░ рдПрдХ рдЗрд╡реНрд╣реЗрдВрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ рдЬреЛ Istio рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрдирджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░ рдирд╡реАрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдбрдЪреНрдпрд╛ рджреВрдд рдкреНрд░реЙрдХреНрд╕реАрд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЖрдгрд┐ рдЗрдирдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрдирдордзреНрдпреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓рд╛ рджреБрд╕рд░рд╛ рджреВрдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕рддреЗ. рд╣реЗ рд╕рд░реНрд╡ рдЖрдХреГрддреАрдордзреНрдпреЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:
рд╡рд┐рдирдВрддреА рд░рд╛рдЙрдЯрд┐рдВрдЧрд╕рд╛рдареА 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
... рдЖрдгрд┐ рдЙрдШрдбрд╛
рдЧреНрд░рд╛рдлрдирд╛: рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди
Istio рдордзреНрдпреЗ рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ Prometheus рдордзреНрдпреЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ Grafana рд╕рд╣ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдЗрдЬ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. Grafana рдкреНрд░рд╢рд╛рд╕рдХреАрдп рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░ рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА, рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рдЪрд╛рд▓рд╡рд╛ рдЖрдгрд┐ рдирдВрддрд░ рдЙрдШрдбрд╛
$ 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рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА:
рдпреЗрдереЗ рдЖрдкрд▓реА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЗ рддреА рдПрдХ рд░рд┐рдХреНрдд рдЖрдгрд┐ рдкреВрд░реНрдгрдкрдгреЗ рдХрдВрдЯрд╛рд│рд╡рд╛рдгреА рдХрд╛рдордЧрд┐рд░реА рдЖрд╣реЗ - рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╣реЗ рдХрдзреАрд╣реА рдордВрдЬреВрд░ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдбрд╕рд╣ рдПрдХ рдЫреЛрдЯрд╛рд╕рд╛ рднрд╛рд░ рддрдпрд╛рд░ рдХрд░реВрдпрд╛:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}';
sleep .8; done
рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЦреВрдк рдЫрд╛рди рдЖрд▓реЗрдЦ рдЖрд╣реЗрдд, рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рджреЗрдЦрд░реЗрдЦреАрд╕рд╛рдареА рдЕрдкреНрд░рддрд┐рдо рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕рдЪреЗ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЧреНрд░рд╛рдлрд╛рдирд╛ рдЬреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди, рдЖрд░реЛрдЧреНрдп, рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рд╕реБрдзрд╛рд░рдгрд╛/рдЕрдзреЛрдЧрддреА рдпрд╛рд╡рд┐рд╖рдпреА рдЬрд╛рдгреВрди рдШреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.
рд╢реЗрд╡рдЯреА, рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рд╡рд┐рдирдВрддреНрдпрд╛ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдкрд╛рд╣реВ.
рдЬреЗрдЧрд░: рдЯреНрд░реЗрд╕рд┐рдВрдЧ
рдЖрдореНрд╣рд╛рд▓рд╛ рдЯреНрд░реЗрд╕рд┐рдВрдЧрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ рдХрд╛рд░рдг рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЬрд┐рддрдХреНрдпрд╛ рдЬрд╛рд╕реНрдд рд╕реЗрд╡рд╛ рдЖрд╣реЗрдд, рддрд┐рддрдХреЗрдЪ рдмрд┐рдШрд╛рдбрд╛рдЪреЗ рдХрд╛рд░рдг рд╢реЛрдзрдгреЗ рдЕрдзрд┐рдХ рдХрдареАрдг рдЖрд╣реЗ. рдЦрд╛рд▓реАрд▓ рдЪрд┐рддреНрд░рд╛рддреВрди рдПрдХ рд╕рд╛рдзреА рдХреЗрд╕ рдкрд╛рд╣реВ.
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдпрд╢рд╕реНрд╡реА рд╡рд┐рдирдВрддреАрдЪреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг
рд╡рд┐рдирдВрддреА рдпреЗрддреЗ, рдкрдбрддреЗ - рдХрд╛рд░рдг рдХрд╛рдп рдЖрд╣реЗ? рдкрд╣рд┐рд▓реА рд╕реЗрд╡рд╛? рдХрд┐рдВрд╡рд╛ рджреБрд╕рд░рд╛? рджреЛрдиреНрд╣реАрдордзреНрдпреЗ рдЕрдкрд╡рд╛рдж рдЖрд╣реЗрдд - рдЪрд▓рд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рдЪреНрдпрд╛ рдиреЛрдВрджреА рдкрд╛рд╣реВ. рддреБрдореНрд╣реА рд╕реНрд╡рддрдГрд▓рд╛ рд╣реЗ рдХрд░рддрд╛рдирд╛ рдХрд┐рддреА рд╡реЗрд│рд╛ рдкрдХрдбрд▓реЗ рдЖрд╣реЗ? рдЖрдордЪреЗ рдХрд╛рдо рдбреЗрд╡реНрд╣рд▓рдкрд░рдкреЗрдХреНрд╖рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбрд┐рдЯреЗрдХреНрдЯрд┐рд╡реНрд╣рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ...
рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдордзреАрд▓ рд╣реА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорджреНрд╡рд╛рд░реЗ рд╕реЛрдбрд╡рд┐рд▓реА рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕реЗрд╡рд╛ рдПрдХрдореЗрдХрд╛рдВрдирд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╢реАрд░реНрд╖рд▓реЗрдЦ рджреЗрддрд╛рдд, рддреНрдпрд╛рдирдВрддрд░ рд╣реА рдорд╛рд╣рд┐рддреА рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордХрдбреЗ рдкрд╛рдард╡рд┐рд▓реА рдЬрд╛рддреЗ, рдЬрд┐рдереЗ рд╡рд┐рдирдВрддреА рдбреЗрдЯрд╛рд╢реА рддреБрд▓рдирд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдпреЗрдереЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ:
рд╡рд┐рдирдВрддреА рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА 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
рдЖрддрд╛ рд╡рд░ рдЬрд╛
рд╣рд╛ рдЯреНрд░реЗрд╕ рджрд░реНрд╢рд╡рд┐рддреЛ:
- рд╡рд┐рдирдВрддреА рдпреЗрддреЗ istio-ingressgateway (рдПрдЦрд╛рджреНрдпрд╛ рд╕реЗрд╡реЗрд╢реА рд╣рд╛ рдкрд╣рд┐рд▓рд╛ рд╕рдВрд╡рд╛рдж рдЖрд╣реЗ рдЖрдгрд┐ рд╡рд┐рдирдВрддреАрд╕рд╛рдареА рдЯреНрд░реЗрд╕ рдЖрдпрдбреА рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ), рддреНрдпрд╛рдирдВрддрд░ рдЧреЗрдЯрд╡реЗ рд╕реЗрд╡реЗрд▓рд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рддреЛ sa-web-app.
- рдЪреНрдпрд╛ рдиреЛрдХрд░реАрдд sa-web-app рд╡рд┐рдирдВрддреА рджреВрдд рд╕рд╛рдЗрдбрдХрд╛рд░рджреНрд╡рд╛рд░реЗ рдЙрдЪрд▓рд▓реА рдЬрд╛рддреЗ, рд╕реНрдкреЕрдирдордзреНрдпреЗ рдПрдХ "рдореБрд▓" рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ (рдореНрд╣рдгреВрдирдЪ рдЖрдореНрд╣реА рддреЗ рдЯреНрд░реЗрд╕рдордзреНрдпреЗ рдкрд╛рд╣рддреЛ) рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░рд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ sa-web-app. (
рдХрд╛рд▓рд╛рд╡рдзреА - рдЬреЗрдЧрд░рдордзреАрд▓ рдХрд╛рдорд╛рдЪреЗ рддрд╛рд░реНрдХрд┐рдХ рдпреБрдирд┐рдЯ, рдЬреНрдпрд╛рдЪреЗ рдирд╛рд╡, рдСрдкрд░реЗрд╢рди рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рдЖрд╣реЗ. рд╕реНрдкреЕрди рдиреЗрд╕реНрдЯреЗрдб рдЖрдгрд┐ рдСрд░реНрдбрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рд╕реНрдкреЕрдиреНрд╕рдЪрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЕреЕрд╕рд╛рдпрдХреНрд▓рд┐рдХ рдЖрд▓реЗрдЦ рдЯреНрд░реЗрд╕ рдмрдирд╡рддреЛ. - рдЕрдВрджрд╛рдЬреЗ рдЕрдиреБрд╡рд╛рдж.) - рдпреЗрдереЗ рд╡рд┐рдирдВрддреА рдкрджреНрдзрддреАрджреНрд╡рд╛рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд╣реЗ рдЯреНрд░реЗрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рджреНрд╡рд╛рд░реЗ рдЖрдзреАрдЪ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЖрд╣реЗрдд, рдореНрд╣рдгрдЬреЗ. рддреНрдпрд╛рдВрдирд╛ рдХреЛрдб рдмрджрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд.
- рдпрд╛ рдХреНрд╖рдгрд╛рдкрд╛рд╕реВрди, POST рд╡рд┐рдирдВрддреА рд╕реБрд░реВ рдХреЗрд▓реА рдЖрд╣реЗ рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░. рдЯреНрд░реЗрд╕ рдЖрдпрдбреА рдХрдбреВрди рдлреЙрд░рд╡рд░реНрдб рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ sa-web-app.
- ...
рд╢реЗрд░рд╛: рдЪрд░рдг 4 рдордзреНрдпреЗ, рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдиреЗ Istio рджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдкрд╣рд╛рд╡реЗ рдЖрдгрд┐ рдЦрд╛рд▓реАрд▓ рдкреНрд░рддрд┐рдореЗрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рддреНрдпрд╛рдВрдирд╛ рдкреБрдвреАрд▓ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдХрдбреЗ рдкрд╛рдард╡рд╛рд╡реЗ:
(рдП) рд╣реЗрдбрд░ рдлреЙрд░рд╡рд░реНрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Istio рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ; (рдм) рд╕реЗрд╡рд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦрд╛рдВрд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗрдд
Istio рдмрд╣реБрддреЗрдХ рдХрд╛рдо рдХрд░рддреЗ рдХрд╛рд░рдг... рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЗ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдбрдХреЗрдЕрд░рдордзреНрдпреЗ рдирд╡реАрди рд╕реНрдкреЕрди рддрдпрд╛рд░ рдХрд░рддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдкреБрдвреЗ рдкрд╛рдард╡рддреЗ. рддрдерд╛рдкрд┐, рд╕реЗрд╡рд╛рдВрдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╢реАрд░реНрд╖рд▓реЗрдЦрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рди рдХрд░рддрд╛, рд╕рдВрдкреВрд░реНрдг рд╡рд┐рдирдВрддреА рдЯреНрд░реЗрд╕ рдорд╛рд░реНрдЧ рдЧрдорд╛рд╡рд▓рд╛ рдЬрд╛рдИрд▓.
рдЦрд╛рд▓реАрд▓ рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд:
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
рд╣реЗ рдХрдареАрдг рдХрд╛рдо рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдЖрд╣реЗ
рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рдЕреЕрдирд╛рд▓рд┐рд╕рд┐рд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд▓рд╛рд╕реНрдХ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдЖрдгрд┐ ASP.NET рдХреЛрдЕрд░рдордзреНрдпреЗ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ.
рдЖрддрд╛ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдХреА рдЖрдкрдг рдмреЙрдХреНрд╕рдордзреВрди рдХрд╛рдп рдорд┐рд│рд╡реВ рд╢рдХрддреЛ (рдХрд┐рдВрд╡рд╛ рдЬрд╡рд│рдЬрд╡рд│ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░), рдЪрд▓рд╛ рдлрд╛рдИрди-рдЯреНрдпреВрди рдХреЗрд▓реЗрд▓реЗ рд░реВрдЯрд┐рдВрдЧ, рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реЕрдлрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди, рд╕реБрд░рдХреНрд╖рд╛ рдЗрддреНрдпрд╛рджреА рдкрд╛рд╣реВрдпрд╛!
рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: Rinor Maloku рд╡рд░реАрд▓ Istio рд╡рд░реАрд▓ рд╕рд╛рдордЧреНрд░реАрдЪреНрдпрд╛ рдкреБрдвреАрд▓ рднрд╛рдЧрд╛рдд рдпрд╛рдмрджреНрджрд▓ рд╡рд╛рдЪрд╛, рдЬреНрдпрд╛рдЪреА рднрд╛рд╖рд╛рдВрддрд░реЗ рдирдЬреАрдХрдЪреНрдпрд╛ рднрд╡рд┐рд╖реНрдпрд╛рдд рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рдпреЗрддреАрд▓. рдЕрджреНрдпрдпрд╛рд╡рдд рдХрд░рд╛ (14 рдорд╛рд░реНрдЪ):
рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди рдкреБрдирд╢реНрдЪ
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- "рдЗрд╕реНрдЯрд┐рдУрд╕рд╣ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдХрдбреЗ рдкрд░рдд рдЬрд╛":
рднрд╛рдЧ реи (рдорд╛рд░реНрдЧ, рд╡рд╛рд╣рддреВрдХ рдирд┐рдпрдВрддреНрд░рдг) ,рднрд╛рдЧ 3 (рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛) ; - ┬л
рдХрдВрдбреНрдпреБрдЯ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╣рд▓рдХреА рд╕реЗрд╡рд╛ рдЬрд╛рд│реА "; - ┬л
рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рдорд▓рд╛ [рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рд╕рд╣ рдХреНрд▓рд╛рдЙрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА] рдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЖрд╣реЗ? "; - ┬л
Kubernetes рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧрд╕рд╛рдареА рдПрдХ рд╕рдЪрд┐рддреНрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ. рднрд╛рдЧ рез рдЖрдгрд┐ реи "; - ┬л
рд╣рд╛ рд╕рд╛рдИрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдпреЗрдереЗ [рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ] рдХрд╕рд╛ рд╕рдВрдкрд▓рд╛? ┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com