рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕: рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ?

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



рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрдж рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдмреЗрд╢рдХ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдФрд░ рд░реИрдоред K8s рдореЗрдирд┐рдлреЗрд╕реНрдЯреЛрдВ рдореЗрдВ, рдЗрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • рд╕реАрдкреАрдпреВ - рдХреЛрд░ рдореЗрдВ
  • рд░реИрдо - рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ

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


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


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

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


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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:


  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рд╕реНрддрд░ рдкрд░:


    containers: - name: app-nginx image: nginx resources: requests: memory: 1Gi limits: cpu: 200m 

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


  • рдкреВрд░реНрдгрд╛рдВрдХ рд╕реНрддрд░ ns рдкрд░:


     apiVersion: v1 kind: ResourceQuota metadata: name: nxs-test spec: hard: requests.cpu: 300m requests.memory: 1Gi limits.cpu: 700m limits.memory: 2Gi 

    рдпрд╛рдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ ns рдореЗрдВ рд╕рднреА рдЕрдиреБрд░реЛрдз рдХрдВрдЯреЗрдирд░ рдХрд╛ рдпреЛрдЧ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП 300 рдореАрдЯрд░ рдФрд░ рдУрдкреА рдХреЗ рд▓рд┐рдП 1 рдЬреА рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реАрдорд╛ рдХрд╛ рдпреЛрдЧ 700 рдореАрдЯрд░ рдФрд░ рдУрдкреА рдХреЗ рд▓рд┐рдП 2 рдЬреА рд╣реИред


  • рдПрдирдПрд╕ рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐рдмрдВрдз:


     apiVersion: v1 kind: LimitRange metadata: name: nxs-limit-per-container spec: limits: - type: Container defaultRequest: cpu: 100m memory: 1Gi default: cpu: 1 memory: 2Gi min: cpu: 50m memory: 500Mi max: cpu: 2 memory: 4Gi 

    рдпрд╛рдиреА рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП 100 рдореАрдЯрд░ рдФрд░ рдУрдкреА рдХреЗ рд▓рд┐рдП 1 рдЬреА, рд╕реАрдорд╛ - 1 рд╕реАрдкреАрдпреВ рдФрд░ 2 рдЬреА рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реА рд╕рдордп, рд╕реАрдкреАрдпреВ (50 рдореАрдЯрд░ <x <2) рдФрд░ рд░реИрдо (500 рдПрдо <x <4 рдЬреА) рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз / рд╕реАрдорд╛ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


  • рдПрдирдПрд╕ рдЪреВрд▓реНрд╣рд╛ рд╕реНрддрд░ рдкрд░ рд╕реАрдорд╛рдПрдВ:


     apiVersion: v1 kind: LimitRange metadata: name: nxs-limit-pod spec: limits: - type: Pod max: cpu: 4 memory: 1Gi 

    рдпрд╛рдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдирдПрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪреВрд▓реНрд╣рд╛ рдХреЗ рд▓рд┐рдП, 4 рд╡реАрд╕реАрдкреАрдпреВ рдФрд░ 1 рдЬреА рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред



рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдлрд╛рдпрджреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред


рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХрд╛ рддрдВрддреНрд░


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, k8 рдШрдЯрдХ рдЬреИрд╕реЗ рдХрд┐ рдЕрдиреБрд╕реВрдЪрдХ , рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдиреЛрдбреНрд╕ рдкрд░ рдЪреВрд▓реНрд╣рд╛ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рдиреЛрдб рдЪреБрдирдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреЛ рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ:


  1. рдЫрд╛рдирдиреЗ
  2. рд╢реНрд░реЗрдгреА

