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

рдЖрдк "рд╕рдорд╛рдкреНрддрд┐" рд╕реНрдерд┐рддрд┐ рдореЗрдВ 3 рд╣рд╛рд░реНрдЯреНрд╕ рджреЗрдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдЪреВрд▓реНрд╣реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ - рд╡реЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрдВрд╕ рдЧрдП рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдиреЛрдб рдкрд░ рдХрдВрдЯреЗрдирдб рдбреЗрдорди рдХреЛ рдмрд╣реБрдд рд╣реА рд╕рдВрд╕рд╛рдзрди-рднреВрдЦ тАЛтАЛрд╕реЗ рдорд╛рд░рд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдХрдореА рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рдХрд░ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ (рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ ), рд╕рд╛рде рд╣реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рдВрджреА рдХреА рдЧреЛрд▓реА рдирд╣реАрдВред
рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЧрд▓рдд рдпрд╛ рдЕрднрд╛рд╡ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдкрджрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдирдпрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдбреЗрдордирд╕реЗрдЯ рдЬреИрд╕реА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ, рдРрд╕реЗ рдлреНрд░реАрдЬрд╝ рдШрд╛рддрдХ рд╣реЛрдВрдЧреЗ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реАрдкреАрдпреВ рдФрд░ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЙрдЪрд┐рдд рд╕рдВрд╕рд╛рдзрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдЙрд╕ рдкрд░ рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдкреЙрдбреНрд╕ рдХреЛ рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░реЗрдВрдЧреЗ, рднрд▓реЗ рд╣реА рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╢реЗрд╖ рдиреЛрдб рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдореБрдХреНрдд рд░рд╣реЗрдВред
рдЖрдк рдЕрдХреНрд╕рд░ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдорд▓реЛрдВ рдХреЛ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЗрди "рдирд┐рд░реНрджреЛрд╖" рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдПрдХ рднрдЯрдХрдирд╛ рдЙрдиреНрд╣реЗрдВ рдЖрдХрд░ рдорд╛рд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
- рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди 4 рдЬреАрдмреА рдореЗрдореЛрд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрд░реВ рдореЗрдВ рдХреЗрд╡рд▓ 1 рдЬреАрдмреА рд▓рдЧрддрд╛ рд╣реИред
- рд╕рдВрд╕рд╛рдзрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рднрдЯрдХрдирд╛, рдЙрд╕реА рдиреЛрдб рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
- рднрдЯрдХрдиреЗ рдХреЗ рддрд╣рдд рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдФрд░ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рдорд╛рдорд▓рд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рд╣реИред рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ "рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ" рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдкреИрд╕реЗ рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИред
рдирд┐рд░реНрдгрдп рд╕рд┐рджреНрдзрд╛рдВрдд
рдЖрддрдВрдХ! рд╕рдЪ?
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрд╕рд╛рдзрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдлрд▓реА рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ LimitRange рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред LimitRange рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд╛рдорд╕реНрдерд╛рди рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ рд╣реИред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдЪрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рднреА, рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕реАрдорд┐рдд рд╣реЛрдВрдЧреЗред "рдирд┐рд░реНрджреЛрд╖", рдареАрдХ рд╕реЗ рдЯреНрдпреВрди рдХрд┐рдП рдЧрдП рдЪреВрд▓реНрд╣реЗ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реЛрдВрдЧреЗред рдпрджрд┐ рдХреЛрдИ рд╕рдВрд╕рд╛рдзрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рд▓рдЪреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рдВрднрд╡рддрдГ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ! рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдм рдХрд┐рд╕реА рдХреЛ рднреА рд╕рд╛рде рдирд╣реАрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рдмрд▓ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдЕрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рддреЛ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдерд╛, рд╣рдорд╛рд░реЗ рдирд╛рдо рд╕реНрдерд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП, LimitRange рдРрд╕реЗ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рдирд╛рдорд╕реНрдерд╛рди рд╕реНрддрд░ рдкрд░, рдмрд▓реНрдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрддрд░ рдкрд░ рднреА рдХреБрдЫ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрднреА рддрдХ рдРрд╕рд╛ рдХреЛрдИ рд╕рдорд╛рд░реЛрд╣ рдирд╣реАрдВ рд╣реИред
рдЗрд╕реАрд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЖрдк рд╕реЗ рдорд┐рд▓рд╡рд╛рддреЗ рд╣реИрдВ - рд▓рд┐рдорд┐рдЯ рдСрдкрд░реЗрдЯрд░ред рдпрд╣ рдСрдкрд░реЗрдЯрд░ SDK рдврд╛рдВрдЪреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬреЛ ClusterLimit рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА "рдирд┐рд░реНрджреЛрд╖" рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдиреНрдпреВрдирддрдо рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдирд╛рдо рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
ClusterLimit рдЙрджрд╛рд╣рд░рдгapiVersion: limit.myafq.com/v1alpha1 kind: ClusterLimit metadata: name: default-limit spec: namespaceSelector: matchLabels: limit: "limited" limitRange: limits: - type: Container max: cpu: "800m" memory: "1Gi" min: cpu: "100m" memory: "99Mi" default: cpu: "700m" memory: "900Mi" defaultRequest: cpu: "110m" memory: "111Mi" - type: Pod max: cpu: "2" memory: "2Gi"
рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде, рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рд▓реЗрдмрд▓ limit: limited
рд╕рд╛рде рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдПрдХ LimitRange рдмрдирд╛рдПрдЧрд╛ limit: limited
ред рдпрд╣ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдореВрд╣ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдареЛрд░ рдкреНрд░рддрд┐рдмрдВрдз рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдпрджрд┐ namespaceSelector рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдСрдкрд░реЗрдЯрд░ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдкрд░ LimitRange рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ LimitRange рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдиреЛрдЯреЗрд╢рди "limit.myafq.com/unlimited": true
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "limit.myafq.com/unlimited": true
рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЗрд╕ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ LimitRange рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрддрд╛рдПрдЧрд╛ред
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ ClusterLimit рдмрдирд╛рдПрдВред рдЪрдпрдирдХрд░реНрддрд╛ - рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рд╣рд▓реНрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, namespaceSelector рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдзрд┐рдХ рдХрдареЛрд░, рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдПрдВред рддрджрдиреБрд╕рд╛рд░ рдЗрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓реЗрдмрд▓ рд▓рдЧрд╛рдПрдВред
- рдмрд╣реБрдд рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╡рд╛рд▓реЗ рдПрдХ рдирд╛рдорд╕реНрдерд╛рди рдкрд░, рдПрдиреЛрдЯреЗрд╢рди рдХреЛ "рд╕реАрдорд┐рдд рдХрд░реЗрдВ редyafq.com/unlimited": рд╕рд╣реА рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд▓рд╕реНрдЯрд▓рд┐рдорд┐рдЯ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдХрд░реЗрдВред
рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдХрдИ LimitRange рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд:
рдЬрдм рдПрдХ рдЙрдк-рдирд╛рдо рдХрдИ LimitRange рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЪреВрдХ рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди LimitRange рдХреЗ рд╕рдЦреНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдзрд┐рдХрддрдо рдФрд░ рдиреНрдпреВрдирддрдо рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПрдЧреАред
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг
рдСрдкрд░реЗрдЯрд░ рд╕рднреА рдиреЗрдорд╕реНрдкреЗрд╕, рдХреНрд▓рд╕реНрдЯрд░рд╕реНрдЯрд░рд▓рд┐рдореНрд╕, рдЪрд╛рдЗрд▓реНрдб рд▓рд┐рдорд┐рдЯрдЯреНрд░рдВрдЧреНрд╕ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдЧрд╛ рдФрд░ рдореЙрдирд┐рдЯрд░ рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рдордиреНрд╡рдп рдХреА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдЧрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
kubectl рд░рди / рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ тЭп() kubectl run --generator=run-pod/v1 --image=bash bash pod/bash created тЭп() kubectl get pod bash -o yaml apiVersion: v1 kind: Pod metadata: labels: run: bash name: bash namespace: default spec: containers: - image: bash name: bash resources: {}
рдиреЛрдЯ: рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, "рд╕рдВрд╕рд╛рдзрди" рдлрд╝реАрд▓реНрдб рдЦрд╛рд▓реА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЙрдк рдХрд╣реАрдВ рднреА рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрджрд╛рд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдпреЗрдВрдЧреЗ:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ-limit.yaml apiVersion: limit.myafq.com/v1alpha1 kind: ClusterLimit metadata: name: default-limit spec: limitRange: limits: - type: Container max: cpu: "4" memory: "5Gi" default: cpu: "700m" memory: "900Mi" defaultRequest: cpu: "500m" memory: "512Mi"
рдФрд░ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдХрдбрд╝реЗ:
рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ-limit.yaml apiVersion: limit.myafq.com/v1alpha1 kind: ClusterLimit metadata: name: restrictive-limit spec: namespaceSelector: matchLabels: limit: "restrictive" limitRange: limits: - type: Container max: cpu: "800m" memory: "1Gi" default: cpu: "100m" memory: "128Mi" defaultRequest: cpu: "50m" memory: "64Mi" - type: Pod max: cpu: "2" memory: "2Gi"
рдлрд┐рд░ рдЙрдирдореЗрдВ рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рдкреЙрдб рдмрдирд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╕реНрдерд╛рди:
apiVersion: v1 kind: Namespace metadata: name: regular
рдФрд░ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рдирд╛рдо рд╕реНрдерд╛рди, рдХрдерд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рд╣рд▓реНрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП:
apiVersion: v1 kind: Namespace metadata: labels: limit: "restrictive" name: lightweight
рдпрджрд┐ рдЖрдк рдирд╛рдо рд╕реНрдерд╛рди рдмрдирд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓реЙрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдХреБрдЫ рдРрд╕рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдСрдкрд░реЗрдЯрд░ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ {...,"msg":"Reconciling ClusterLimit","Triggered by":"/regular"} {...,"msg":"Creating new namespace LimitRange.","Namespace":"regular","LimitRange":"default-limit"} {...,"msg":"Updating namespace LimitRange.","Namespace":"regular","Name":"default-limit"} {...,"msg":"Reconciling ClusterLimit","Triggered by":"/lightweight"} {...,"msg":"Creating new namespace LimitRange.","Namespace":"lightweight","LimitRange":"default-limit"} {...,"msg":"Updating namespace LimitRange.","Namespace":"lightweight","Name":"default-limit"} {...,"msg":"Creating new namespace LimitRange.","Namespace":"lightweight","LimitRange":"restrictive-limit"} {...,"msg":"Updating namespace LimitRange.","Namespace":"lightweight","Name":"restrictive-limit"}
рд▓реЙрдЧ рдХреЗ рд▓рд╛рдкрддрд╛ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ 3 рдФрд░ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рдордп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдиреЗ рдирдИ LimitRange рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдПрдХ рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рджреЛ рд╕реАрдорд╛-рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдФрд░ рдЕрдзрд┐рдХ рд╕рдЦреНрдд рдорд┐рд▓реЗред
рдЕрдм рдЗрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝реА рдЪреВрд▓реНрд╣рд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
kubectl рд░рди / рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ тЭп() kubectl run --generator=run-pod/v1 --image=bash bash -n regular pod/bash created тЭп() kubectl get pod bash -o yaml -n regular apiVersion: v1 kind: Pod metadata: annotations: kubernetes.io/limit-ranger: 'LimitRanger plugin set: cpu, memory request for container bash; cpu, memory limit for container bash' labels: run: bash name: bash namespace: regular spec: containers: - image: bash name: bash resources: limits: cpu: 700m memory: 900Mi requests: cpu: 500m memory: 512Mi
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдордиреЗ рдкреЙрдб рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рд╕рдВрд╕рд╛рдзрди рдХреНрд╖реЗрддреНрд░ рдЕрдм рднрд░ рдЧрдпрд╛ рд╣реИред рдЖрдк LimitRanger рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдПрдХ рд╣рд▓реНрдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдмрдирд╛рдПрдБ:
kubectl рд░рди / рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ тЭп() kubectl run --generator=run-pod/v1 --image=bash bash -n lightweight pod/bash created тЭп() kubectl get pods -n lightweight bash -o yaml apiVersion: v1 kind: Pod metadata: annotations: kubernetes.io/limit-ranger: 'LimitRanger plugin set: cpu, memory request for container bash; cpu, memory limit for container bash' labels: run: bash name: bash namespace: lightweight spec: containers: - image: bash name: bash resources: limits: cpu: 700m memory: 900Mi requests: cpu: 500m memory: 512Mi
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ LimitRange рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреЙрдб рдмрдирд╛рддреЗ рд╕рдордп рдХрдо рд╕рдЦреНрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рд╕реАрдорд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЕрдзрд┐рдХрддрдо рдФрд░ рдиреНрдпреВрдирддрдо рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╕реАрдорд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рд╕реВрдЪреА рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рдмрдирд╛рдПрдВрдЧреЗ:
рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ-limit.yaml apiVersion: limit.myafq.com/v1alpha1 kind: ClusterLimit metadata: name: restrictive-limit spec: namespaceSelector: matchLabels: limit: "restrictive" limitRange: limits: - type: Container max: cpu: "200m" memory: "250Mi" default: cpu: "100m" memory: "128Mi" defaultRequest: cpu: "50m" memory: "64Mi" - type: Pod max: cpu: "2" memory: "2Gi"
рдЕрдиреБрднрд╛рдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
- type: Container max: cpu: "200m" memory: "250Mi"
рдЕрдм рд╣рдордиреЗ 200 рдореА рд╕реАрдкреАрдпреВ рдФрд░ 250 рдореА рдореЗрдореЛрд░реА рдХреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдХреЗ рд▓рд┐рдП рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЕрдм рдлрд┐рд░ рд╕реЗ, рдХреЗ рддрд╣рдд рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢:
тЭп() kubectl run --generator=run-pod/v1 --image=bash bash -n lightweight Error from server (Forbidden): pods "bash" is forbidden: [maximum cpu usage per Container is 200m, but limit is 700m., maximum memory usage per Container is 250Mi, but limit is 900Mi.]
рд╣рдорд╛рд░реЗ рдЙрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рд┐рдордЯреНрд░реЗрдиреНрдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмрдбрд╝реЗ рдорд╛рди рд╣реИрдВ рдФрд░ рдпрд╣ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдордд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реБрдЖред
рдпрд╣ рд▓рд┐рдорд┐рдЯ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ред рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЖрдЬрд╝рдорд╛рдПрдБ рдФрд░ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдХреБрдмреЗрд░рдиреЗрдЯ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░рд╕реНрдЯрд░рд▓рд┐рдорд┐рдЯ рдХреЗ рд╕рд╛рде рдЦреЗрд▓реЗрдВред
рдЧрд┐рдЯрд╣рдм рд▓рд┐рдорд┐рдЯ рдСрдкрд░реЗрдЯрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ, рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреБрд▓-рдХреНрд╡реИрд╕реНрдЯ рдФрд░ рд╕реБрд╡рд┐рдзрд╛-quests рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рдирд┐рд╖реНрдХрд░реНрд╖
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдЕрдкрдиреЗ рдЪреВрд▓реНрд╣рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВред рдФрд░ рдЬрдм рд╕рдВрднрд╡ рди рд╣реЛ рддреЛ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдмреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП LimitRange рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓рд┐рдорд┐рдЯ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ LimitRange рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВред
рдЗрди рдпреБрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, рдФрд░ рдЖрдкрдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╛рд░рд╛ рдЪреВрд▓реНрд╣реЛрдВ рдХреЗ рдкреБрдирд░реНрдЬреАрд╡рди рдЕрд░рд╛рдЬрдХрддрд╛ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдВрдЧреЗред