рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХреЛ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

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

рдЖрдЬ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдбреЗрдирд┐рдпрд▓ рдкреЛрд▓реЗрдиреНрдЪрд┐рдХ рд╣реИрдВ (рдбреЗрдирд┐рдПрд▓ рдкреЛрд▓реЗрдВрд╕рд┐рдХ). рдбреИрдирд┐рдпрд▓ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд╛рдиреЗрдВk8s.

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдИрдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╣рдорд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдпрд╛ рдЯреНрд╡рд┐рдЯрд░: @learnk8s.

рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯреЗрдВ рдЫреВрдЯ рдЧрдИрдВ? рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдЦреЛрдЬреЗрдВ.

рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХреЛ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ?

рд╕рдВрдХреНрд╖рд┐рдкреНрдд: рдХреНрдпреВрдмрдлреЗрдб v2 рдЬрд▓реНрдж рд╣реА рдЖ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ shipper ╨╕ рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рдЕрдиреБрд╕реВрдЪрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛.

рдЕрдХреНрд╕рд░, рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдФрд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВред

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

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рд╕рдорд╛рди рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпрднрд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЖрдкрдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓рд╛рдЙрдб рдФрд░ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕реЗрд╕ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЖрдк рдРрд╕реЗ рднреМрдЧреЛрд▓рд┐рдХ рдкреНрд░рд╕рд╛рд░ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрдИ рдХреНрд▓рд╛рдЙрдб рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдЫреЛрдЯреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдвреВрдВрдврддреЗ рд╣реИрдВ?

рдПрдХ рдиреЗрддреГрддреНрд╡ рд╕рдореВрд╣

рдПрдХ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рд╕рд╛рде рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рд╣реБрдИ рд╣реИ, рдХреНрд▓рд╕реНрдЯрд░ рдЦрдВрдбреЛрдВ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЦреЛ рдЧрдИ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рд╣реИ, рддреЛ рдЖрдзреЗ рд╕рдВрд╕рд╛рдзрди рдирдП рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдФрд░ рд╕рд╛рде рд╣реА рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреБрд░рд╛рдиреА рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╣реИрдВ (kube-proxy рдирдП рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ) рдФрд░ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЙрдб рдирд╣реАрдВ (рдХреНрдпреВрдмрд▓реЗрдЯ рдЕрдкрдбреЗрдЯ рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)ред

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛрдЧреБрдиреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреЙрдбреНрд╕ рд╣реИрдВред

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

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

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

рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдФрд░ рдЪреВрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЕрдиреЗрдХ рд╣реИрдВ, рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреВрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ.

рдЖрджрд┐ рдЗрддрдирд╛ рд╡рд┐рд▓рдВрдмрддрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдирд┐рдпрдорд┐рдд рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдмрдЬрд╛рдп SSDs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ.

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХрд▓ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред

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

рд╡рд┐рдХрд▓реНрдк 1: рдХреНрдпреВрдмрдлреЗрдб рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рдлреЗрдбрд░реЗрд╢рди

рдПрд╕рдЖрдИрдЬреА-рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ - kubefed2, рдореВрд▓ kube рдлрд╝реЗрдбрд░реЗрд╢рди рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг.

рдкрд╣рд▓реА рдмрд╛рд░, рд╣рдордиреЗ рдХреНрдпреВрдм рдлрд╝реЗрдбрд░реЗрд╢рди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред

рд╢реБрд░реБрдЖрдд рдЕрдЪреНрдЫреА рдереА, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдХреНрдпреВрдм рдлреЗрдбрд░реЗрд╢рди рдХрднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

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

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлреЗрдбрд░реЗрд╢рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреГрддрд┐ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рдЧрдбрд╝рдмрдбрд╝ рдерд╛.

рдХреНрдпреВрдмрдлреЗрдб v1 рдХреЗ рдмрд╛рдж рдПрд╕рдЖрдИрдЬреА-рдХреНрд▓рд╕реНрдЯрд░ рдиреЗ рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХреЛрдг рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

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

рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдЬреЛ рдлреЗрдбрд░реЗрд╢рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛, рдЖрдкрдХреЗ рдкрд╛рд╕ рддреАрди рдЦрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рд╕реАрдЖрд░рдбреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ:

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

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

apiVersion: types.federation.k8s.io/v1alpha1
kind: FederatedDeployment
metadata:
  name: test-deployment
  namespace: test-namespace
spec:
  template:
    metadata:
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - image: nginx
              name: nginx
  placement:
    clusterNames:
      - cluster2
      - cluster1
  overrides:
    - clusterName: cluster2
      clusterOverrides:
        - path: spec.replicas
          value: 5

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкреВрд░реНрддрд┐ рджреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХреА рдЧрдИ рд╣реИ: cluster1 ╨╕ cluster2.

рдкрд╣рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░ рддреАрди рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ 5 рдкрд░ рд╕реЗрдЯ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ kubefed2 рдПрдХ рдирдпрд╛ ReplicationSchedulingPreference рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЛ рднрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

apiVersion: scheduling.federation.k8s.io/v1alpha1
kind: ReplicaSchedulingPreference
metadata:
  name: test-deployment
  namespace: test-ns
spec:
  targetKind: FederatedDeployment
  totalReplicas: 9
  clusters:
    A:
      weight: 1
    B:
      weight: 2

рд╕реАрдЖрд░рдбреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрдкреАрдЖрдИ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдЪрд▓ рд░рд╣рд╛ рд╣реИред

Kubefed2 рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдЕрднреА рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

Kubefed2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВ Kubefed2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд▓реЗрдЦ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдФрд░ рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреНрд▓реЙрдЧ рдореЗрдВ рдХреНрдпреВрдмрдлреЗрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдВрдбрд╛рд░.