рдпрд╛рдиреА рд╡рд░реНрдгрд┐рдд рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдиреЛрдбреНрд╕ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдПрдХ рдЪреВрд▓реНрд╣рд╛ рд╡рд┐рдзреЗрдпрдХреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдиреЛрдб рдореЗрдВ рдЪреВрд▓реНрд╣рд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ - PodFitsResources), рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рд╕рд╣рд┐рдд) рдиреЛрдб рдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдореБрдХреНрдд рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ - рдЙрддрдиреЗ рдЕрдзрд┐рдХ рдЕрдВрдХ - LeastResourceAllocation / LeastRequestedPriority / BalancedResourceAllocation) рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдиреЛрдб рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдХрдИ рдиреЛрдб рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред


рдЙрд╕реА рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд╕реВрдЪрдХ, рдиреЛрдб рдХреЗ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп, рдЖрджрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рддред рдЗрд╕ рдиреЛрдб рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рдЕрдиреБрд░реЛрдзрд┐рдд / рд╕реАрдорд╛ рд╕рдВрд╕рд╛рдзрди рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ, рд▓реЗрдХрд┐рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЦрдкрдд рд╕реЗ рдирд╣реАрдВред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА kubectl describe node $NODE рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 # kubectl describe nodes nxs-k8s-s1 .. Non-terminated Pods: (9 in total) Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE --------- ---- ------------ ---------- --------------- ------------- --- ingress-nginx nginx-ingress-controller-754b85bf44-qkt2t 0 (0%) 0 (0%) 0 (0%) 0 (0%) 233d kube-system kube-flannel-26bl4 150m (0%) 300m (1%) 64M (0%) 500M (1%) 233d kube-system kube-proxy-exporter-cb629 0 (0%) 0 (0%) 0 (0%) 0 (0%) 233d kube-system kube-proxy-x9fsc 0 (0%) 0 (0%) 0 (0%) 0 (0%) 233d kube-system nginx-proxy-k8s-worker-s1 25m (0%) 300m (1%) 32M (0%) 512M (1%) 233d nxs-monitoring alertmanager-main-1 100m (0%) 100m (0%) 425Mi (1%) 25Mi (0%) 233d nxs-logging filebeat-lmsmp 100m (0%) 0 (0%) 100Mi (0%) 200Mi (0%) 233d nxs-monitoring node-exporter-v4gdq 112m (0%) 122m (0%) 200Mi (0%) 220Mi (0%) 233d Allocated resources: (Total limits may be over 100 percent, ie, overcommitted.) Resource Requests Limits -------- -------- ------ cpu 487m (3%) 822m (5%) memory 15856217600 (2%) 749976320 (3%) ephemeral-storage 0 (0%) 0 (0%) 

рдпрд╣рд╛рдВ рд╣рдо рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдбреНрд╕ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рдХреНрд░реЛрдирдЬреЛрдм-рдХреНрд░реЛрди-рдИрд╡реЗрдВрдЯреНрд╕-1573793820-xt6q9 рдкреЙрдб рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╢реЗрдбреНрдпреВрд▓рд░ рд▓реЙрдЧ рджрд┐рдЦрддрд╛ рд╣реИ (рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╢реЗрдбреНрдпреВрд▓рд░ рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ рдЬрдм рд╕реНрдЯрд╛рд░реНрдЯ рдХрдорд╛рдВрдб рдХреЗ рддрд░реНрдХ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ 10 рд╡реЗрдВ рд╕реНрддрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реБрдП --v = 10):


рдЪреМрдбрд╝реА рдЧрд▓
 I1115 07:57:21.637791 1 scheduling_queue.go:908] About to try and schedule pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 I1115 07:57:21.637804 1 scheduler.go:453] Attempting to schedule pod: nxs-stage/cronjob-cron-events-1573793820-xt6q9 I1115 07:57:21.638285 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s5 is allowed, Node is running only 16 out of 110 Pods. I1115 07:57:21.638300 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s6 is allowed, Node is running only 20 out of 110 Pods. I1115 07:57:21.638322 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s3 is allowed, Node is running only 20 out of 110 Pods. I1115 07:57:21.638322 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s4 is allowed, Node is running only 17 out of 110 Pods. I1115 07:57:21.638334 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, Node is running only 16 out of 110 Pods. I1115 07:57:21.638365 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s12 is allowed, Node is running only 9 out of 110 Pods. I1115 07:57:21.638334 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s11 is allowed, Node is running only 11 out of 110 Pods. I1115 07:57:21.638385 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s1 is allowed, Node is running only 19 out of 110 Pods. I1115 07:57:21.638402 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s2 is allowed, Node is running only 21 out of 110 Pods. I1115 07:57:21.638383 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, Node is running only 16 out of 110 Pods. I1115 07:57:21.638335 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, Node is running only 18 out of 110 Pods. I1115 07:57:21.638408 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s13 is allowed, Node is running only 8 out of 110 Pods. I1115 07:57:21.638478 1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, existing pods anti-affinity terms satisfied. I1115 07:57:21.638505 1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, existing pods anti-affinity terms satisfied. I1115 07:57:21.638577 1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, existing pods anti-affinity terms satisfied. I1115 07:57:21.638583 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s7 is allowed, Node is running only 25 out of 110 Pods. I1115 07:57:21.638932 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 9 I1115 07:57:21.638946 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 8 I1115 07:57:21.638961 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: BalancedResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 9 I1115 07:57:21.638971 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7 I1115 07:57:21.638975 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: LeastResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 8 I1115 07:57:21.638990 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7 I1115 07:57:21.639022 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: TaintTolerationPriority, Score: (10) I1115 07:57:21.639030 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: TaintTolerationPriority, Score: (10) I1115 07:57:21.639034 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: TaintTolerationPriority, Score: (10) I1115 07:57:21.639041 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: NodeAffinityPriority, Score: (0) I1115 07:57:21.639053 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: NodeAffinityPriority, Score: (0) I1115 07:57:21.639059 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: NodeAffinityPriority, Score: (0) I1115 07:57:21.639061 1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: InterPodAffinityPriority, Score: (0) I1115 07:57:21.639063 1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10) I1115 07:57:21.639073 1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: InterPodAffinityPriority, Score: (0) I1115 07:57:21.639077 1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10) I1115 07:57:21.639085 1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: InterPodAffinityPriority, Score: (0) I1115 07:57:21.639088 1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10) I1115 07:57:21.639103 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10) I1115 07:57:21.639109 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10) I1115 07:57:21.639114 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10) I1115 07:57:21.639127 1 generic_scheduler.go:781] Host nxs-k8s-s10 => Score 100037 I1115 07:57:21.639150 1 generic_scheduler.go:781] Host nxs-k8s-s8 => Score 100034 I1115 07:57:21.639154 1 generic_scheduler.go:781] Host nxs-k8s-s9 => Score 100037 I1115 07:57:21.639267 1 scheduler_binder.go:269] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10" I1115 07:57:21.639286 1 scheduler_binder.go:279] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10": all PVCs bound and nothing to do I1115 07:57:21.639333 1 factory.go:733] Attempting to bind cronjob-cron-events-1573793820-xt6q9 to nxs-k8s-s10 

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдЕрдиреБрд╕реВрдЪрдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ 3 рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ (nxs-k8s-s8, nxs-k8s-s9, nxs-k8s-s10)ред рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдиреЛрдб рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ (BalancedResourceAllocation, LeastResourceAllocation рд╕рд╣рд┐рдд) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдВрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдиреЛрдб рдХреЗ рддрд╣рдд рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ (рдпрд╣рд╛рдВ, рджреЛ рдиреЛрдбреНрд╕ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 100037 рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - nxs-k8s-s10)ред


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


рдЪреВрд▓реНрд╣рд╛ рдмреЗрджрдЦрд▓ рдХрд░рдирд╛


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдлрд▓реА рдХреЛ 3 рдХреНрдпреВрдУрдПрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ:


  1. рдХреНрд░рдордмрджреНрдз - рдЬрдм рд╕реНрдореГрддрд┐ рдФрд░ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдФрд░ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпреЗ рдореВрд▓реНрдп рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ
  2. рдлрдЯрдиреЗ рдпреЛрдЧреНрдп - рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдФрд░ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреБрд░реЛрдз <рд╕реАрдорд╛
  3. рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рдпрд╛рд╕ - рдЬрдм рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рдХреЛрдИ рдХрдВрдЯреЗрдирд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ

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


  • рдЧрд╛рд░рдВрдЯреА : -998
  • BestEffort : 1000
  • рдЕрд╕реНрдерд┐рд░ : рдиреНрдпреВрдирддрдо (рдЕрдзрд┐рдХрддрдо (2, 1000 - (1000 * memoryRequestBytes) / рдорд╢реАрдирдореЗрд╕рд░реАрд╕рд┐рдЯреА рдмрд╛рдЗрдЯреНрд╕), 999)

рдпрд╛рдиреА рдЙрд╕реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде, рдХреНрдпреВрдмрд▓реЗрдЯ рдкрд╣рд▓реЗ рдиреЛрдб рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рдпрд╛рд╕ рдХреНрдпреВрдУрдПрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдлрд▓реА рдХреЛ рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд рдХрд░реЗрдЧрд╛ред


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


рдЖрд╡реЗрджрди рдЪреВрд▓реНрд╣рд╛ рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рддрдВрддреНрд░ (HPA)


рдЬрдм рдХрд╛рд░реНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рд╕рд┐рд╕реНрдЯрдо - рд╕реАрдкреАрдпреВ / рд░реИрдо рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - рдЖрд░рдкреАрдПрд╕) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд▓реА рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реГрджреНрдзрд┐ рдФрд░ рдХрдореА рдХрд░рддрд╛ рд╣реИ, рддреЛ k8s рдЬреИрд╕реЗ рдХрд┐ рдПрдЪрдкреАрдП (рдХреНрд╖реИрддрд┐рдЬ рдкреЙрдб рдСрдЯреЛрдХреИрд╕рд▓рд░) рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрд┐рд╕рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


  1. рдордирд╛рдпрд╛ рд╕рдВрд╕рд╛рдзрди (currentMetricValue) рдХреА рд╡рд░реНрддрдорд╛рди рд░реАрдбрд┐рдВрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ
  2. рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди (рд╡рд╛рдВрдЫрд┐рддMetricValue) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
  3. рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ (currentReplicas)
  4. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрддреНрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред
    рд╡рд╛рдВрдЫрд┐рддReplicas = [currentReplicas * (currentMetricValue / рд╡рд╛рдВрдЫрд┐рддMetricVueue]]

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рддрдм рдирд╣реАрдВ рд╣реЛрдЧреА рдЬрдм рдЧреБрдгрд╛рдВрдХ (currentMetricValue / рд╡рд╛рдВрдЫрд┐рддMetricValue) 1 рдХреЗ рдХрд░реАрдм рд╣реИ (рд╣рдо рд╕реНрд╡рдпрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рддреНрд░реБрдЯрд┐ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ 0.1 рд╣реИ)ред


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


  • рдЖрд╡реЗрджрди рдкреНрд░рдХрдЯ


     kind: Deployment apiVersion: apps/v1beta2 metadata: name: app-test spec: selector: matchLabels: app: app-test replicas: 2 template: metadata: labels: app: app-test spec: containers: - name: nginx image: registry.nixys.ru/generic-images/nginx imagePullPolicy: Always resources: requests: cpu: 60m ports: - name: http containerPort: 80 - name: nginx-exporter image: nginx/nginx-prometheus-exporter resources: requests: cpu: 30m ports: - name: nginx-exporter containerPort: 9113 args: - -nginx.scrape-uri - http://127.0.0.1:80/nginx-status 

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


  • рдПрдЪрдкреАрдП рдкреНрд░рдХрдЯ


     apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscaler metadata: name: app-test-hpa spec: maxReplicas: 10 minReplicas: 2 scaleTargetRef: apiVersion: extensions/v1beta1 kind: Deployment name: app-test metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 30 

    рдпрд╛рдиреА рд╣рдордиреЗ рдПрдХ рдРрд╕рд╛ hpa рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдРрдк-рдкрд░реАрдХреНрд╖рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛ рдФрд░ cpu рд╕рдВрдХреЗрддрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╣рд╛рд░реНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ (рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ CPU рдХреЗ 30% рдкреНрд░рддрд┐рд╢рдд рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП), рдЬрдмрдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 2-10 рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реИред


    рдЕрдм, рд╣рдо hpa рд╕рдВрдЪрд╛рд▓рди рддрдВрддреНрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рд╣рдо рдПрдХ рдЪреВрд▓реНрд╣реЗ рдкрд░ рд▓реЛрдб рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:


      # kubectl top pod NAME CPU(cores) MEMORY(bytes) app-test-78559f8f44-pgs58 101m 243Mi app-test-78559f8f44-cj4jz 4m 240Mi 


