рдЗрд╕реНрдЯрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдорд╛рдЗрдХреНрд░реЛрд╕реЛрд░реНрд╡рд┐рд╕ рдХреЗ рд▓рд┐рдПред рднрд╛рдЧ 1



рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзреБрдирд┐рдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдБрдЪреЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рдорд╛рдзрд╛рди рдмрди рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рдХрдИ DevOps рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрд╛рдлреА рдирдпрд╛ рдЙрддреНрдкрд╛рдж рд╣реИ, рдЬреЛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬрд░реНрдорди рдЗрдВрдЬреАрдирд┐рдпрд░ рд░рд┐рдиреЛрд░ рдорд▓реЛрдХреВ, рдЬреЛ рджреВрд░рд╕рдВрдЪрд╛рд░ рдХрдВрдкрдиреА рдСрд░реЗрдВрдЬ рдиреЗрдЯрд╡рд░реНрдХреНрд╕ рдореЗрдВ рдмрдбрд╝реЗ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдиреЗ рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рдЕрджреНрднреБрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рд┐рдЦреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдЬрд▓реНрджреА рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд╣ рдЕрдкрдиреА рдХрд╣рд╛рдиреА рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реНрддрд┐рдпреЛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рдХреИрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реНрддрд┐рдпреЛ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ Google, IBM рдФрд░ Lyft рдХреА рдЯреАрдореЛрдВ рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ:

  • рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рдмрдВрдзрди : рдЯрд╛рдЗрдордЖрдЙрдЯ, рд░рд┐рдЯреНрд░реАрдЯ, рд▓реЛрдб рд╕рдВрддреБрд▓рди;
  • рд╕реБрд░рдХреНрд╖рд╛ : рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг;
  • рдЕрд╡рд▓реЛрдХрди : рдЯреНрд░реЗрд╕, рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрд▓реЙрдЧрд┐рдВрдЧред

рдЙрди рд╕рднреА рдХреЛ рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреА рд╕реЗрд╡рд╛рдПрдВ "рд╕реВрдХреНрд╖реНрдо" рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХрдВрдкрдиреА рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдкрд╢рд┐рд╖реНрдЯ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░: рдлреАрдбрдмреИрдХ рдХрдм рддрдХ рдЬреЛрдбрд╝реЗрдВ?
рдбреЗрд╡рд▓рдкрд░: рджреЛ рд╕реНрдкреНрд░рд┐рдВрдЯред

рд╕рд╛рдВрд╕рдж: рдХреНрдпрд╛ .. рдпрд╣ рд╕рд┐рд░реНрдл CRUD рд╣реИ!
рдЖрд░: рд╕реАрдЖрд░рдпреВрдбреА рдмрдирд╛рдирд╛ рдХрд╛рд░реНрдп рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдФрд░ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╕рд╛рде рд╣реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдореЗрдВ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдкреИрдЯрд░реНрди рднреА ред рдлрд┐рд░ рднреА, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдЖрдкрдХреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдмреБрд▓реНрдХреЗрд╣реЗрдбреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рджреЛрдиреЛрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рдореЗрдВ рдЖрдЧреЗ рджреЗрдЦреЗрдВ - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред) , рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдЕрдиреБрд░реЗрдЦрдг, [...]

рд╕рд╛рдВрд╕рдж: рдУрд╣, рддреЛ рдЪрд▓реЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЙрддреНрдкрд╛рдж рд╕реЗрд╡рд╛ рдореЗрдВ рдбрд╛рд▓реЗрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдгреЛрдВ рдФрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ (рдЬреЛ рдХрд┐ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ) рдХреЛ Istio рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред



рдиреЛрдЯ : рдпрд╣ рд▓реЗрдЦ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЬреНрдЮрд╛рди рд╣реИред рдЕрдиреНрдпрдерд╛, рдореИрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдЕрдкрдирд╛ рдкрд░рд┐рдЪрдп рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ ред

рдЖрдЗрдбрд┐рдпрд╛ рдЗрд╕реНрддрд┐рдпреЛ


рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдПрдХ рд╕реЗрд╡рд╛ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ, рдФрд░ рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реЗрд╡рд╛ рдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдПрдХ рдирдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдПрдХ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЦреЛрд▓реЗрдВ, рдЖрджрд┐ред


Kubernetes рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ

рдЗрд╕реНрддрд┐рдпреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рди рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдХреЗ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдХрд╛рдордХрд╛рдЬ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:

  • рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ : рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреБрд░реЛрдз рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИред
  • рдХреИрдирд░реА рд░реЛрд▓рдЖрдЙрдЯ : рд╕реЗрд╡рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢ рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╢рдд рд╣реИред
  • рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ : рд╕реЗрд╡рд╛ рдиреЗ рдХрд┐рддрдиреА рджреЗрд░ рддрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА?
  • рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдФрд░ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд┐рд▓рд┐рдЯреА : рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЯреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИред
  • рд╕реБрд░рдХреНрд╖рд╛ : JWT рдЯреЛрдХрди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдФрд░ рдЕрдзрд┐рдХреГрдд рдХрд░рддрд╛ рд╣реИред

рдпреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ!) рдЖрдкрдХреЛ рд╕рд╛рдЬрд╝рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдм рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ!

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ Istio


рдЗрд╕реНрддрд┐рдпреЛ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдореЗрдВ рдПрдХ рд╕рд╛рдЗрдб-рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░реЙрдХреНрд╕реА рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЙрдХреНрд╕реА рдЬреЛ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреА рд╣реИрдВ, рдПрдХ рдбреЗрдЯрд╛ рдкреНрд▓реЗрди рдмрдирд╛рддреА рд╣реИрдВ , рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди


рдлрд▓реА рдореЗрдВ рдбрд╛рд▓реЗ рдЧрдП рдкрд░рджреЗ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рдорд╛рд░реА рдЬрд░реВрд░рдд рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдЯреНрд░реА рдФрд░ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред


рдПрдиреНрд╡реЙрдп рдореЗрдВ рд░рд┐рдЯреНрд░реАрдЯ рдФрд░ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:

  1. рджреВрдд (рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдерд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред) рд╕реЗрд╡рд╛ рдмреА рдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрддреА рд╣реИред
  2. рджреВрдд рд╕рд┐рджреЗрдХрд░ рд░рд┐рдЯрд╛рдпрд░ рд╣реБрдП ред (1)
  3. рд╡рд┐рдлрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЙрд╕ рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред
  4. рдпрд╣ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реА рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред (2)

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдЧрд▓реА рд░рд┐рдЯреНрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ X, Y рдпрд╛ Z рдореЗрдВ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдбрд┐рд╕реНрдХрд╡рд░реА рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕рдм рдФрд░ рдмрд╣реБрдд рдХреБрдЫ Istio рдореЗрдВ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рдЖрдк рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛рддреНрд░рд╛ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реИрдВ, рдЦреБрд▓реЗ рд╣реБрдП рд╕рд╡рд╛рд▓ред рдпрджрд┐ рдпрд╣ рдЬреАрд╡рди рдореЗрдВ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реИрдз рд╕рдВрджреЗрд╣ рд╣реИ: рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ рдРрд╕реЗ рд╕рднреА рдирд┐рд░реНрдгрдп рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ: "рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрдХреВрд▓рди рд╣реИ?"

рдЕрдм рдЖрдк рд╕рдореБрджреНрд░реА рдпрд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ - рдФрд░ рдЖрдЗрдП рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред

рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди


рдЗрд╕рдореЗрдВ рддреАрди рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ: рдкрд╛рдпрд▓рдЯ , рдорд┐рдХреНрд╕рд░ рдФрд░ рдЧрдврд╝ , рдЬреЛ рдПрдирд╡реЙрдпрд╕ рдХреЛ рд░реВрдЯ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ, рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди рдХреЗ рд╕рд╛рде рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдЗрдВрдЯрд░реЗрдХреНрд╢рди

рдПрдиреНрд╡реЙрдпрд╕ (рдпрд╛рдиреА, рдбреЗрдЯрд╛ рдкреНрд▓реЗрди) рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реАрдЖрд░рдбреА (рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕ рдбреЗрдлрд┐рд╢рд┐рдПрдВрд╕реАрдЬрд╝ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрдЧрд▓реЗ рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдиреНрд╡реЙрдпрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд╛рдд


рд╣рдордиреЗ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП Istio рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВ: рд╕реЗрд╡рд╛рдПрдБ Istio рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ?

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдордЫрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирддрд╛ рд╣реИ - рдкрд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬрдм рд╡реЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ: "рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдиреА рдХреНрдпрд╛ рд╣реИ?"ред


рд╡рд┐рдХреНрдЯреЛрд░рд┐рдпрд╛ рджрд┐рдорд┐рддреНрд░рдХреЛрдкреМрд▓реЛрд╕ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рддреНрд░рдг: - рдЖрдк рдкрд╛рдиреА рдХреЛ рдХреИрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ? - рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдиреА рдХреНрдпрд╛ рд╣реИ?

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдХрд╛рдордХрд╛рдЬреА рдХреНрд▓рд╕реНрдЯрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реНрддрд┐рдпреЛ рдШрдЯрдХреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж, рдЗрд╕рдореЗрдВ рд╕реНрдерд┐рдд рд╕реЗрд╡рд╛рдПрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреА, рдФрд░ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЖрдк рдЗрд╕реНрддрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдЦреЛ рджреЗрдВрдЧреЗред

рдкрд░реНрдпрд╛рдкреНрдд рд╕рд┐рджреНрдзрд╛рдВрдд - рдЖрдЗрдП рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓рд╛рдПрдВ!

рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ


рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 4 vCPUs рдФрд░ 8 GB RAM рдЙрдкрд▓рдмреНрдз рд╣реЛред рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдФрд░ рд▓реЗрдЦ рд╕реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬреЛ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ $ 300 рдореБрдлреНрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдЖрдк рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣реЗрд▓реНрдо рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣реЗрд▓реНрдо рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди


рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣реЗрд▓реНрдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВред рд╣рдо рдЕрдЧрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕реНрдЯрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ Istio рд╕рдВрд╕рд╛рдзрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдореВрд▓ рд▓реЗрдЦрдХ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 1.0.5 рдХрд╛ рд▓рд┐рдВрдХ рд╡рд░реНрддрдорд╛рди рдПрдХ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд 1.0 - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред) , рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рдХрд╛рд▓реЗрдВ, рдЬрд┐рд╕реЗ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреЙрд▓ [istio-resources] ред

Istio рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, K8s рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ istio- 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.enabled рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ;
  • grafana.enabled рдПрдХрддреНрд░рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП grafana.enabled рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рд╕рдВрд╕рд╛рдзрди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

 $ kubectl apply -f istio.yaml 

рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ! рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ istio-system рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдиреАрдЪреЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ Running рдпрд╛ Completed рдЬрд╛рддреЗ:

 $ kubectl get pods -n istio-system 

рдЕрдм рд╣рдо рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдврд╝рд╛рдПрдБрдЧреЗ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗред

рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


рдЖрдЗрдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдЪрдп рд▓реЗрдЦ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕рд╡рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ ред рдпрд╣ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рд╖реНрдХреГрдд рд╣реИред

рдЖрд╡реЗрджрди рдЪрд╛рд░ microservices рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:

  1. рд╕реЗрд╡рд╛ рдПрд╕рдП- рдлреНрд░рдВрдЯреЗрдВрдб, рдЬреЛ рд░рд┐рдПрдХреНрдЯрдЬ рдкрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░реЛрд╕рддрд╛ рд╣реИ;
  2. рдПрдХ SA-WebApp рд╕реЗрд╡рд╛ рдЬреЛ рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕реЗрд╡рд╛ рджреЗрддреА рд╣реИ;
  3. рд╕реЗрд╡рд╛ рдПрд╕рдП-рд▓реЙрдЬрд┐рдХ , рдЬреЛ рднрд╛рд╡реБрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ;
  4. рд╕реЗрд╡рд╛ рдПрд╕рдП-рдлреАрдбрдмреИрдХ , рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред



рдЗрд╕ рдЖрд░реЗрдЦ рдореЗрдВ, рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рднреА рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реНрддрд┐рдпреЛ рдиреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рднреАрддрд░ рдПрдХ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Istio рд╕реЗ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдирд╛


рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЖрдЧреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдУ-рдорд╣рд╛рд░рдд рднрдВрдбрд╛рд░ рдХрд╛ рдХреНрд▓реЛрди рддреИрдпрд╛рд░ рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдФрд░ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдРрдк рдФрд░ рдореИрдирд┐рдлреЗрд╕реНрдЯреЛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╕рд┐рдбрдХрд░ рдбрд╛рд▓реЗрдВ


рд╕рдореНрдорд┐рд▓рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ istio-injection=enabled рд▓реЗрдмрд▓ рд╕реЗрдЯ рдХрд░рдирд╛ istio-injection=enabled , рдЬреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

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

рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдЬреЛ рдбрд┐рдлреЙрд▓реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╡рд╣ рдЕрдкрдиреЗ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, [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 рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ kubectl get pods рдХрдорд╛рдВрдб kubectl get pods рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рди 2/2 READY рдХреЙрд▓рдо рдХреЗ рддрд╣рдд рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдХрдВрдЯреЗрдирд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ:

 $ 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 

рдиреЗрддреНрд░рд╣реАрди рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдлрд▓реА рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рджреВрдд рд╕рдореАрдкрд╕реНрде

рдЕрдм рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрдиреЗ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░


рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ (рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП) рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдЗрдирдЧреНрд░реЗрдб рдЧреЗрдЯрд╡реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ "рдмреЙрд░реНрдбрд░" рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдЬреИрд╕реА рдЗрд╕реНрддрд┐рдпреЛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЗрдирдЧреНрд░реЗрдб рдЧреЗрдЯрд╡реЗ рдШрдЯрдХ рдФрд░ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдХреА рд╕реЗрд╡рд╛ рдХреЛ рдЗрд╕реНрддрд┐рдпреЛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдмрд╛рд╣рд░реА 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 

рд╣рдо рдЗрд╕ рдЖрдИрдкреА рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ (рдореИрдВ рдЗрд╕реЗ рдмрд╛рд╣рд░реА-рдЖрдИрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реВрдВрдЧрд╛), рдЗрд╕рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдорд╛рди рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ:

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

рдпрджрд┐ рдЖрдк рдЕрдм рдЗрд╕ рдЖрдИрдкреА рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Istio рдЧреЗрдЯрд╡реЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рддрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИред

рдЧреЗрдЯрд╡реЗ рд╕рдВрд╕рд╛рдзрди


рдЧреЗрдЯрд╡реЗ Kubernetes рдореЗрдВ рдПрдХ CRD (рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛) рд╣реИ, рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕рднреА рд╣реЛрд╕реНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП 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 рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ istio: ingressgateway ред рдЗрд╕ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде, рд╣рдо рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЗрдирдЧреНрд░реЗрдб рдЧреЗрдЯрд╡реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИ, рдЬрд┐рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

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

рдЕрдм рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкреЛрд░реНрдЯ 80 рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

VirtualService рд╕рдВрд╕рд╛рдзрди


VirtualService рдЗрдирдЧреНрд░реЗрдб рдЧреЗрдЯрд╡реЗ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреИрд╕реЗ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред

Http-рдЧреЗрдЯрд╡реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ sa-frontend, sa-web-app рдФрд░ sa-the-feedback рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:


VirtualServices рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ

SA-Frontend рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  • Index.html рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SA-Frontend рдкрд░ / рдкрде рдкрд░ рдПрдХ рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  • рд╕рд╛рдордиреЗ / рд╕реАрдПрд╕рдПрд╕, рдЬреИрд╕реЗ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП /static/* рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд┐рдП рдЧрдП рд░рд╛рд╕реНрддреЛрдВ рдХреЛ SA-Frontend рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  • рдкрде рдЬреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреЗ рд╣реИрдВ '^.*\.(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. рдпрд╣ VirtualService http-рдЧреЗрдЯрд╡реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ;
  2. destination рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдиреЛрдЯ : рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди sa-virtualservice-external.yaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ SA-WebApp рдФрд░ SA-Feedback рдореЗрдВ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рдореЗрдВ рдпрд╣рд╛рдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

VirtualService рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

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

рдиреЛрдЯ : рдЬрдм рд╣рдо Istio рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Kubernetes API рд╕рд░реНрд╡рд░ рдПрдХ рдШрдЯрдирд╛ рдЙрдард╛рддрд╛ рд╣реИ, рдЬреЛ Istio Control Plane рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ Envoy рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЗрдирдЧреНрд░реЗрдб рдЧреЗрдЯрд╡реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдЧрд▓рд╛ рдПрдиреНрд╡реЙрдп рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЖрд░реЗрдЦ рдкрд░ рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдХреНрд╡реЗрд░реА рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП Istio-IngressGateway рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

рд╡рд╛рдХреНрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг 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 

... рдФрд░ http: // localhost: 20001 / рдЦреЛрд▓реЗрдВ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдХрдИ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдорд┐рд▓реЗрдВрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдпреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдПрдХрддреНрд░ рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдФрд░ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ "рдХреМрди рдХрд┐рд╕рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд░рд╣рд╛ рд╣реИ?", "рд╕реЗрд╡рд╛ рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░реИрд╢ рд╣реИ?" рдЖрджрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд╕рд╛рде рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд▓реА рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред



рдЧреНрд░рд╛рдлрд╛рдирд╛: рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рджреГрд╢реНрдп


рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд╕рд╛рде рдХрд▓реНрдкрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред 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 Service Dashboard рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ, рдПрдХрддреНрд░рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП 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 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕реЗ рдЕрдЪреНрдЫреЗ рдЪрд╛рд░реНрдЯ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдЕрджреНрднреБрдд рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЙрдкрдХрд░рдг, рдЬреЛ рд╣рдореЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди, рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐, рд╕реБрдзрд╛рд░ / рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, рдЖрдЗрдП рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред

Jaeger: рдЯреНрд░реЗрд╕


рд╣рдореЗрдВ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдЖрдЗрдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдХреЛ рджреЗрдЦреЗрдВ:


рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрд╕рдлрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг

рдирд┐рд╡реЗрджрди рдЖрддрд╛ рд╣реИ, рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ - рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ? рдкрд╣рд▓реА рд╕реЗрд╡рд╛? рдпрд╛ рджреВрд╕рд░рд╛? рджреЛрдиреЛрдВ рдореЗрдВ рдХреБрдЫ рдЕрдкрд╡рд╛рдж рд╣реИрдВ - рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓реЙрдЧ рдХреЛ рджреЗрдЦреЗрдВред рдЖрдк рдЦреБрдж рдХреЛ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд┐рддрдиреА рдмрд╛рд░ рдкрд╛рддреЗ рд╣реИрдВ? рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЬрд╛рд╕реВрд╕реЛрдВ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реИ ...

рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗрд╡рд╛рдПрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЗрдбрд░ рджреЗрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЯреНрд░реЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:


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 рд╕реЗрд╡рд╛ рдЪреБрдиреЗрдВ ред рдпрджрд┐ рд╕реЗрд╡рд╛ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ, рддреЛ рдкреГрд╖реНрда рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рджрд┐рдЦрд╛рдПрдВ / рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, Find Traces рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЬреЛ рдирд╡реАрдирддрдо рдирд┐рд╢рд╛рди рджрд┐рдЦрд╛рдПрдЧрд╛ - рдХрд┐рд╕реА рднреА рдЪрдпрди рдХрд░реЗрдВ - рд╕рднреА рдирд┐рд╢рд╛рди рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:



рдпрд╣ рдЯреНрд░реЗрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

  1. рдЕрдиреБрд░реЛрдз istio-ingressgateway рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ (рдпрд╣ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рдмрд╛рддрдЪреАрдд рд╣реИ, рдФрд░ рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЧреЗрдЯрд╡реЗ рд╕рд╛-рд╡реЗрдм-рдРрдк рд╕реЗрд╡рд╛ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред
  2. Sa-web-app рд╕реЗрд╡рд╛ рдореЗрдВ, рдЕрдиреБрд░реЛрдз Envoy рд╕рд╛рдЗрдбрд╕реЗрдХрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реНрдкрд╛рди рдореЗрдВ рдПрдХ "рдмрдЪреНрдЪрд╛" рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдирд┐рд╢рд╛рди рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ) рдФрд░ sa-web-app рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред ( рд╕реНрдкреИрди рдЬреИрдЧрд░ рдореЗрдВ рдХрд╛рдо рдХреА рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдПрдХ рдирд╛рдо рд╣реИ, рдЬрд┐рд╕ рд╕рдордп рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рдФрд░ рдЗрд╕рдХреА рдЕрд╡рдзрд┐ред рд╕реНрдкреИрди рдХреЛ рдиреЗрд╕реНрдЯ рдФрд░ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдкреИрди рд╕реЗ рдПрдХ рдЙрдиреНрдореБрдЦ рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ рдЧреНрд░рд╛рдл рдПрдХ рдЯреНрд░реЗрд╕ рдмрдирд╛рддрд╛ рд╣реИред - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рдж
  3. рдпрд╣рд╛рдВ, рдЕрдиреБрд░реЛрдз рднрд╛рд╡рдирд╛ рдПрдирд▓рд┐рд╕рд┐рд╕ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдирд┐рд╢рд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
  4. рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рд╕рд╛ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ POST рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдХреЛ sa-web-app рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  5. ...

рдиреЛрдЯ : рдЪрд░рдг 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 рдорд╛рд░реНрдЪ): рджреВрд╕рд░рд╛ рднрд╛рдЧ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЪреБрдХрд╛ рд╣реИред

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.


рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:

Source: https://habr.com/ru/post/hi438426/


All Articles