рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрдЫреНрдпрд╛рдЙрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзреБрдирд┐рдХ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рд╕реЗрд╡рд╛ рдЬрд╛рд▓рд╣рд░реВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рд╕рдорд╛рдзрд╛рди рднрдПрдХреЛ рдЫред рдЬрдмрдХрд┐ Istio рдзреЗрд░реИ DevOps рдИрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВрдХреЛ рдУрдардорд╛ рд╣реБрди рд╕рдХреНрдЫ, рдпреЛ рдПрдХрджрдо рдирдпрд╛рдБ рдЙрддреНрдкрд╛рджрди рд╣реЛ рдЬреБрди, рдпрд╕рд▓реЗ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рд╡реНрдпрд╛рдкрдХ рд╣реБрдБрджрд╛, рдкрд░рд┐рдЪрд┐рдд рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдордп рдЪрд╛рд╣рд┐рдиреНрдЫред рдЬрд░реНрдорди рдЗрдиреНрдЬрд┐рдирд┐рдпрд░ рд░рд┐рдиреЛрд░ рдорд╛рд▓реЛрдХреБ, рдЬреЛ рджреВрд░рд╕рдЮреНрдЪрд╛рд░ рдХрдореНрдкрдиреА рдУрд░реЗрдиреНрдЬ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдХрд╛ рдареВрд▓рд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХреНрд▓рд╛рдЙрдб рдХрдореНрдкреНрдпреБрдЯрд┐рдЩрдХрд╛ тАЛтАЛрд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫрдиреН, рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрдХреЛ рдПрдХ рдЕрджреНрднреБрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓реЗрдЦреЗрдХрд╛ рдЫрдиреН рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЗрд╕реНрдЯрд┐рдпреЛрдорд╛ рдЫрд┐рдЯреЛ рд░ рдЧрд╣рд┐рд░реЛ рдбреБрдмреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЙрд╕рд▓реЗ рдЖрдлреНрдиреЛ рдХрдерд╛ рд╕реБрд░реБ рдЧрд░реНрдЫ Istio рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреЗ рдЧрд░реНрди рд╕рдХреНрдЫ рд░ рдХрд╕рд░реА рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдЖрдлреНрдиреЛ рдЖрдБрдЦрд╛рд▓реЗ рдЫрд┐рдЯреЛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдЗрд╕реНрддрд┐рдУ тАФ рдЧреБрдЧрд▓, IBM рд░ Lyft рдХрд╛ рдЯреЛрд▓реАрд╣рд░реВрд╕рдБрдЧрдХреЛ рд╕рд╣рдХрд╛рд░реНрдпрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдпрд╕рд▓реЗ рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫ, рдЬрд╕реНрддреИ:
- рдЯреНрд░рд╛рдлрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди: рдЯрд╛рдЗрдордЖрдЙрдЯ, рдкреБрди: рдкреНрд░рдпрд╛рд╕, рд▓реЛрдб рд╕рдиреНрддреБрд▓рди;
- рд╕реБрд░рдХреНрд╖рд╛: рдЕрдиреНрдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг;
- рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдпрддрд╛: рдЯреНрд░реЗрд╕рд┐рдЩ, рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрд▓рдЧрд┐рдЩред
рдпреА рд╕рдмреИрд▓рд╛рдИ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реНрддрд░рдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рддреНрдпрд╕ рдкрдЫрд┐ рддрдкрд╛рдИрдХрд╛ рд╕реЗрд╡рд╛рд╣рд░реВ "рдорд╛рдЗрдХреНрд░реЛ" рд╣реБрдиреЗ рдЫреИрдирдиреНред рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рдХрдореНрдкрдиреА рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдмрд░реНрдмрд╛рджреА рд╣реЛ рдЬреБрди рд╕реАрдзрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдореВрд▓реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ:
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдиреНрдзрдХ: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдердкреНрди рдХрддрд┐ рд╕рдордп рд▓рд╛рдЧреНрдЫ?
рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛: рджреБрдИ рд╕реНрдкреНрд░рд┐рдиреНрдЯрд╣рд░реВредрд╕рд╛рдВрд╕рдж: рдХреЗ?... рдпреЛ рдХреЗрд╡рд▓ CRUD рд╣реЛ!
R: CRUD рдЧрд░реНрдиреБ рд╕рдЬрд┐рд▓реЛ рднрд╛рдЧ рд╣реЛ, рддрд░ рд╣рд╛рдореАрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░ рд╕реЗрд╡рд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рдЕрдзрд┐рдХреГрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдиреЗрдЯрд╡рд░реНрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рднрдПрдХреЛрд▓реЗ, рддрдкрд╛рдИрдВрд▓реЗ рдмрд╛рд░рдореНрдмрд╛рд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ, рд╕рд╛рдереИрд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдврд╛рдБрдЪрд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реБ рдорд╛ред рд╕рд╛рдереИ, рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рдХреНрд░реНрдпрд╛рд╕ рдирд╣реБрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЯрд╛рдЗрдордЖрдЙрдЯ рд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫрдмрд▓реНрдХрд╣реЗрдбреНрд╕ (рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХрд╛ рджреБрд╡реИ рдврд╛рдБрдЪрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд▓реЗрдЦрдорд╛ рдкрдЫрд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред)рд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, рдЕрдиреБрдЧрдорди, рдЯреНрд░реЗрд╕рд┐рдЩ, [тАж]рд╕рд╛рдВрд╕рдж: рдУрд╣, рддреНрдпрд╕реЛрднрдП рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛рдорд╛ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реМрдВред
рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдЫ: рдПрдХ рд╕реЗрд╡рд╛ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдХрджрдо рд░ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдорд╛рддреНрд░рд╛ рдареВрд▓реЛ рдЫред рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА Istio рд▓реЗ рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╕рдмреИ рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рд╣рдЯрд╛рдЙрдБрдЫ рднрдиреЗрд░ рд╣реЗрд░реНрдиреЗрдЫреМрдВ (рдЬреБрди рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рд╣реЛрдЗрди) рд╕реЗрд╡рд╛рд╣рд░реВрдмрд╛рдЯред
рднрдиреНрдиреБ: рдпреЛ рд▓реЗрдЦрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ Kubernetes рдХреЛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЬреНрдЮрд╛рди рдЫ рднрдиреА рдорд╛рдиреНрджрдЫред рдЕрдиреНрдпрдерд╛, рдо рдкрдвреНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ
Istio рд╡рд┐рдЪрд╛рд░
Istio рдмрд┐рдирд╛рдХреЛ рд╕рдВрд╕рд╛рд░рдорд╛, рдПрдХ рд╕реЗрд╡рд╛рд▓реЗ рдЕрд░реНрдХреЛрд▓рд╛рдИ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрдЫ, рд░ рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕реЗрд╡рд╛рд▓реЗ рдпрд╕рд▓рд╛рдИ рдЖрдлреИрдВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиреБрдкрд░реНрдЫ: рдирдпрд╛рдБ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рдордп рд╕рдорд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН, рдЖрджрд┐ред
Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░рд╛рдлрд┐рдХ
Istio рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдЪрд╛рд░рдорд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реЗрд░ рд╕реЗрд╡рд╛рд╣рд░реВ рд░ рдХрд╛рд░реНрдпрд╣рд░реВрдмрд╛рдЯ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрд▓рдЧ рдЧрд░реА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рд░ рдпрд╕реИрд▓реЗ рдпреЛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ:
- рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдорд╛ рд░рд╣реЗрдХреЛ рд╕реНрдерд┐рддрд┐ рдХреЛрдбрдХреЛ рдЖрдзрд╛рд░рдорд╛, рдпрд╕рд▓реЗ рдЕрдиреБрд░реЛрдз рдЕрд╕рдлрд▓ рднрдпреЛ рд╡рд╛ рд╣реЛрдЗрди рднрдиреНрдиреЗ рдмреБрдЭреНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкреБрди: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫред
- рдХреНрдпрд╛рдирд░реА рд░реЛрд▓рдЖрдЙрдЯрд╣рд░реВ: рд╕реЗрд╡рд╛рдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╢рдд рдорд╛рддреНрд░ рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░реНрджрдЫред
- рдирд┐рдЧрд░рд╛рдиреА рд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕: рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рдХрддрд┐ рд╕рдордп рд▓рд╛рдЧреНрдпреЛ?
- рдЯреНрд░реЗрд╕рд┐рдЩ рд░ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдпрддрд╛: рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдзрдорд╛ рд╡рд┐рд╢реЗрд╖ рд╣реЗрдбрд░рд╣рд░реВ рдердкреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░рднрд░рд┐ рдЯреНрд░реЗрд╕ рдЧрд░реНрджрдЫред
- рд╕реБрд░рдХреНрд╖рд╛: JWT рдЯреЛрдХрди рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрджрдЫ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдЕрдзрд┐рдХреГрдд рдЧрд░реНрджрдЫред
рдпреА рдХреЗрд╣реА рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рдорд╛рддреНрд░ рд╣реБрдиреН (рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗрд╣реА!) рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЪрд╛рд╕реЛ рджрд┐рдиред рдЕрдм рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдорд╛ рдбреБрдмреМрдВ!
Istio рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
Istio рд▓реЗ рд╕рдмреИ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рд░реЛрдХреНрдЫ рд░ рдпрд╕рдорд╛ рдирд┐рдпрдорд╣рд░реВрдХреЛ рд╕реЗрдЯ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдорд╛ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдиреНрдЯреЗрдирд░рдХреЛ рд░реВрдкрдорд╛ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░реЛрдХреНрд╕реА рдШреБрд╕рд╛рдЙрдБрдЫред рд╕рдмреИ рдХреНрд╖рдорддрд╛рд╣рд░реВ рд╕рдХреНрд░рд┐рдп рдЧрд░реНрдиреЗ рдкреНрд░реЛрдХреНрд╕реАрд╣рд░реВ рдлрд╛рд░рдо рдП рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди, рд░ рддрд┐рдиреАрд╣рд░реВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рди.
рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди
рдкреЛрдбрд╣рд░реВрдорд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдкреНрд░реЛрдХреНрд╕реАрд╣рд░реВрд▓реЗ Istio рд▓рд╛рдИ рд╣рд╛рдореАрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рд╕рдЬрд┐рд▓реИ рдкреВрд░рд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреБрди: рдкреНрд░рдпрд╛рд╕ рд░ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реМрдВред
рдкреБрди: рдкреНрд░рдпрд╛рд╕ рд░ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдЩ рдХрд╕рд░реА Envoy рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫ
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЧрд░реНрди:
- рджреВрддрд╛рд╡рд╛рд╕ (рд╣рд╛рдореА рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ, рдЬреБрди рд░реВрдкрдорд╛ рд╡рд┐рддрд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ
рдЕрд▓рдЧ рдЙрддреНрдкрд╛рджрди - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджред) рд╕реЗрд╡рд╛ B рдХреЛ рдкрд╣рд┐рд▓реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдБрдЫ рд░ рдЕрд╕рдлрд▓ рд╣реБрдиреНрдЫред - Envoy Sidecar рдлреЗрд░рд┐ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫ (рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕). (1)
- рдЕрдиреБрд░реЛрдз рдЕрд╕рдлрд▓ рд╣реБрдиреНрдЫ рд░ рдкреНрд░реЛрдХреНрд╕реАрдорд╛ рдлрд┐рд░реНрддрд╛ рд╣реБрдиреНрдЫ рдЬреБрди рдпрд╕рд▓рд╛рдИ рднрдирд┐рдиреНрдЫред
- рдпрд╕рд▓реЗ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЦреЛрд▓реНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐рдХрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЛ рд╕реЗрд╡рд╛рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдЫред (2)
рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрд░реНрдХреЛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдкрд░реНрджреИрди, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ X, Y рд╡рд╛ Z рдорд╛ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдЩ рд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬрдХреЛ рдЖрдлреНрдиреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБ рдкрд░реНрджреИрдиред рдпреА рд╕рдмреИ рд░ рдзреЗрд░реИ рдХреБрд░рд╛рд╣рд░реВ рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред Istio рдорд╛ рд░ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди рд╣реЛрдИрди рдХреЛрдб рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдиред
рдорд╣рд╛рди! рдЕрдм рддрдкрд╛рдИрдВ Istio рд╕рдВрдЧ рдпрд╛рддреНрд░рд╛ рдорд╛ рдЬрд╛рди рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫ, рддрд░ рддрдкрд╛рдИрдВ рдЕрдЭреИ рдкрдирд┐ рдХреЗрд╣рд┐ рд╢рдВрдХрд╛, рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЫрдиреНред рдпрджрд┐ рдпреЛ рдЬреАрд╡рдирдорд╛ рд╕рдмреИ рдЕрд╡рд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╢рдВрдХрд╛ рдЫ: рдЖрдЦрд┐рд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдорд╛ рддреНрдпрд╕реНрддрд╛ рд╕рдмреИ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реБрди рдЬрд╛рдиреНрдЫред
рд░ рдЕрдиреНрддрдорд╛ рддрдкрд╛рдЗрдБ рд╕реЛрдзреНрдиреБрд╣реБрдиреНрдЫ: "рдХреЗ рдпреЛ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдЫ?"
рдЕрдм рддрдкрд╛рдИрдВ рд╕рдореБрджреНрд░реА рдпрд╛рддреНрд░рд╛рдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рд╣реБрдиреБрд╣реБрдиреНрдЫ, рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рдирд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдЧрд░реМрдВред
рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рди
рдпреЛ рддреАрди рдШрдЯрдХ рд╕рдорд╛рд╡реЗрд╢: рдкрд╛рдпрд▓рдЯ, рдорд┐рдХреНрд╕рд░ ╨╕ Citadel, рдЬрд╕рд▓реЗ рдорд╛рд░реНрдЧ рдЯреНрд░рд╛рдлрд┐рдХ, рдиреАрддрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди, рд░ рдЯреЗрд▓рд┐рдореЗрдЯреНрд░реА рдбреЗрдЯрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рд░рд╛рдЬрджреВрддрд╣рд░реВрд▓рд╛рдИ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдБрдЧреИ рдХрд╛рдо рдЧрд░реНрджрдЫред рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдкрдорд╛ рдпреЛ рд╕рдмреИ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди рд╕рдВрдЧ рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рди рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛
рджреВрддрд╣рд░реВ (рдЬрд╕реНрддреИ рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди) рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ
Istio рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕рдореНрдмрдиреНрдз
рд╣рд╛рдореАрд▓реЗ рд╕реЗрд╡рд╛рд╣рд░реВрд╕рдБрдЧ Istio рдХреЛ рд╕рдореНрдмрдиреНрдз рд╡рд░реНрдгрди рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рддрд░ рдЙрд▓реНрдЯреЛ рд╣реЛрдЗрди: рд╕реЗрд╡рд╛рд╣рд░реВ рдХрд╕рд░реА Istio рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫрдиреН?
рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХ рднрдиреНрдиреБрдкрд░реНрджрд╛, рд╕реЗрд╡рд╛рд╣рд░реВ Istio рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдЪреЗрдд рд╣реБрдиреНрдЫрдиреН рдЬрд╕реНрддреИ рдорд╛рдЫрд╛рд╣рд░реВ рдкрд╛рдиреАрдХрд╛ рд╣реБрдиреНрдЫрдиреН рдЬрдм рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЖрдлреИрд▓рд╛рдИ рд╕реЛрдзреНрдЫрдиреН, "рдЬреЗ рднрдП рдкрдирд┐ рдкрд╛рдиреА рдХреЗ рд╣реЛ?"
рджреГрд╖реНрдЯрд╛рдиреНрдд
рдпрд╕рд░реА, рддрдкрд╛рдИрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ Istio рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдбрд┐рдкреНрд▓реЛрдЗ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдпрд╕рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╕реЗрд╡рд╛рд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫ, рд░ рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╣рдЯрд╛рдПрдкрдЫрд┐, рд╕рдмреИ рдХреБрд░рд╛ рдлреЗрд░рд┐ рдареАрдХ рд╣реБрдиреЗрдЫред рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рддрдкрд╛рдИрд▓реЗ Istio рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдЧреБрдорд╛рдЙрдиреБрд╣реБрдиреЗрдЫред
рдкрд░реНрдпрд╛рдкреНрдд рд╕рд┐рджреНрдзрд╛рдиреНрдд - рдпреЛ рдЬреНрдЮрд╛рди рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рд░рд╛рдЦреМрдВ!
рдЕрднреНрдпрд╛рд╕рдорд╛ Istio
Istio рд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ 4 vCPU рд░ 8 GB RAM рдЙрдкрд▓рдмреНрдз рднрдПрдХреЛ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдЪрд╛рд╣рд┐рдиреНрдЫред рджреНрд░реБрдд рд░реВрдкрдорд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд░ рд▓реЗрдЦрдмрд╛рдЯ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрди, рдо Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд░реНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ, рдЬрд╕рд▓реЗ рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫред
рдХреНрд▓рд╕реНрдЯрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐ рд░ рдХрдиреНрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдорд╛рд░реНрдлрдд Kubernetes рдкрд╣реБрдБрдЪ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ Helm рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рдорд╛рд░реНрдлрдд Istio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рд╣реЗрд▓рдо рд╕реНрдерд╛рдкрдирд╛
рддрдкрд╛рдИрдВрдХреЛ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рд╣реЗрд▓реНрдо рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЬрд╕рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ
Istio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
рдмрд╛рдЯ Istio рд╕реНрд░реЛрддрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН [istio-resources]
.
Istio рд╕реНрд░реЛрддрд╣рд░реВ рд╕рдЬрд┐рд▓реИ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди, K8s рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдирд╛рдорд╕реНрдерд╛рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН istio-system
:
$ kubectl create namespace istio-system
рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЧрдПрд░ рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН [istio-resources]
рд░ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдБрджреИ:
$ helm template install/kubernetes/helm/istio
--set global.mtls.enabled=false
--set tracing.enabled=true
--set kiali.enabled=true
--set grafana.enabled=true
--namespace istio-system > istio.yaml
рдпреЛ рдЖрджреЗрд╢рд▓реЗ рдлрд╛рдЗрд▓рдорд╛ Istio рдХреЛ рдкреНрд░рдореБрдЦ рдШрдЯрдХрд╣рд░реВ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреЗрдЫ istio.yaml
ред рд╣рд╛рдореАрд▓реЗ рдирд┐рдореНрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджреИ рдорд╛рдирдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЖрдлреИрд▓рд╛рдИ рдЕрдиреБрд░реВрдк рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдпреМрдВ:
-
global.mtls.enabled
рдорд╛ рд╕реНрдерд╛рдкрд┐рддfalse
(рдЬрд╕реНрддреИ mTLS рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ - рд▓рдЧрднрдЧред)рд╣рд╛рдореНрд░реЛ рдбреЗрдЯрд┐рдЩ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓ рдмрдирд╛рдЙрди; -
tracing.enabled
Jaeger рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреБрд░реЛрдз рдЯреНрд░реЗрд╕рд┐рдЩ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ; -
kiali.enabled
рд╕реЗрд╡рд╛рд╣рд░реВ рд░ рдЯреНрд░рд╛рдлрд┐рдХрд╣рд░реВ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди рдХреНрд▓рд╕реНрдЯрд░рдорд╛ Kiali рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрдЫ; -
grafana.enabled
рд╕рдЩреНрдХрд▓рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди Grafana рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрдЫред
рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рд╕реНрд░реЛрддрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ:
$ kubectl apply -f istio.yaml
рдХреНрд▓рд╕реНрдЯрд░рдорд╛ Istio рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░рд╛ рднрдпреЛ! рд╕рдмреИ рдкреЛрдбрд╣рд░реВ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрдиреБрд╣реЛрд╕реН istio-system
рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫ Running
рд╡рд╛ Completed
рддрд▓рдХреЛ рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрд░:
$ kubectl get pods -n istio-system
рдЕрдм рд╣рд╛рдореА рдЕрд░реНрдХреЛ рдЦрдгреНрдбрдорд╛ рдЬрд╛рд░реА рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдЫреМрдВ, рдЬрд╣рд╛рдБ рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдЪрд▓реНрдиреЗрдЫреМрдВред
рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрд╡реЗрджрди рдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ
рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдорд╛ рдЪрд╛рд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВ рдЫрдиреН:
- рд╕реЗрд╡рд╛ SA-рдлреНрд░рдиреНрдЯрдПрдиреНрдб, рдЬрд╕рд▓реЗ Reactjs рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╕реЗрд╡рд╛ рдЧрд░реНрджрдЫ;
- рд╕реЗрд╡рд╛ SA-WebApp, рдЬрд╕рд▓реЗ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рд╢реНрдирд╣рд░реВ рд╕реЗрд╡рд╛ рдЧрд░реНрджрдЫ;
- рд╕реЗрд╡рд╛ SA- рддрд░реНрдХ, рдЬрд╕рд▓реЗ рдЖрдлреИрдВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдЫ
рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ; - рд╕реЗрд╡рд╛ SA-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдЬрд╕рд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд╢реБрджреНрдзрддрд╛ рдмрд╛рд░реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдмрд╛рдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред
рдпрд╕ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛, рд╕реЗрд╡рд╛рд╣рд░реВрдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рд╛рдореА рдЗрдиреНрдЧреНрд░реЗрд╕ рдХрдиреНрдЯреНрд░реЛрд▓рд░ рдкрдирд┐ рджреЗрдЦреНрдЫреМрдВ, рдЬрд╕рд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯрдорд╛ рдЙрдкрдпреБрдХреНрдд рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рдЖрдЧрдорди рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдорд╛рд░реНрдЧ рдЧрд░реНрджрдЫред Istio рдпрд╕рдХреЛ Ingress рдЧреЗрдЯрд╡реЗ рднрд┐рддреНрд░ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рдХреЛ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдкрдЫреНрдпрд╛рдЙрдиреЗрдЫрдиреНред
Istio рдмрд╛рдЯ рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рд╕рд╛рде рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдЙрдБрджреИ
рд▓реЗрдЦрдорд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдердк рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрдХреЛ рднрдгреНрдбрд╛рд░ рдХреНрд▓реЛрди рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╕рд╛рдЗрдбрдХрд╛рд░рд╣рд░реВ рдШреБрд╕рд╛рдЙрдБрджреИ
рд╕рдореНрдорд┐рд▓рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд╕реНрд╡рдд: рд╡рд╛ рдореНрдпрд╛рдиреБрдЕрд▓реАред рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдирд╛рдо рд╕реНрдерд╛рдирдорд╛ рд▓реЗрдмрд▓ рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ istio-injection=enabled
, рдЬреБрди рдирд┐рдореНрди рдЖрджреЗрд╢ рд╕рдВрдЧ рдЧрд░рд┐рдиреНрдЫ:
$ kubectl label namespace default istio-injection=enabled
namespace/default labeled
рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдб рдЬреБрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреЗрдорд╕реНрдкреЗрд╕ (default
) рд▓реЗ рдпрд╕рдХреЛ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдиреНрдЯреЗрдирд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫред рдпрд╕рд▓рд╛рдИ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рднрдгреНрдбрд╛рд░рдХреЛ рдореВрд▓ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЧрдПрд░ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ [istio-mastery]
рд░ рдирд┐рдореНрди рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдБрджреИ:
$ kubectl apply -f resource-manifests/kube
persistentvolumeclaim/sqlite-pvc created
deployment.extensions/sa-feedback created
service/sa-feedback created
deployment.extensions/sa-frontend created
service/sa-frontend created
deployment.extensions/sa-logic created
service/sa-logic created
deployment.extensions/sa-web-app created
service/sa-web-app created
рд╕реЗрд╡рд╛рд╣рд░реВ рддреИрдирд╛рдд рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрд░ рдкреЛрдбрд╣рд░реВрдорд╛ рджреБрдИрд╡рдЯрд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЫрдиреН (рд╕реЗрд╡рд╛ рдЖрдлреИрдВ рд░ рдпрд╕рдХреЛ рд╕рд╛рдЗрдбрдХрд╛рд░рдХреЛ рд╕рд╛рде) рдЬрд╛рдБрдЪ рдЧрд░реМрдВред kubectl get pods
рд░ рд╕реНрддрдореНрдн рдореБрдирд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджреИ READY
рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ 2/2
, рджреБрд╡реИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН рднрдиреНрдиреЗ рдкреНрд░рддреАрдХ:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
sa-feedback-55f5dc4d9c-c9wfv 2/2 Running 0 12m
sa-frontend-558f8986-hhkj9 2/2 Running 0 12m
sa-logic-568498cb4d-2sjwj 2/2 Running 0 12m
sa-logic-568498cb4d-p4f8c 2/2 Running 0 12m
sa-web-app-599cf47c7c-s7cvd 2/2 Running 0 12m
рджреГрд╖реНрдЯрд┐рдЧрдд рд░реВрдкрдорд╛ рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
рдПрдЙрдЯрд╛ рдкреЛрдбрдорд╛ рджреВрдд рдкреНрд░реЛрдХреНрд╕реА
рдЕрдм рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдорд╛рдерд┐ рд░ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ, рд╣рд╛рдореАрд▓реЗ рдЖрдЧрдорди рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдЖрдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫред
рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░
рдпреЛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрддрдо рдЕрднреНрдпрд╛рд╕ (рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реН) рд╣реЛ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ Istio рдорд╛, рдЬреБрди рдХреНрд▓рд╕реНрдЯрд░рдХреЛ "рдзрд╛рд░" рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ Istio рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╕реНрддреИ рд░рд╛рдЙрдЯрд┐рдЩ, рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд┐рдЩ, рд╕реБрд░рдХреНрд╖рд╛ рд░ рдЖрдЧрдорди рдЯреНрд░рд╛рдлрд┐рдХрдХреЛ рдирд┐рдЧрд░рд╛рдиреАред
Ingress рдЧреЗрдЯрд╡реЗ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд░ рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░реА рд░реВрдкрдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрдиреЗ рд╕реЗрд╡рд╛ Istio рд╕реНрдерд╛рдкрдирд╛рдХреЛ рдХреНрд░рдордорд╛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд╕реЗрд╡рд╛рдХреЛ рдмрд╛рд╣реНрдп IP рдареЗрдЧрд╛рдирд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:
$ kubectl get svc -n istio-system -l istio=ingressgateway
NAME TYPE CLUSTER-IP EXTERNAL-IP
istio-ingressgateway LoadBalancer 10.0.132.127 13.93.30.120
рд╣рд╛рдореА рдпреЛ рдЖрдИрдкреА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫреМрдВ (рдо рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣реНрдп-рдЖрдИрдкреАрдХреЛ рд░реВрдкрдорд╛ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреЗрдЫреБ), рддреНрдпрд╕реИрд▓реЗ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдорд╛рдирд▓рд╛рдИ рдЪрд░рдорд╛ рд▓реЗрдЦреНрдиреЗрдЫреМрдВ:
$ EXTERNAL_IP=$(kubectl get svc -n istio-system
-l app=istio-ingressgateway
-o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')
рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрд╣рд┐рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд░ рдорд╛рд░реНрдлрдд рдпреЛ рдЖрдИрдкреА рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ, рдХрд┐рдирднрдиреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ Istio рд╕рдмреИ рдЖрдЧрдорди рдпрд╛рддрд╛рдпрд╛рдд рд░реЛрдХреНрдЫ, рдЧреЗрдЯрд╡реЗ рдЕрдЭреИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред
рдЧреЗрдЯрд╡реЗ рд╕реНрд░реЛрдд
рдЧреЗрдЯрд╡реЗ Kubernetes рдорд╛ CRD (рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕ рдбреЗрдлрд┐рдирд┐рд╢рди) рд╣реЛ, рдХреНрд▓рд╕реНрдЯрд░рдорд╛ Istio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдкреЛрд░реНрдЯрд╣рд░реВ, рдкреНрд░реЛрдЯреЛрдХрд▓ рд░ рд╣реЛрд╕реНрдЯрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд╕рдХреНрд╖рдо рдкрд╛рд░реЗрд░ рд╣рд╛рдореА рдЖрдЧрдорди рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рди рдЪрд╛рд╣рдиреНрдЫреМрдВред
рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рд╕рдмреИ рд╣реЛрд╕реНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреЛрд░реНрдЯ 80 рдорд╛ HTTP рдЯреНрд░рд╛рдлрд┐рдХ рдЕрдиреБрдорддрд┐ рджрд┐рди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдХрд╛рд░реНрдп рдирд┐рдореНрди рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ (
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: http-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
рдпреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓рд╛рдИ рдЪрдпрдирдХрд░реНрддрд╛ рдмрд╛рд╣реЗрдХ рдХреБрдиреИ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди istio: ingressgateway
ред рдпрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдХреЛ рд╕рд╛рде рд╣рд╛рдореА рдХреБрди рдЗрдиреНрдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗрдорд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреЛ Ingress рдЧреЗрдЯрд╡реЗ рдирд┐рдпрдиреНрддреНрд░рдХ рд╣реЛ, рдЬреБрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ Istio рдорд╛ рд╕реНрдерд╛рдкрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред
рдирд┐рдореНрди рдЖрджреЗрд╢рд▓рд╛рдИ рдХрд▓ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ:
$ kubectl apply -f resource-manifests/istio/http-gateway.yaml gateway.networking.istio.io/http-gateway created
рдЧреЗрдЯрд╡реЗрд▓реЗ рдЕрдм рдкреЛрд░реНрдЯ 80 рдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддрд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдХрд╣рд╛рдБ рдорд╛рд░реНрдЧ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдХреБрдиреИ рдЬрд╛рдирдХрд╛рд░реА рдЫреИрдиред рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗрдЫ рднрд░реНрдЪреБрдЕрд▓ рд╕реЗрд╡рд╛рд╣рд░реБ.
рднрд░реНрдЪреБрдЕрд▓ рд╕реЗрд╡рд╛ рд╕реНрд░реЛрдд
VirtualService рд▓реЗ Ingress Gateway рд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рд░реБрдЯ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдБрдЫред
http-рдЧреЗрдЯрд╡реЗ рдорд╛рд░реНрдлрдд рдЖрдЙрдиреЗ рд╣рд╛рдореНрд░реЛ рдЖрд╡реЗрджрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдзрд╣рд░реВ sa-frontend, sa-web-app рд░ sa-feedback рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рдкрдард╛рдЗрдиреБрдкрд░реНрдЫ:
VirtualServices рд╕рдВрдЧ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдорд╛рд░реНрдЧрд╣рд░реВ
SA-Frontend рдорд╛ рдкрдард╛рдЗрдиреБ рдкрд░реНрдиреЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реЗрд░реМрдВ:
- рдмрд╛рдЯреЛрдорд╛ рдареНрдпрд╛рдХреНрдХреИ рдореЗрд▓ рдЦрд╛рдиреНрдЫ
/
index.html рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди SA-Frontend рдорд╛ рдкрдард╛рдЙрдиреБ рдкрд░реНрдЫ; - рдЙрдкрд╕рд░реНрдЧ рдорд╛рд░реНрдЧрд╣рд░реВ
/static/*
CSS рд░ JavaScript рдЬрд╕реНрддрд╛ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди SA-Frontend рдорд╛ рдкрдард╛рдЗрдиреБрдкрд░реНрдЫ; - рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕реНрдкреНрд░реЗрд╢рдирджреНрд╡рд╛рд░рд╛ рдорд┐рд▓реНрдиреЗ рдорд╛рд░реНрдЧрд╣рд░реВ
'^.*.(ico|png|jpg)$'
, SA-Frontend рдорд╛ рдкрдард╛рдЙрдиреБ рдкрд░реНрдЫ, рдХрд┐рдирднрдиреЗ рдпреА рдкреГрд╖реНрдардорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЪрд┐рддреНрд░рд╣рд░реВ рд╣реБрдиреНред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рдореНрди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЫ (
kind: VirtualService
metadata:
name: sa-external-services
spec:
hosts:
- "*"
gateways:
- http-gateway # 1
http:
- match:
- uri:
exact: /
- uri:
exact: /callback
- uri:
prefix: /static
- uri:
regex: '^.*.(ico|png|jpg)$'
route:
- destination:
host: sa-frontend # 2
port:
number: 80
рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдмреБрдБрджрд╛рд╣рд░реВ:
- рдпреЛ VirtualService рдорд╛рд░реНрдлрдд рдЖрдЙрдиреЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВрд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ http-рдЧреЗрдЯрд╡реЗ;
- ╨Т
destination
рдЕрдиреБрд░реЛрдз рдкрдард╛рдЗрдиреЗ рд╕реЗрд╡рд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред
рднрдиреНрдиреБ: рдорд╛рдерд┐рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ sa-virtualservice-external.yaml
, рдЬрд╕рдорд╛ SA-WebApp рд░ SA-feedback рдорд╛ рд░рд╛рдЙрдЯрд┐рдЩрдХрд╛ тАЛтАЛрд▓рд╛рдЧрд┐ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рддрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдпрд╣рд╛рдБ рд▓реЗрдЦрдорд╛ рдЫреЛрдЯреЛ рдкрд╛рд░рд┐рдПрдХреЛ рдЫред
рдХрд▓ рдЧрд░реЗрд░ рднрд░реНрдЪреБрдЕрд▓ рд╕реЗрд╡рд╛ рд▓рд╛рдЧреВ рдЧрд░реМрдВ:
$ kubectl apply -f resource-manifests/istio/sa-virtualservice-external.yaml
virtualservice.networking.istio.io/sa-external-services created
рднрдиреНрдиреБ: рдЬрдм рд╣рд╛рдореАрд▓реЗ Istio рд╕реНрд░реЛрддрд╣рд░реВ рдЙрдкрднреЛрдЧ рдЧрд░реНрдЫреМрдВ, Kubernetes API рд╕рд░реНрднрд░рд▓реЗ Istio Control Plane рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдШрдЯрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдирдпрд╛рдБ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рджреВрдд рдкреНрд░реЛрдХреНрд╕реАрд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред рд░ рдЗрдиреНрдЧреНрд░реЗрд╕ рдЧреЗрдЯрд╡реЗ рдХрдиреНрдЯреНрд░реЛрд▓рд░ рдХрдиреНрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрдирдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЕрд░реНрдХреЛ рджреВрдд рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫред рдпреЛ рд╕рдмреИ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
рдЕрдиреБрд░реЛрдз рдорд╛рд░реНрдЧрдХреЛ рд▓рд╛рдЧрд┐ Istio-IngressGateway рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди
рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрд╡реЗрджрди рдЕрдм рдЙрдкрд▓рдмреНрдз рдЫ http://{EXTERNAL-IP}/
ред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдлреЗрд▓рд╛ рдкрд░реЗрди рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рдЪрд┐рдиреНрддрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН: рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдпрд╕рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓рд╛рдИ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрди рд░ рджреВрдд рдХреНрдпрд╛рд╕рд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЕрд▓рд┐ рдмрдвреА рд╕рдордп рд▓рд┐рдиреНрдЫ.
рдЕрдЧрд╛рдбрд┐ рдмрдвреНрдиреБ рдЕрдШрд┐, рдЯреНрд░рд╛рдлрд┐рдХ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рдЕрд▓рд┐рдХрддрд┐ рдЦреЗрд▓реНрдиреБрд╣реЛрд╕реНред (рдпрд╕рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрдЫрд┐рдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд╕реНрдкрд╖реНрдЯрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫ - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред).
Kiali: рдЕрд╡рд▓реЛрдХрди рдХреНрд╖рдорддрд╛
Kiali рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рдирд┐рдореНрди рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:
$ kubectl port-forward
$(kubectl get pod -n istio-system -l app=kiali
-o jsonpath='{.items[0].metadata.name}')
-n istio-system 20001
... рд░ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН
рдЧреНрд░рд╛рдлрд╛рдирд╛: рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╡рд┐рдЬреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди
Istio рдорд╛ рд╕рдВрдХрд▓рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ Prometheus рдорд╛ рдЬрд╛рдиреНрдЫ рд░ Grafana рд╕рдВрдЧ рдХрд▓реНрдкрдирд╛ рдЧрд░рд┐рдиреНрдЫред Grafana рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рддрд▓рдХреЛ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН
$ kubectl -n istio-system port-forward
$(kubectl -n istio-system get pod -l app=grafana
-o jsonpath={.items[0].metadata.name}) 3000
рдореЗрдиреБрдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрджреИ рдЧреГрд╣рдкреГрд╖реНрда рд╢реАрд░реНрд╖ рдмрд╛рдпрд╛рдБ рд░ рдЪрдпрди Istio рд╕реЗрд╡рд╛ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдб рд╢реАрд░реНрд╖ рдмрд╛рдпрд╛рдБ рдХреБрдирд╛рдорд╛, рд╕реЗрд╡рд╛рдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН sa-web-appрд╕рдЩреНрдХрд▓рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╣реЗрд░реНрди:
рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╣рд╛рдБ рдХреЗ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХреЛ рдЫ рдПрдХ рдЦрд╛рд▓реА рд░ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмреЛрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рд╣реЛ - рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╣рд┐рд▓реНрдпреИ рдЕрдиреБрдореЛрджрди рдЧрд░реНрджреИрдиред рдирд┐рдореНрди рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рд▓реЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}';
sleep .8; done
рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдзреЗрд░реИ рд░рд╛рдореНрд░рд╛ рдЧреНрд░рд╛рдлрд╣рд░реВ рдЫрдиреН, рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдиреБрдЧрдордирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрджреНрднреБрдд рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЙрдкрдХрд░рдгрд╣рд░реВ рд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕рдХреЛ рджреГрд╢реНрдпрд╛рд╡рд▓реЛрдХрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдордпрд╕рдБрдЧреИ рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди, рд╕реНрд╡рд╛рд╕реНрдереНрдп, рд╕реБрдзрд╛рд░ / рдЧрд┐рд░рд╛рд╡рдЯ рдмрд╛рд░реЗ рдЬрд╛рдиреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред
рдЕрдиреНрддрдорд╛, рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рдЯреНрд░реЗрд╕рд┐рдЩ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реЗрд░реМрдВред
рдЬреЗрдЧрд░: рдЯреНрд░реЗрд╕рд┐рдЩ
рд╣рд╛рдореАрд▓рд╛рдИ рдЯреНрд░реЗрд╕рд┐рдЩ рдЪрд╛рд╣рд┐рдиреНрдЫ рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд╕рдБрдЧ рдЬрддрд┐ рдзреЗрд░реИ рд╕реЗрд╡рд╛рд╣рд░реВ рдЫрдиреН, рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдХрд╛рд░рдгрдорд╛ рдкреБрдЧреНрди рддреНрдпрддрд┐ рдиреИ рдЧрд╛рд╣реНрд░реЛ рдЫред рддрд▓рдХреЛ рдЪрд┐рддреНрд░рдмрд╛рдЯ рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдХреЗрд╕ рд╣реЗрд░реМрдВ:
рдЕрдирд┐рдпрдорд┐рдд рдЕрд╕рдлрд▓ рдЕрдиреБрд░реЛрдзрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг
рдорд╛рдЧ рдЖрдЙрдБрдЫ, рдЭрд░реНрдЫ- рдХрд╛рд░рдг рдХреЗ рд╣реЛ? рдкрд╣рд┐рд▓реЛ рд╕реЗрд╡рд╛? рд╡рд╛ рджреЛрд╕реНрд░реЛ? рджреБрдмреИрдорд╛ рдЕрдкрд╡рд╛рджрд╣рд░реВ рдЫрдиреН - рдкреНрд░рддреНрдпреЗрдХрдХреЛ рд▓рдЧрд╣рд░реВ рд╣реЗрд░реМрдВред рдХрддрд┐ рдкрдЯрдХ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреИрдВрд▓рд╛рдИ рдпреЛ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ? рд╣рд╛рдореНрд░реЛ рдХрд╛рдо рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рднрдиреНрджрд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЬрд╛рд╕реВрд╕рд╣рд░реВ рдЬрд╕реНрддреИ рдЫ ...
рдпреЛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рдорд╛ рд╕реЗрд╡рд╛рд╣рд░реВрд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЗрдбрд░ рдкрд╛рд╕ рдЧрд░реНрдЫрдиреН, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░рд┐рдиреНрдЫ, рдЬрд╣рд╛рдБ рдпреЛ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░рд┐рдиреНрдЫред рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рджреГрд╖реНрдЯрд╛рдиреНрдд рдЫ:
TraceId рдЕрдиреБрд░реЛрдз рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ
Istio рд▓реЗ Jaeger Tracer рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рд╡рд┐рдХреНрд░реЗрддрд╛-рд╕реНрд╡рддрдиреНрддреНрд░ OpenTracing API рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред рддрдкрд╛рдЗрдБ рдирд┐рдореНрди рдЖрджреЗрд╢ рд╕рдВрдЧ Jaeger рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
$ kubectl port-forward -n istio-system
$(kubectl get pod -n istio-system -l app=jaeger
-o jsonpath='{.items[0].metadata.name}') 16686
рдЕрдм рдЬрд╛рдиреБрд╣реЛрд╕реН
рдпреЛ рдЯреНрд░реЗрд╕рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ:
- рдЕрдиреБрд░реЛрдз рдЖрдЙрдБрдЫ istio-ingressgateway (рдпреЛ рдХреБрдиреИ рдПрдХ рд╕реЗрд╡рд╛рд╕рдБрдЧрдХреЛ рдкрд╣рд┐рд▓реЛ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рд╣реЛ, рд░ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ), рддреНрдпрд╕рдкрдЫрд┐ рдЧреЗрдЯрд╡реЗрд▓реЗ рд╕реЗрд╡рд╛рдорд╛ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдБрдЫред sa-web-app.
- рд╕реЗрд╡рд╛рдорд╛ sa-web-app рдЕрдиреБрд░реЛрдз рджреВрдд рд╕рд╛рдЗрдбрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдЗрдиреНрдЫ, рд╕реНрдкреНрдпрд╛рдирдорд╛ "рдмрдЪреНрдЪрд╛" рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫ (рдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЯреНрд░реЗрд╕рд╣рд░реВрдорд╛ рджреЗрдЦреНрдЫреМрдВ) рд░ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░рд┐рдиреНрдЫред sa-web-app. (
span - Jaeger рдорд╛ рдХрд╛рдордХреЛ рддрд╛рд░реНрдХрд┐рдХ рдПрдХрд╛рдЗ, рдЬрд╕рдХреЛ рдирд╛рдо, рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕реБрд░реБ рд╕рдордп рд░ рдпрд╕рдХреЛ рдЕрд╡рдзрд┐ рдЫред рд╕реНрдкреНрдпрд╛рдирд╣рд░реВ рдиреЗрд╕реНрдЯ рд░ рдЕрд░реНрдбрд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╕реНрдкреНрдпрд╛рдирдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ рдЧреНрд░рд╛рдлрд▓реЗ рдЯреНрд░реЗрд╕ рдмрдирд╛рдЙрдБрдЫред - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджред) - рдпрд╣рд╛рдБ рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдПрдХреЛ рдЫ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рдпреА рдЯреНрд░реЗрд╕рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рднрдЗрд╕рдХреЗрдХрд╛ рдЫрдиреН, рдЕрд░реНрдерд╛рддреН рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рдЫред
- рдпрд╕ рдХреНрд╖рдг рджреЗрдЦрд┐, рдПрдХ POST рдЕрдиреБрд░реЛрдз рдорд╛ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░рд┐рдПрдХреЛ рдЫ рд╕рд╛-рддрд░реНрдХред рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдмрд╛рдЯ рдлрд░реНрд╡рд╛рд░реНрдб рд╣реБрдиреБрдкрд░реНрдЫ sa-web-app.
- ...
рднрдиреНрдиреБ: рдЪрд░рдг 4 рдорд╛, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ Istio рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЗрдбрд░рд╣рд░реВ рд╣реЗрд░реНрдиреБ рдкрд░реНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рддрд▓рдХреЛ рдЫрд╡рд┐рдорд╛ рджреЗрдЦрд╛рдЗрдП рдЕрдиреБрд╕рд╛рд░ рдкрдЫрд┐рдХрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдкрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫ:
(A) Istio рд╣реЗрдбрд░рд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫ; (B) рд╕реЗрд╡рд╛рд╣рд░реВ рд╣реЗрдбрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫрдиреН
Istio рд▓реЗ рдзреЗрд░реИ рдЬрд╕реЛ рдХрд╛рдо рдЧрд░реНрджрдЫ рдХрд┐рдирднрдиреЗ ... рдЖрдЧрдорди рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЗрдбрд░рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдбрдХреЗрдпрд░рдорд╛ рдирдпрд╛рдБ рд╕реНрдкреНрдпрд╛рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рд╕реЗрд╡рд╛рд╣рд░реВ рднрд┐рддреНрд░ рд╣реЗрдбрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдирдЧрд░реА, рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдз рдЯреНрд░реЗрд╕ рдорд╛рд░реНрдЧ рд╣рд░рд╛рдЙрдиреЗрдЫред
рдирд┐рдореНрди рд╣реЗрдбрд░рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдиреБрдкрд░реНрдЫ:
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
рдпреЛ рдХреБрдиреИ рдЧрд╛рд╣реНрд░реЛ рдХрд╛рдо рдЫреИрди, рддрд░ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди рдкрд╣рд┐рд▓реЗ рдиреИ рдЫ
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдлреНрд▓рд╛рд╕реНрдХ, рд╡рд╕рдиреНрдд, рд░ ASP.NET рдХреЛрд░рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫред
рдЕрдм рдЬрдм рд╣рд╛рдореА рдмрдХреНрд╕рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ (рд╡рд╛ рд▓рдЧрднрдЧ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░) рдХреЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ рднрдиреНрдиреЗ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЫ, рдЖрдЙрдиреБрд╣реЛрд╕реН рд░рд╛рдореНрд░реЛ-рдЯреНрдпреВрди рдЧрд░рд┐рдПрдХреЛ рдорд╛рд░реНрдЧ, рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░рд╛рдлрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди, рд╕реБрд░рдХреНрд╖рд╛, рдЖрджрд┐ рд╣реЗрд░реМрдВ!
рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рдпрд╕ рдмрд╛рд░реЗ Rinor Maloku рдмрд╛рдЯ Istio рдорд╛ рд╕рд╛рдордЧреНрд░реАрдХреЛ рдЕрд░реНрдХреЛ рднрд╛рдЧрдорд╛ рдкрдвреНрдиреБрд╣реЛрд╕реН, рдЬрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рджрд╣рд░реВ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдпрдорд╛ рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдЫреНрдпрд╛рдЙрдиреЗрдЫрдиреНред рдЕрджреНрдпрддрди (рдорд╛рд░реНрдЪ резрек):
рдЕрдиреБрд╡рд╛рджрдХрдмрд╛рдЯ PS
рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:
- "рдЗрд╕реНрдЯрд┐рдУрдХреЛ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН":
рднрд╛рдЧ реи (рдорд╛рд░реНрдЧ, рдЯреНрд░рд╛рдлрд┐рдХ рдирд┐рдпрдиреНрддреНрд░рдг) ,рднрд╛рдЧ рей (рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг) ; - ┬л
рдХрдиреНрдбреНрдпреБрдЯ - Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд▓реНрдХрд╛ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ ┬╗; - ┬л
рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреЗ рд╣реЛ рд░ рдорд▓рд╛рдИ рдХрд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ [рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐]? ┬╗; - ┬л
Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреА рдПрдХ рд╕рдЪрд┐рддреНрд░ рдЧрд╛рдЗрдбред рднрд╛рдЧ рез рд░ реи ┬╗; - ┬л
рдпреЛ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдиреНрдЯреЗрдирд░ рдпрд╣рд╛рдБ [рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдорд╛] рдХрд╕рд░реА рд╕рдорд╛рдкреНрдд рднрдпреЛ? "ред
рд╕реНрд░реЛрдд: www.habr.com