рдХреБрд▓ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:


  • рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди (рд╡рд╛рдВрдЫрд┐рддMetricValue) - hpa рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 30% рд╣реИ
  • рд╡рд░реНрддрдорд╛рди рдорд╛рди (currentMetricValue) - рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ% рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
    1. рдореАрдЯреНрд░рд┐рдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдЪреВрд▓реНрд╣рд╛ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдкреВрд░реНрдг рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд 101 рдореА рдФрд░ 4 рдореА
    2. рдФрд╕рдд рдирд┐рд░рдкреЗрдХреНрд╖ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд (101 рдореА + 4 рдореА) / 2 = 53 рдореА
    3. рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╣реИ) 60 рдореАрдЯрд░ + 30 рдореАрдЯрд░ = 90 рдореАрдЯрд░
    4. рдЕрдиреБрд░реЛрдз рдЪреВрд▓реНрд╣рд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реАрдкреАрдпреВ рдХреА рдЦрдкрдд рдХрд╛ рдФрд╕рдд рдкреНрд░рддрд┐рд╢рдд, рдЕрд░реНрдерд╛рддреН 53 рдореАрдЯрд░ / 90 рдореАрдЯрд░ * 100% = 59%

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


ratio = 59% / 30% = 1.96


рдпрд╛рдиреА рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ ~ 2 рдЧреБрдирд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ [2 * 1.96] = 4 рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


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


рдиреЛрдбреНрд╕ рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рддрдВрддреНрд░ (рдХреНрд▓рд╕реНрдЯрд░ рдСрдЯреЛрд╕реНрдХреЛрд▓рд░)


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


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреБрдХреНрдд IaaS / PaS (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GKE / GCE, AKS, EKS, рдЖрджрд┐) рд╣реИ, рддреЛ Node Autoscaler рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдФрд░ рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдиреЛрдбреНрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ (рдиреЛрдб рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ) рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдХрдореА рд╣реЛрддреА рд╣реИ рдФрд░ рдкреЙрдбреНрд╕ рд╢реЗрдбреНрдпреВрд▓ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рд▓рдВрдмрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ)ред


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




рдирд┐рд╖реНрдХрд░реНрд╖


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


  1. K8s рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЕрдиреБрд╕реВрдЪрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП
  2. рдПрдХ рдЪреВрд▓реНрд╣рд╛ рдмреЗрджрдЦрд▓реА рдШрдЯрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
  3. рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рд╛рд░реНрдЯреНрд╕ (HPA) рдХреЗ рд▓рд┐рдП
  4. рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ (рдХреНрд▓рд╕реНрдЯрд░ рдСрдЯреЛрд╕реНрдХреЛрд▓рд┐рдВрдЧ) рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП

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


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


All Articles