Yandex.Cloud рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ CSI рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡

Yandex.Cloud рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ CSI рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡

рд╣рдореЗрдВ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдлрд╝реНрд▓реИрдВрдЯ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓ рдЬрд╛рд░реА рдХрд░рдХреЗ рдЕрдкрдиреЗ рдпреЛрдЧрджрд╛рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рд╕реАрдПрд╕рдЖрдИ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг (рдХрдВрдЯреЗрдирд░ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЯрд░рдлрд╝реЗрд╕) Yandex.Cloud рдХреЗ рд▓рд┐рдПред

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

рдкрд░рд┐рдЪрдп

рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ?

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

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

NB: рдпрд╣ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рд╣рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рджрдо рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реИрд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпреИрдВрдбреЗрдХреНрд╕ рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдпрд╛рдВрдХрди рдирд╣реАрдВ рджреЗрдВрдЧреЗред

рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ?

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рднрдВрдбрд╛рд░рдг рдХреЗ рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ: рд╕реАрдПрд╕рдЖрдИ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? ╨╕ рд╕рдореБрджрд╛рдп рдХреИрд╕реЗ рдЖрдпрд╛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП.

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

рд╣рдордиреЗ рдЗрд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЖрдзрд╛рд░ рдорд╛рдирд╛ DigitalOcean рдХреНрд▓рд╛рдЙрдб рдХреЗ рд▓рд┐рдП CSI рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдЬреАрд╕реАрдкреА рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░, рдЪреВрдВрдХрд┐ рдЗрди рдХреНрд▓рд╛рдЙрдбреНрд╕ (Google рдФрд░ Yandex) рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдореЗрдВ рдХрдИ рд╕рдорд╛рдирддрд╛рдПрдВ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдкреАрдЖрдИ рдФрд░ рдЬреАрд╕реАрдкреА, рдФрд░ Yandex рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ Operation рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ рдбрд┐рд╕реНрдХ рдмрдирд╛рдирд╛)ред Yandex.Cloud API рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛рдВрдбреЗрдХреНрд╕.рдХреНрд▓рд╛рдЙрдб рдЧреЛ рдПрд╕рдбреАрдХреЗ.

рдХрд┐рдпреЗ рдЧрдпреЗ рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЧрд┐рдЯрд╣рдм рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, Yandex.Cloud рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ (рд▓реЗрдХрд┐рди рд░реЗрдбреА-рдореЗрдб рдкреНрд░рдмрдВрдзрд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдирд╣реАрдВ) рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ Kubernetes рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ CSI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ (рдСрд░реНрдбрд░) рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреНрд░рд╛рдЗрд╡рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

  • рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреА рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдбрд┐рд╕реНрдХ рдХреЛ рдСрд░реНрдбрд░ рдХрд░рдирд╛;
  • рдкрд╣рд▓реЗ рд╕реЗ рдСрд░реНрдбрд░ рдХреА рдЧрдИ рдбрд┐рд╕реНрдХ рдХреЛ рд╣рдЯрд╛рдирд╛;
  • рдбрд┐рд╕реНрдХ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд▓рд╛рдЗрди рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ (Yandex.Cloud рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдорд╛рдЙрдВрдЯ рдХреА рдЧрдИ рдбрд┐рд╕реНрдХ рдХреЛ рдмрдврд╝рд╛рдирд╛)ред рдЖрдХрд╛рд░ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рджрд░реНрдж рд░рд╣рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВред

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

рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП

Yandex.Cloud API рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдбрд┐рд╕реНрдХ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рдПрдХ рдРрд╕реА рд╕реАрдорд╛ рд╣реИ рдЬреЛ PV (рдкрд░реНрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рд╡реЙрд▓реНрдпреВрдо) рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдСрдкрд░реЗрд╢рди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдб рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдЗрд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ.

рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реАрдПрд╕рдЖрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдПрдБ, рдпрджрд┐ рд╕реАрдПрд╕рдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдбрд┐рд╕реНрдХ рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ "рдСрдлрд╝рд▓рд╛рдЗрди" рд╣реА рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ (VolumeExpansion.OFFLINE), рддреЛ рдбрд┐рд╕реНрдХ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

рдпрджрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рд╣реИ VolumeExpansion.OFFLINE рд╡рд┐рд╕реНрддрд╛рд░ рдХреНрд╖рдорддрд╛ рдФрд░ рдорд╛рддреНрд░рд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдиреЛрдб рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ControllerExpandVolume рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рдмрд╛рдж рд╣реА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ PUBLISH_UNPUBLISH_VOLUME рдХреНрд╖рдорддрд╛ рдФрд░ ControllerUnpublishVolume рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ.

рд╡рд░рдирд╛

  • рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдирд╣реАрдВ рд╣реИ PUBLISH_UNPUBLISH_VOLUME рдХреНрд╖рдорддрд╛, рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдиреЛрдб рд╣реИ STAGE_UNSTAGE_VOLUME рдХреНрд╖рдорддрд╛, рдФрд░ NodeUnstageVolume рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд░рдирд╛

  • рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдирд╣реАрдВ рд╣реИ PUBLISH_UNPUBLISH_VOLUME рдХреНрд╖рдорддрд╛, рди рд╣реА рдиреЛрдб STAGE_UNSTAGE_VOLUME рдХреНрд╖рдорддрд╛, рдФрд░ NodeUnpublishVolume рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ.