рд╡рд┐рдХрд▓реНрдк 2: рдмреБрдХрд┐рдВрдЧ.рдХреЙрдо рд╢реИрд▓реА рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди

рдмреБрдХрд┐рдВрдЧ.рдХреЙрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХреНрдпреВрдмрдлреЗрдб рд╡реА2 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рд╢рд┐рдкрд░ рдХреЗ рд╕рд╛рде рдЖрдП - рдЬреЛ рдХрдИ рд╕рдореВрд╣реЛрдВ, рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдХрдИ рдмрд╛рджрд▓реЛрдВ рдореЗрдВ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИред

shipper рдХреБрдЫ рд╣рдж рддрдХ kubefed2 рдХреЗ рд╕рдорд╛рдиред

рджреЛрдиреЛрдВ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЕрдкрдиреА рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд░рдгрдиреАрддрд┐ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ (рдХреМрди рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдХрд┐рддрдиреА рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд╣реИрдВ)ред

рд▓реЗрдХрд┐рди рд╢рд┐рдкрд░ рдХрд╛ рд▓рдХреНрд╖реНрдп рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред

рд╢рд┐рдкрд░ рдореЗрдВ, рдЖрдк рдЪрд░рдгреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд┐рдЫрд▓реА рдФрд░ рд╡рд░реНрддрдорд╛рди рддреИрдирд╛рддреА рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢рд┐рдкрд░ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИред

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

рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛ:

apiVersion: shipper.booking.com/v1alpha1
kind: Application
metadata:
  name: super-server
spec:
  revisionHistoryLimit: 3
  template:
    chart:
      name: nginx
      repoUrl: https://storage.googleapis.com/shipper-demo
      version: 0.0.1
    clusterRequirements:
      regions:
        - name: local
    strategy:
      steps:
        - capacity:
            contender: 1
            incumbent: 100
          name: staging
          traffic:
            contender: 0
            incumbent: 100
        - capacity:
            contender: 100
            incumbent: 0
          name: full on
          traffic:
            contender: 100
            incumbent: 0
    values:
      replicaCount: 3

рд╢рд┐рдкрд░ рдХрдИ рд╕рдореВрд╣реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЗрд▓реНрдо рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдХрд░реАрдмреА рд░рд┐рд╢реНрддрд╛ рд╣реА рдЖрдбрд╝реЗ рдЖрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рд╕рднреА рд╣реЗрд▓реНрдо рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ рдпрд╛ kapitan?

рд╢рд┐рдкрд░ рдФрд░ рдЙрд╕рдХреЗ рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐.

рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдВрдбрд╛рд░ рдкрд░ рдЬрд╛рдПрдБ.

рд╡рд┐рдХрд▓реНрдк 3: "рдЬрд╛рджреБрдИ" рдХреНрд▓рд╕реНрдЯрд░ рд╡рд┐рд▓рдп

рдХреНрдпреВрдмрдлреЗрдб v2 рдФрд░ рд╢рд┐рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдлреЗрдбрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдирдП рд╕рдВрд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбрд┐рд▓реАрд╡рд░реА, рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕, рдбреЗрдореЙрдирд╕реЗрдЯреНрд╕ рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

YAML рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдлрд╝реЗрдбрд░реЗрд╢рди рдореЗрдВ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ?

рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреВрд▓рд░ рдПрдХ рдПрдбрдорд┐рд░рд▓рд┐рдЯреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдкрд░ рдХрд╛рд░реНрдпрднрд╛рд░ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

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

рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд┐рдд рдкреЙрдб рдХреЛ рддреБрд░рдВрдд рдПрдХ рдбрдореА рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХреНрд╕реЗрд╕ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╣реБрдХрдХреЙрд▓ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдбрдореА рдкреЙрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

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

рдЕрдВрдд рдореЗрдВ, рдкреЙрдб рдХреЛ рд▓рдХреНрд╖реНрдп рдХреНрд▓рд╕реНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЙрдб рд╣реИ рдЬреЛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛, рдмрд╕ рдЬрдЧрд╣ рдШреЗрд░рддрд╛ рд╣реИред

рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рд╕рдВрд╕рд╛рдзрди рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдкреЙрдб рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

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

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

рдЗрд╕рдореЗрдВ рдЙрдиреНрдирдд рдХреНрд░рдорд┐рдХ рд╡рд┐рддрд░рдг рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред

рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдВрдбрд╛рд░ рдкреГрд╖реНрда.

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

рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдФрд░ рд╕рдорд╛рдзрд╛рди

рдПрдХрд╛рдзрд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдПрдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрди рджрд┐рдП рдЧрдП рд╣реИрдВ:

рдпрд╣ рд╕рднреА рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ

рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХрд╛рдзрд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рд╣рдореЗрдВ рдмрддрд╛рдУ.

рд╣рдо рдЖрдкрдХреА рд╡рд┐рдзрд┐ рдХреЛ рд▓рд┐рдВрдХ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред

рдХреНрд░рд┐рд╕ рдиреЗрд╕реНрдмрд┐рдЯ-рд╕реНрдорд┐рде рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж (рдХреНрд░рд┐рд╕ рдиреЗрд╕реНрдмрд┐рдЯ-рд╕реНрдорд┐рде) рдФрд░ рд╡рд┐рдВрд╕реЗрдВрдЯ рдбреА рд╕реНрдореЗ (рд╡рд┐рдиреНрд╕реЗрдВрдЯ рдбреА рд╕реНрдореЗрддреЛ) (рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдЗрдВрдЬреАрдирд┐рдпрд░ рдореЗрдВ swatmobile.io) рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдФрд░ рдлреЗрдбрд░реЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