рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдЬ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рдЧрд░реНрдо рд╡рд┐рд╖рдп рдмрди рдЧрдпрд╛ рд╣реИред рдЬрдмрдХрд┐ рдЗрд╕реНрддрд┐рдпреЛ рдХрдИ DevOps рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рд░рдбрд╛рд░ рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рдЙрддреНрдкрд╛рдж рд╣реИ, рдЬреЛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЬрд░реНрдорди рдЗрдВрдЬреАрдирд┐рдпрд░ рд░рд┐рдиреЛрд░ рдорд╛рд▓реЛрдХреБ, рдЬреЛ рджреВрд░рд╕рдВрдЪрд╛рд░ рдХрдВрдкрдиреА рдСрд░реЗрдВрдЬ рдиреЗрдЯрд╡рд░реНрдХреНрд╕ рдореЗрдВ рдмрдбрд╝реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдкреНрд░рднрд╛рд░реА рд╣реИрдВ, рдиреЗ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдПрдХ рдЕрджреНрднреБрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рд┐рдЦреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдЬрд▓реНрджреА рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд╣ рдЕрдкрдиреА рдХрд╣рд╛рдиреА рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реНрддрд┐рдпреЛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рдХреИрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
Istio - рдУрдкрди рд╕реЛрд░реНрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ, Google, IBM рдФрд░ Lyft рдХреА рдЯреАрдореЛрдВ рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ:
- рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рдмрдВрдзрди: рдЯрд╛рдЗрдордЖрдЙрдЯ, рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕, рд▓реЛрдб рд╕рдВрддреБрд▓рди;
- рд╕реБрд░рдХреНрд╖рд╛: рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг;
- observability: рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ, рд▓реЙрдЧрд┐рдВрдЧред
рдЙрди рд╕рднреА рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреА рд╕реЗрд╡рд╛рдПрдБ "рд╕реВрдХреНрд╖реНрдо" рдирд╣реАрдВ рд░рд╣реЗрдВрдЧреАред рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХрдВрдкрдиреА рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░: рдлреАрдбрдмреИрдХ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ?
рдбреЗрд╡рд▓рдкрд░: рджреЛ рд╕реНрдкреНрд░рд┐рдВрдЯредрдПрдордкреА: рдХреНрдпрд╛?.. рдпрд╣ рд╕рд┐рд░реНрдл рд╕реАрдЖрд░рдпреВрдбреА рд╣реИ!
рдЖрд░: рд╕реАрдЖрд░рдпреВрдбреА рдХрд░рдирд╛ рдХрд╛рд░реНрдп рдХрд╛ рдЖрд╕рд╛рди рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдФрд░ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЕрдиреБрд░реЛрдз рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАрд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдкреИрдЯрд░реНрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдореЗрдВ. рд╕рд╛рде рд╣реА, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреВрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдХреНрд░реИрд╢ рди рд╣реЛ, рдЯрд╛рдЗрдордЖрдЙрдЯ рдЖрджрд┐рдереЛрдХ рд╕рд┐рд░ (рджреЛрдиреЛрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреИрдЯрд░реНрди рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВред), рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдкрддрд╛ рд▓рдЧрд╛рдирд╛, [тАж]рдПрдордкреА: рдУрд╣, рддреЛ рдЪрд▓рд┐рдП рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЙрддреНрдкрд╛рдж рд╕реЗрд╡рд╛ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдХрд┐рд╕реА рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрджрдореЛрдВ рдФрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ (рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ) рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛рддрд╛ рд╣реИред
рдиреЛрдЯ: рд▓реЗрдЦ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╕рд╛рдзрдХ рдЬреНрдЮрд╛рди рд╣реИред рдЕрдиреНрдпрдерд╛, рдореИрдВ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
рдЗрд╕реНрддрд┐рдпреЛ рд╡рд┐рдЪрд╛рд░
рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рдмрд┐рдирд╛ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдПрдХ рд╕реЗрд╡рд╛ рджреВрд╕рд░реЗ рд╕реЗ рд╕реАрдзреЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ, рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реЗрд╡рд╛ рдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛: рдПрдХ рдирдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЦреЛрд▓реЗрдВ, рдЖрджрд┐ред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ
рджреВрд╕рд░реА рдУрд░, рдЗрд╕реНрддрд┐рдпреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдХреЗ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
- рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рд╡рд┐рдлрд▓ рд╣реБрдЖ рдпрд╛ рдирд╣реАрдВ рдФрд░ рдЗрд╕реЗ рдкреБрдирдГ рд╕рдмрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИред
- рдХреИрдирд░реА рд░реЛрд▓рдЖрдЙрдЯреНрд╕: рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╢рдд рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕: рд╕реЗрд╡рд╛ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрд╛?
- рдЕрдиреБрд░реЗрдЦрдг рдФрд░ рдЕрд╡рд▓реЛрдХрди: рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЯреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИред
- рд╕реБрд░рдХреНрд╖рд╛: JWT рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдФрд░ рдЕрдзрд┐рдХреГрдд рдХрд░рддрд╛ рд╣реИред
рдпреЗ рдЖрдкрдХреА рд░реБрдЪрд┐ рдЬрдЧрд╛рдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╣реА!)ред рдЖрдЗрдП рдЕрдм рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВ!
рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рдЗрд╕реНрддрд┐рдпреЛ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдореЗрдВ рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░реЙрдХреНрд╕реА рдбрд╛рд▓рддрд╛ рд╣реИред рдкреНрд░реЙрдХреНрд╕реА рдЬреЛ рд╕рднреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреА рд╣реИ a рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд┐рдорд╛рди рдирд┐рдпрдВрддреНрд░рдг.
рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди
рдкреЙрдбреНрд╕ рдореЗрдВ рдбрд╛рд▓реЗ рдЧрдП рдкреНрд░реЙрдХреНрд╕реА рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдФрд░ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдПрдирд╡реЙрдп рдореЗрдВ рд░рд┐рдЯреНрд░реАрдЯ рдФрд░ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- рджреВрдд (рд╣рдо рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдерд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ
рдЕрд▓рдЧ рдЙрддреНрдкрд╛рдж - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджред) рд╕реЗрд╡рд╛ рдмреА рдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред - рджреВрдд рд╕рд╛рдЗрдбрдХрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ). (1)
- рд╡рд┐рдлрд▓ рдЕрдиреБрд░реЛрдз рдЙрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЙрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред
- рдпрд╣ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реА рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред (2)
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдЧрд▓реА рд░рд┐рдЯреНрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдПрдХреНрд╕, рд╡рд╛рдИ рдпрд╛ рдЬреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдбрд┐рд╕реНрдХрд╡рд░реА рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕рдм рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдмреЙрдХреНрд╕ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдирд╣реАрдВ рдХреЛрдб рдмрджрд▓рддрд╛ рд╣реИ.
рдорд╣рд╛рди! рдЕрдм рдЖрдк рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдпрд╛рддреНрд░рд╛ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рд╕рдВрджреЗрд╣, рдЦреБрд▓реЗ рдкреНрд░рд╢реНрди рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЬреАрд╡рди рдореЗрдВ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реИрдз рд╕рдВрджреЗрд╣ рд╣реИ: рдЖрдЦрд┐рд░рдХрд╛рд░, рдРрд╕реЗ рд╕рднреА рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ: "рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ?"
рдЕрдм рдЖрдк рд╕рдореБрджреНрд░реА рдпрд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ - рдФрд░ рдЖрдЗрдП рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред
рд╡рд┐рдорд╛рди рдирд┐рдпрдВрддреНрд░рдг
рдЗрд╕рдореЗрдВ рддреАрди рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдкрд╛рдпрд▓рдЯ, рдорд┐рдХреНрд╕рд░ ╨╕ рдЧрдврд╝, рдЬреЛ рдПрдХ рд╕рд╛рде рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ, рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрддреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдбреЗрдЯрд╛ рдкреНрд▓реЗрди рдХреЗ рд╕рд╛рде рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдХрд╛ рдЗрдВрдЯрд░реЗрдХреНрд╢рди
рджреВрддреЛрдВ (рдпрд╛рдиреА рдбреЗрдЯрд╛ рдкреНрд▓реЗрди) рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╕рдВрдмрдВрдз
рд╣рдордиреЗ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдз рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВ: рд╕реЗрд╡рд╛рдПрдВ рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ?
рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЗрд╕реНрддрд┐рдпреЛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдордЫрд▓реА рдХреЛ рдкрд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рдЬрдм рд╡реЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ: "рдЖрдЦрд┐рд░рдХрд╛рд░ рдкрд╛рдиреА рдХреНрдпрд╛ рд╣реИ?"ред
рдЪрд┐рддреНрд░рдг
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХреНрд▓рд╕реНрдЯрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реНрддрд┐рдпреЛ рдШрдЯрдХреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдореЗрдВ рд╕реЗрд╡рд╛рдПрдБ рдХрд╛рдо рдХрд░рддреА рд░рд╣реЗрдВрдЧреА, рдФрд░ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЗрд╕реНрддрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдЦреЛ рджреЗрдВрдЧреЗред
рд╕рд┐рджреНрдзрд╛рдВрдд рдмрд╣реБрдд рд╣реЛ рдЧрдпрд╛ - рдЖрдЗрдП рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓рд╛рдПрдВ!
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ
рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 4 рд╡реАрд╕реАрдкреАрдпреВ рдФрд░ 8 рдЬреАрдмреА рд░реИрдо рдЙрдкрд▓рдмреНрдз рд╣реЛред рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдФрд░ рд▓реЗрдЦ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬреЛ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдФрд░ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╣реЗрд▓реНрдо рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрддрд╡рд╛рд░ рд╕реНрдерд╛рдкрдирд╛
рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣реЗрд▓реНрдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди
рдпрд╣рд╛рдВ рд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ [istio-resources]
.
рдЗрд╕реНрддрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╕рд╛рди рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП, K8s рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдмрдирд╛рдПрдВ istio-system
:
$ kubectl create namespace istio-system
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреВрд░рд╛ рдХрд░реЗрдВ [istio-resources]
рдФрд░ рдЖрджреЗрд╢ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ:
$ helm template install/kubernetes/helm/istio
--set global.mtls.enabled=false
--set tracing.enabled=true
--set kiali.enabled=true
--set grafana.enabled=true
--namespace istio-system > istio.yaml
рдпрд╣ рдХрдорд╛рдВрдб рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ istio.yaml
. рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:
-
global.mtls.enabled
рдореЗрдВ рд╕реНрдерд╛рдкрд┐рддfalse
(рдпрд╛рдиреА рдПрдордЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрдХреНрд╖рдо рд╣реИ - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред)рд╣рдорд╛рд░реА рдбреЗрдЯрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП; -
tracing.enabled
рдЬреИрдЧрд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЗрдЦрдг рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ; -
kiali.enabled
рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдЖрд▓реА рдХреЛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ; -
grafana.enabled
рдПрдХрддреНрд░рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╛рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрддреНрдкрдиреНрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
$ kubectl apply -f istio.yaml
рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ! рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдЖрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ istio-system
рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ Running
рдпрд╛ Completed
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХреЛ рдЪрд▓рд╛рдХрд░:
$ kubectl get pods -n istio-system
рдЕрдм рд╣рдо рдЕрдЧрд▓реЗ рднрд╛рдЧ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдврд╝рд╛рдПрдВрдЧреЗ рдФрд░ рдЪрд▓рд╛рдПрдВрдЧреЗред
рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рдЖрдЗрдП рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЪрд╛рд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╕реЗрд╡рд╛ рдПрд╕рдП-рдлреНрд░рдВрдЯреЗрдВрдб, рдЬреЛ Reactjs рдкрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░реЛрд╕рддрд╛ рд╣реИ;
- рд╕реЗрд╡рд╛ рдПрд╕рдП рд╡реЗрдм рдРрдк, рдЬреЛ рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рд╢реНрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ;
- рд╕реЗрд╡рд╛ рдПрд╕рдП рддрд░реНрдХрдЬреЛ рд╕реНрд╡рдпрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ; - рд╕реЗрд╡рд╛ рдПрд╕рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдЬреЛ рдХрд┐рдП рдЧрдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╕рдЯреАрдХрддрд╛ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдЖрд░реЗрдЦ рдореЗрдВ, рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рднреА рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рддрдХ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реНрддрд┐рдпреЛ рдЗрдирдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдЖрдЧреЗ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдирд╛
рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЖрдЧреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ
рд╕рд╛рдЗрдбрдХрд╛рд░ рдбрд╛рд▓рдирд╛
рдирд┐рд╡реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓. рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реЗрдмрд▓ рдХреЛ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ 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
рджреЗрдЦрдиреЗ рдореЗрдВ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдкреЙрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рджреВрдд рдкреНрд░реЙрдХреНрд╕реА
рдЕрдм рдЬрдмрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓реВ рд╣реИ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рд╣реЛрдЧреАред
рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░
рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ (рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛) рд╣реИ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ, рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ "рдХрд┐рдирд╛рд░реЗ" рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ, рд▓реЛрдб рд╕рдВрддреБрд▓рди, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдЬреИрд╕реА рдЗрд╕реНрддрд┐рдпреЛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрдирдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдШрдЯрдХ рдФрд░ рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХреА рдУрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдЗрд╕реНрддрд┐рдпреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рдереАред рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ:
$ 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
рд╣рдо рдЗрд╕ рдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ (рдореИрдВ рдЗрд╕реЗ рдПрдХреНрд╕рдЯрд░реНрдирд▓-рдЖрдИрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реВрдВрдЧрд╛), рдЗрд╕рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди рд▓рд┐рдЦреЗрдВрдЧреЗ:
$ EXTERNAL_IP=$(kubectl get svc -n istio-system
-l app=istio-ingressgateway
-o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')
рдпрджрд┐ рдЖрдк рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдЖрдИрдкреА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рджреЗрддрд╛ рд╣реИрдЬрдм рддрдХ рдЧреЗрдЯрд╡реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред
рдЧреЗрдЯрд╡реЗ рд╕рдВрд╕рд╛рдзрди
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЧреЗрдЯрд╡реЗ рдПрдХ рд╕реАрдЖрд░рдбреА (рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕ рдбреЗрдлрд┐рдирд┐рд╢рди) рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреЛрд░реНрдЯ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рд╣реЛрд╕реНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕рднреА рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ 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-рдлреАрдбрдмреИрдХ рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░реВрдЯ
рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрд╕рдП-рдлреНрд░рдВрдЯреЗрдВрдб рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди
/
Index.html рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SA-Frontend рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; - рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдкрде
/static/*
рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рдлреНрд░рдВрдЯрдПрдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдП-рдлреНрд░рдВрдЯреЗрдВрдб рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; - рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрде
'^.*.(ico|png|jpg)$'
, рдПрд╕рдП-рдлреНрд░рдВрдЯреЗрдВрдб рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЪрд┐рддреНрд░ рд╣реИрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (
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
рдиреЛрдЯ: рдЬрдм рд╣рдо рдЗрд╕реНрддрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдПрдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реНрддрд┐рдпреЛ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рдПрдирд╡реЙрдп рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЗрдирдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЕрдиреНрдп рджреВрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдЪрд┐рддреНрд░ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЕрдиреБрд░реЛрдз рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддрд┐рдпреЛ-рдЗрдиреНрдЧреНрд░реЗрд╕рдЧреЗрдЯрд╡реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ http://{EXTERNAL-IP}/
. рдпрджрд┐ рдЖрдкрдХреЛ 'рдирд╣реАрдВ рдорд┐рд▓рд╛' рд╕реНрдерд┐рддрд┐ рдорд┐рд▓рддреА рд╣реИ рддреЛ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ: рдХрднреА-рдХрднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдиреЗ рдФрд░ рдПрдиреНрд╡реЙрдп рдХреИрд╢ рдХреЛ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ.
рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЯреНрд░реИрдлрд╝рд┐рдХ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓реЗрдВ (рдмрд╛рдж рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред).
рдХрд┐рдЖрд▓реА: рдЕрд╡рд▓реЛрдХрдиреАрдпрддрд╛
рдХрд┐рдЖрд▓реА рдПрдбрдорд┐рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
$ kubectl port-forward
$(kubectl get pod -n istio-system -l app=kiali
-o jsonpath='{.items[0].metadata.name}')
-n istio-system 20001
...рдФрд░ рдЦреЛрд▓реЛ
рдЧреНрд░рд╛рдлрд╛рдирд╛: рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди
рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд╕рд╛рде рджреЗрдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЧреНрд░рд╛рдлрд╛рдирд╛ рдПрдбрдорд┐рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдПрдБ, рдлрд┐рд░ рдЦреЛрд▓реЗрдВ
$ kubectl -n istio-system port-forward
$(kubectl -n istio-system get pod -l app=grafana
-o jsonpath={.items[0].metadata.name}) 3000
рдореЗрдиреВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣реЛрдо рдКрдкрд░ рдмрд╛рдИрдВ рдУрд░ рдЪреБрдиреЗрдВ рдФрд░ рдЪреБрдиреЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рд╕рд░реНрд╡рд┐рд╕ рдбреИрд╢рдмреЛрд░реНрдб рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ, рд╕реЗрд╡рд╛ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рд╕рд╛-рд╡реЗрдм-рдРрдкрдПрдХрддреНрд░рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдЦрд╛рд▓реА рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдмрд╛рдК рдкреНрд░рджрд░реНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рдмрдВрдзрди рдЗрд╕реЗ рдХрднреА рднреА рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд▓реЛрдб рдмрдирд╛рдПрдВ:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}';
sleep .8; done
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдЧреНрд░рд╛рдлрд╝ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╛рдирд╛ рдЬреИрд╕реЗ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди, рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐, рд╕реБрдзрд╛рд░ / рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред
рдЕрдВрдд рдореЗрдВ, рдЖрдЗрдП рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЗрдЦрдг рдХреЛ рджреЗрдЦреЗрдВред
рдЬреИрдЧрд░: рдЯреНрд░реЗрд╕рд┐рдВрдЧ
рд╣рдореЗрдВ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╕реЗрд╡рд╛рдПрдБ рд╣реЛрдВрдЧреА, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рддрдХ рдкрд╣реБрдБрдЪрдирд╛ рдЙрддрдирд╛ рд╣реА рдХрдард┐рди рд╣реЛрдЧрд╛ред рдЖрдЗрдП рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓рд╛ рджреЗрдЦреЗрдВ:
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рдлрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг
рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ - рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ? рдкрд╣рд▓реА рд╕реЗрд╡рд╛? рдпрд╛ рджреВрд╕рд░рд╛? рджреЛрдиреЛрдВ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реИрдВ - рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓реЙрдЧ рджреЗрдЦреЗрдВред рдЖрдкрдиреЗ рдЦреБрдж рдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реБрдП рдкрдХрдбрд╝рд╛ рд╣реИ? рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЬрд╛рд╕реВрд╕реЛрдВ рдЬреИрд╕рд╛ рд╣реИ...
рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗрд╡рд╛рдПрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЗрдбрд░ рдкрд╛рд╕ рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдЕрдиреБрд░реЛрдз рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрд╕рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЗрд╕реНрддрд┐рдпреЛ рдЬреИрдЧрд░ рдЯреНрд░реИрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рдХреНрд░реЗрддрд╛-рд╕реНрд╡рддрдВрддреНрд░ рдУрдкрдирдЯреНрд░реЗрд╕рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдврд╛рдВрдЪреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╕реЗ рдЬреИрдЧрд░ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
$ kubectl port-forward -n istio-system
$(kubectl get pod -n istio-system -l app=jaeger
-o jsonpath='{.items[0].metadata.name}') 16686
рдЕрдм рдЬрд╛рдУ
рдпрд╣ рдЯреНрд░реЗрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
- рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ рдЗрд╕реНрддрд┐рдУ-рдЗрдирдЧреНрд░реЗрд╕рдЧреЗрдЯрд╡реЗ (рдпрд╣ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рдмрд╛рддрдЪреАрдд рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЧреЗрдЯрд╡реЗ рд╕реЗрд╡рд╛ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рд╕рд╛-рд╡реЗрдм-рдРрдк.
- рд╕реЗрд╡рд╛ рдореЗрдВ рд╕рд╛-рд╡реЗрдм-рдРрдк рдЕрдиреБрд░реЛрдз рдПрдиреНрд╡реЙрдп рд╕рд╛рдЗрдбрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ "рдмрдЪреНрдЪрд╛" рд╕реНрдкреИрди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдирд┐рд╢рд╛рди рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ) рдФрд░ рдХрдВрдЯреЗрдирд░ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рд╛-рд╡реЗрдм-рдРрдк. (
рд╡рд┐рд╕реНрддрд╛рд░ - рдЬреИрдЧрд░ рдореЗрдВ рдХрд╛рдо рдХреА рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо, рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рдФрд░ рдЙрд╕рдХреА рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИред рд╕реНрдкреИрди рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдФрд░ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдкреИрди рдХрд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЪрдХреНрд░реАрдп рдЧреНрд░рд╛рдл рдПрдХ рдЯреНрд░реЗрд╕ рдмрдирд╛рддрд╛ рд╣реИред - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рдж) - рдпрд╣рд╛рдВ рдЕрдиреБрд░реЛрдз рдХреЛ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рдпреЗ рдирд┐рд╢рд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛рдиреАред рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
- рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рдПрдХ POST рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ sa-рддрд░реНрдХ. рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рд╛-рд╡реЗрдм-рдРрдк.
- ...
рдиреЛрдЯ: рдЪрд░рдг 4 рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╕реНрддрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
(рдП) рд╣реЗрдбрд░ рдЕрдЧреНрд░реЗрд╖рдг рдЗрд╕реНрддрд┐рдпреЛ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ; (рдмреА) рд╕реЗрд╡рд╛рдПрдБ рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ
рдЗрд╕реНрддрд┐рдпреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдбрдХреЗрдпрд░ рдореЗрдВ рдирдП рд╕реНрдкреИрди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЕрдВрджрд░ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдП рдмрд┐рдирд╛, рдкреВрд░рд╛ рдЕрдиреБрд░реЛрдз рдЯреНрд░реЗрд╕ рдкрде рдЦреЛ рдЬрд╛рдПрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдЧреНрд░реЗрд╖рд┐рдд):
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
рдпрд╣ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣реИ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд▓рд╛рд╕реНрдХ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдФрд░ ASP.NET рдХреЛрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдЬрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ (рдпрд╛ рд▓рдЧрднрдЧ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░) рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдЗрдП рдлрд╝рд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ, рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рдмрдВрдзрди, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рджреЗрдЦреЗрдВ!
рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдиреЛрд░ рдорд╛рд▓реЛрдХреБ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реНрддрд┐рдпреЛ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдкрдврд╝реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдЖрдПрдЧрд╛ред рдЕрджреНрдпрддрди (14 рдорд╛рд░реНрдЪ):
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:
- "рдЗрд╕реНрдЯрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкрд░ рд╡рд╛рдкрд╕":
рднрд╛рдЧ 2 (рд░реВрдЯрд┐рдВрдЧ, рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рдпрдВрддреНрд░рдг) ,рднрд╛рдЧ 3 (рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг) ; - ┬л
рдХрдВрдбреНрдпреВрдЯ - рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╣рд▓реНрдХрд╛ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢ "; - ┬л
рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ [рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП]? "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдЪрд┐рддреНрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ред рднрд╛рдЧ 1 рдФрд░ 2 "; - ┬л
рдпрд╣ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдпрд╣рд╛рдБ [рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ] рдХреИрд╕реЗ рдкрд╣реБрдБрдЪ рдЧрдпрд╛? '.
рд╕реНрд░реЛрдд: www.habr.com