рдЗрд╕рдХрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдбрд┐рд╕реНрдХ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

  • рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ csi-attacher, рдЬреЛ рдорд╛рдЙрдВрдЯ рдХреЗ рдмреАрдЪ рдЖрд╡рд╢реНрдпрдХ рдЕрдВрддрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдСрдлрд╝рд▓рд╛рдЗрди рдЖрдХрд╛рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЛ рд▓реЗрдХрд░ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХреА рдЧрдпреА рдпрд╣рд╛рдВ.
  • рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ? рд╕реАрдПрд╕рдЖрдИ рдкреНрд▓рдЧрдЗрди рд╕реНрд╡рдпрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдЬреАрдЖрд░рдкреАрд╕реА рдХреЙрд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рдирд╡реАрдирддрдо рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ (рд╕реАрдПрд╕рдЖрдИ рдкреНрд▓рдЧрдЗрди), рдбрд┐рд╕реНрдХ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдСрдкрд░реЗрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

  1. рд╣рдореЗрдВ рдПрдХ рдЬреАрдЖрд░рдкреАрд╕реА рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ ControllerExpandVolume;
  2. рд╣рдо рдПрдкреАрдЖрдИ рдореЗрдВ рдбрд┐рд╕реНрдХ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдбрд┐рд╕реНрдХ рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ;
  3. рд╣рдо рдбрд┐рд╕реНрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдбрд┐рд╕реНрдХ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╡реГрджреНрдзрд┐ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдиреАрдЪреЗ, рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╣реЗрдВрдЧреЗ volumeResizeRequired;
  4. рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдЧрд╛ред рддрд╛рдХрд┐ рдбрд┐рд╕реНрдХ рдХреЛ рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рди рдорд┐рд▓реЗ (ControllerPublishVolume) рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд╡реГрджреНрдзрд┐ рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рджреА рдЧрдИ рдбрд┐рд╕реНрдХ рдЕрднреА рднреА рдЕрдВрджрд░ рд╣реИ volumeResizeRequired рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рдПрдБ;
  5. CSI рдбреНрд░рд╛рдЗрд╡рд░ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреБрди: рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдСрдкрд░реЗрд╢рди рд╕рдлрд▓ рд░рд╣рд╛, рддреЛ рдбрд┐рд╕реНрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ volumeResizeRequired;
  6. рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд╕реНрдХ рдЖрдИрдбреА рдЧрд╛рдпрдм рд╣реИ volumeResizeRequired, ControllerPublishVolume рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдХ рдорд╛рдЙрдВрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдкреЙрдб рдкреНрд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

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

func DefaultControllerRateLimiter() RateLimiter {
  return NewMaxOfRateLimiter(
  NewItemExponentialFailureRateLimiter(5*time.Millisecond, 1000*time.Second),
  // 10 qps, 100 bucket size.  This is only for retry speed and its only the overall factor (not per item)
  &BucketRateLimiter{Limiter: rate.NewLimiter(rate.Limit(10), 100)},
  )
}

рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдордп-рд╕рдордп рдкрд░ рдбрд┐рд╕реНрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдСрдкрд░реЗрд╢рди рдХреЛ 15+ рдорд┐рдирдЯ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрдмрдВрдзрд┐рдд рдкреЙрдб рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

workqueue.NewItemExponentialFailureRateLimiter(5*time.Millisecond, 5*time.Second)

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

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?

рдбреНрд░рд╛рдЗрд╡рд░ Kubernetes рд╕рдВрд╕реНрдХрд░рдг 1.15 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  • рдЭрдВрдбрд╛ --allow-privileged рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ true рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП;
  • рд╢рд╛рдорд┐рд▓ --feature-gates=VolumeSnapshotDataSource=true,KubeletPluginsWatcher=true,CSINodeInfo=true,CSIDriverRegistry=true рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП;
  • рдорд╛рдЙрдВрдЯ рдкреНрд░рд╕рд╛рд░ (рдорд╛рдЙрдВрдЯ рдкреНрд░рд╕рд╛рд░) рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рд╛рдЭрд╛ рдорд╛рдЙрдВрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдореЙрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрджрдо README рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ. рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдореЗрдВ рдореЗрдирд┐рдлреЗрд╕реНрдЯреЛрдВ рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  • рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (folder-id) рдпрд╛рдВрдбреЗрдХреНрд╕.рдХреНрд▓рд╛рдЙрдб (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ);
  • Yandex.Cloud API рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CSI рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдХрдЯ рдореЗрдВ, рд░рд╣рд╕реНрдп рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдзрд┐рдХреГрдд рдХреБрдВрдЬреА рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рд╕реЗ. рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд, рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рд╕рдм рдорд┐рд▓рд╛рдХрд░ - рдХреЛрд╢рд┐рд╢, рдФрд░ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА рдФрд░ рдирдпреЗ рдореБрджреНрджреЗрдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ!

рдЖрдЧреЗ рдХреА рд╕рд╣рд╛рдпрддрд╛

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

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

рдкреБрдирд╢реНрдЪ

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

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

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