CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ

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

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ

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

TL; рдб:
рдпрджрд┐ рддрдкрд╛рдЗрдБ CFS рдХреЛрдЯрд╛ рдмрдЧрдХреЛ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рд╣рд╛рдореА Kubernetes (рд╡рд╛ Kubelet рдорд╛ CFS рдХреЛрдЯрд╛рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ) рдорд╛ CPU рд╕реАрдорд╛рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВред рдХреЛрд░ рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ рдЧрдореНрднреАрд░ рд░ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдПрдЙрдЯрд╛ рдмрдЧ рдЬрд╕рд▓реЗ рдЕрддреНрдпрдзрд┐рдХ рдереНрд░реЛрдЯрд▓рд┐рдВрдЧ рд░ рдврд┐рд▓рд╛рдЗрдорд╛ рдкреБрд░реНтАНрдпрд╛рдЙрдБрдЫ
.

Omio рдорд╛ рд╕рдореНрдкреВрд░реНрдг рдкреВрд░реНрд╡рд╛рдзрд╛рд░ Kubernetes рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рд╕реНрдЯреЗрдЯрдлреБрд▓ рд░ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╡рд░реНрдХрд▓реЛрдбрд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ Kubernetes рдорд╛ рдЪрд▓реНрдЫрдиреН (рд╣рд╛рдореА Google Kubernetes рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ)ред рдкрдЫрд┐рд▓реНрд▓реЛ рдЫ рдорд╣рд┐рдирд╛рдорд╛, рд╣рд╛рдореАрд▓реЗ рдЕрдирд┐рдпрдорд┐рдд рдордиреНрджреАрд╣рд░реВ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВред рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рдлреНрд░рд┐рдЬ рд╣реБрдиреНрдЫрдиреН рд╡рд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪрд╣рд░реВрдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рд░реЛрдХреНрдЫрдиреН, рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдЬрдбрд╛рди рдЧреБрдорд╛рдЙрдБрдЫрдиреН, рдЖрджрд┐ред рдпреЛ рд╡реНрдпрд╡рд╣рд╛рд░рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдЕрдЪрдореНрдорд┐рдд рдмрдирд╛рдпреЛ, рд░ рдЕрдиреНрддрддрдГ рд╣рд╛рдореАрд▓реЗ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдЧрдореНрднреАрд░ рд░реВрдкрдорд╛ рд▓рд┐рдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНтАНрдпреМрдВред

рд▓реЗрдЦрдХреЛ рд╕рд╛рд░рд╛рдВрд╢:

  • рдХрдиреНрдЯреЗрдирд░ рд░ Kubernetes рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣рд┐ рд╢рдмреНрджрд╣рд░реВ;
  • рдХрд╕рд░реА CPU рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд░ рд╕реАрдорд╛рд╣рд░реВ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреН;
  • рдХрд╕рд░реА CPU рд╕реАрдорд╛ рдмрд╣реБ-рдХреЛрд░ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ;
  • CPU рдереНрд░реЛрдЯрд▓рд┐рдВрдЧ рдХрд╕рд░реА рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрдиреЗ;
  • рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рд░ nuancesред

рдХрдиреНрдЯреЗрдирд░ рд░ Kubernetes рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣реА рд╢рдмреНрджрд╣рд░реВ

Kubernetes рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд╕рдВрд╕рд╛рд░рдорд╛ рдЖрдзреБрдирд┐рдХ рдорд╛рдирдХ рд╣реЛред рдпрд╕рдХреЛ рдореБрдЦреНрдп рдХрд╛рдо рдХрдиреНрдЯреЗрдирд░ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рд╣реЛред

.╨л

рд╡рд┐рдЧрддрдорд╛, рд╣рд╛рдореАрд▓реЗ рдЬрд╛рднрд╛ JARs/WARs, Python Eggs, рд╡рд╛ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХреНрдЬрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдЬрд╕реНрддрд╛ рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛред рдпрджреНрдпрдкрд┐, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдп рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдердк рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛ: рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг (рдЬрд╛рднрд╛/рдкрд╛рдЗрдерди) рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ, рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд╣реА рдард╛рдЙрдБрд╣рд░реВрдорд╛ рд░рд╛рдЦреНрдиреЗ, рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреЗ, рдЖрджрд┐ред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдорд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдереНрдпреЛ (рдЬреБрди рдкреНрд░рд╛рдпрдГ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рд░ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВ рдмреАрдЪрдХреЛ рд╡рд┐рд╡рд╛рджрдХреЛ рд╕реНрд░реЛрдд рдерд┐рдпреЛ)ред

рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓реЗ рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗред рдЕрдм рдХрд▓рд╛рдХреГрддрд┐ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐ рд╣реЛред рдпрд╕рд▓рд╛рдИ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЬрд╕рдорд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд╛рддрд╛рд╡рд░рдг (рдЬрд╛рднрд╛/рдкрд╛рдЗрдерди/...), рд╕рд╛рдереИ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓рд╣рд░реВ/рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ, рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рд░ рддрдпрд╛рд░ рдЫрдиреНред рджреМрдбрдиреБ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рддреИрдирд╛рде рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рдХреБрдиреИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдгрд╣рд░реВ рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред

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

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕

рдкрд╣рд┐рд▓реЗ рдиреИ рднрдирд┐рдПрдЭреИрдВ, Kubernetes рдПрдХ рдХрдиреНрдЯреЗрдирд░ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рд╣реЛред рдпрд╕рд▓реЗ рдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ: рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рдкреЛрдЦрд░реА рджрд┐рдиреБрд╣реЛрд╕реН, рд░ рддреНрдпрд╕рдкрдЫрд┐ рднрдиреНрдиреБрд╣реЛрд╕реН: "рд╣реЗ, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕, 2 рдкреНрд░реЛрд╕реЗрд╕рд░ рд░ 3 GB рдореЗрдореЛрд░реА рдкреНрд░рддреНрдпреЗрдХрдХреЛ рд╕рд╛рде рдореЗрд░реЛ рдХрдиреНрдЯреЗрдирд░рдХреЛ рджрд╕рд╡рдЯрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд▓рдиреНрдЪ рдЧрд░реМрдВ, рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЪрд▓рд┐рд░рд╣рдиреБрд╣реЛрд╕реН!" рдХреБрдмреЗрд░рдиреЗрдЯрд▓реЗ рдмрд╛рдБрдХреАрдХреЛ рд╣реЗрд░рдЪрд╛рд╣ рдЧрд░реНрдиреЗрдЫред рдпрд╕рд▓реЗ рдирд┐:рд╢реБрд▓реНрдХ рдХреНрд╖рдорддрд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗрдЫ, рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд▓рдиреНрдЪ рдЧрд░реНрдиреЗрдЫ рд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫ, рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрд╛ рдЕрдкрдбреЗрдЯ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЖрджрд┐ред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, Kubernetes рд▓реЗ рддрдкрд╛рдИрд▓рд╛рдИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд╕рд╛рд░реНрдиреЗ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд┐рдзрддрд╛ рдмрдирд╛рдЙрдБрдЫред

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдХреБрдмреЗрд░рдиреЗрдЯрд╣рд░реВ рдЖрдо рдорд╛рдирд┐рд╕рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ

Kubernetes рдорд╛ рдЕрдиреБрд░реЛрдз рд░ рд╕реАрдорд╛рд╣рд░реВ рдХреЗ рд╣реБрдиреН

рдареАрдХ рдЫ, рд╣рд╛рдореАрд▓реЗ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд░ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХрднрд░ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдкрдирд┐ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдзреЗрд░реИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдПрдЙрдЯреИ рдореЗрд╕рд┐рдирдорд╛ рдмрд╕реНрди рд╕рдХреНрдЫрдиреНред

рдПрдХ рд╕рд╛рдореНрдкреНрд░рджрд╛рдпрд┐рдХ рдЕрдкрд╛рд░реНрдЯрдореЗрдиреНрдЯ рд╕рдВрдЧ рдПрдХ рд╕рдорд╛рдирддрд╛ рдХреЛрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдПрдЙрдЯрд╛ рд╡рд┐рд╢рд╛рд▓ рдкрд░рд┐рд╕рд░ (рдореЗрд╕рд┐рди/рдЗрдХрд╛рдЗрд╣рд░реВ) рд▓рд┐рдЗрдиреНрдЫ рд░ рдзреЗрд░реИ рднрд╛рдбрд╛рдорд╛ рд▓рд┐рдиреЗрд╣рд░реВ (рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ) рд▓рд╛рдИ рднрд╛рдбрд╛рдорд╛ рджрд┐рдЗрдиреНрдЫред Kubernetes рдПрдХ рд░рд┐рдпрд╛рд▓реНрдЯрд░ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред рдкреНрд░рд╢реНрди рдЙрдареНрдЫ, рднрд╛рдбрд╛рдорд╛ рд▓рд┐рдиреЗрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рджреНрд╡рдиреНрджреНрд╡рдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрдиреЗ? рдХреЗ рд╣реБрдиреНрдЫ рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрд▓реЗ, рдЖрдзрд╛ рджрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдерд░реВрдо рдЙрдзрд╛рд░реЛ рд▓рд┐рдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдЫ рднрдиреЗ?

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

Kubernetes рдорд╛ рдХрд╕рд░реА рдЕрдиреБрд░реЛрдз рд░ рд╕реАрдорд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫ

Kubernetes рд▓реЗ CPU рд╕реАрдорд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдХрд░реНрдиреЗрд▓рдорд╛ рдирд┐рд░реНрдорд┐рдд рдереНрд░реЙрдЯрд▓рд┐рдЩ рдореЗрдХрд╛рдирд┐рдЬрдо (рдШрдбреА рдЪрдХреНрд░ рд╕реНрдХрд┐рдкрд┐рдЩ) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд▓реЗ рд╕реАрдорд╛ рдирд╛рдШреНрдпреЛ рднрдиреЗ, рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдПрдХреЛ рдЫ (рдЕрд░реНрдерд╛рддреН рдпрд╕рд▓реЗ рдХрдо CPU рдЪрдХреНрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ)ред рдореЗрдореЛрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдз рд░ рд╕реАрдорд╛рд╣рд░реВ рдлрд░рдХ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдЬрд┐рд▓реЛ рдЫрдиреНред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдХреЗрд╡рд▓ рдкреЛрдбрдХреЛ рдЕрдиреНрддрд┐рдо рдкреБрди: рд╕реБрд░реБ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдпреЛ "OOMKilled" рд╣реЛ рдХрд┐ рдЫреИрдиред CPU рдереНрд░реЙрдЯрд▓рд┐рдЩ рддреНрдпрддрд┐ рд╕рд░рд▓ рдЫреИрди, рдХрд┐рдирдХрд┐ K8s рд▓реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧрджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдБрдЫ, cgroups рджреНрд╡рд╛рд░рд╛ рд╣реЛрдЗрдиред

CPU рдЕрдиреБрд░реЛрдз

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
CPU рдЕрдиреБрд░реЛрдз рдХрд╕рд░реА рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ

рд╕рд░рд▓рддрд╛рдХреЛ рд▓рд╛рдЧрд┐, рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ 4-рдХреЛрд░ CPU рднрдПрдХреЛ рдореЗрд╕рд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╣реЗрд░реМрдВред

K8s рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВ (рдореЗрдореЛрд░реА рд░ рдкреНрд░реЛрд╕реЗрд╕рд░) рдХреЛ рдЖрд╡рдВрдЯрди рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдирд┐рдпрдиреНрддреНрд░рдг рд╕рдореВрд╣ рд╕рдВрдпрдиреНрддреНрд░ (cgroups) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдореЛрдбреЗрд▓ рдЙрдкрд▓рдмреНрдз рдЫ: рдмрдЪреНрдЪрд╛рд▓реЗ рдЕрднрд┐рднрд╛рд╡рдХ рд╕рдореВрд╣рдХреЛ рд╕реАрдорд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рд╡рд┐рддрд░рдг рд╡рд┐рд╡рд░рдгрд╣рд░реВ рднрд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ (/sys/fs/cgroup)ред рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдорд╛рдорд▓рд╛ рдорд╛ рдпреЛ рдЫ /sys/fs/cgroup/cpu,cpuacct/*.

K8s рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ cpu.share рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрд░реЛрддрд╣рд░реВ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрдиред рд╣рд╛рдореНрд░реЛ рдХреЗрд╕рдорд╛, рд░реВрдЯ cgroup рд▓реЗ CPU рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ 4096 рд╕реЗрдпрд░рд╣рд░реВ рдкрд╛рдЙрдБрдЫ - рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд╛рд╡рд░рдХреЛ 100% (1 рдХреЛрд░ = 1024; рдпреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди рд╣реЛ)ред рдореВрд▓ рд╕рдореВрд╣рд▓реЗ рджрд░реНрддрд╛ рднрдПрдХрд╛ рд╡рдВрд╢рдЬрд╣рд░реВрдХреЛ рд╢реЗрдпрд░рдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╕рдорд╛рдиреБрдкрд╛рддрд┐рдХ рд░реВрдкрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрджрдЫ cpu.share, рд░ рддрд┐рдиреАрд╣рд░реВ, рдмрд╛рд░реАрдорд╛, рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд╕рдиреНрддрд╛рдирд╣рд░реВ, рдЗрддреНрдпрд╛рджрд┐рд╕рдБрдЧ рдкрдирд┐ рддреНрдпрд╕реНрддреИ рдЧрд░реНрдЫрдиреНред рд╕рд╛рдорд╛рдиреНрдп рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЛрдбрдорд╛, рдореВрд▓ cgroup рдорд╛ рддреАрди рдмрдЪреНрдЪрд╛рд╣рд░реВ рдЫрдиреН: system.slice, user.slice ╨╕ kubepodsред рдкрд╣рд┐рд▓реЛ рджреБрдИ рдЙрдкрд╕рдореВрд╣ K8s рдмрд╛рд╣рд┐рд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рд▓реЛрдб рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдмреАрдЪ рд╕реНрд░реЛрддрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдкрдЫрд┐рд▓реНрд▓реЛ рдПрдХ - kubepods - рдкреЛрдбрд╣рд░реВ рдмреАрдЪ рд╕реНрд░реЛрддрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди Kubernetes рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛред

рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд▓реЗ рдкрд╣рд┐рд▓реЛ рд░ рджреЛрд╕реНрд░реЛ рдЙрдкрд╕рдореВрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рджреЗрдЦрд╛рдЙрдБрдЫ 1024 рд╕реЗрдпрд░рд╣рд░реВ, kuberpod рдЙрдкрд╕рдореВрд╣ рдЖрд╡рдВрдЯрд┐рдд рд╕рдВрдЧ 4096 рд╢реЗрдпрд░рд╣рд░реВ рдпреЛ рдХрд╕рд░реА рд╕рдореНрднрд╡ рдЫ: рд╕рдмреИ рдкрдЫрд┐, рд░реВрдЯ рд╕рдореВрд╣ рдорд╛рддреНрд░ рдкрд╣реБрдБрдЪ рдЫ 4096 рд╢реЗрдпрд░рд╣рд░реВ, рд░ рддрд┐рдирдХрд╛ рд╕рдиреНрддрд╛рдирд╣рд░реВрдХреЛ рд╕реЗрдпрд░рдХреЛ рдпреЛрдЧрд▓реЗ рдпреЛ рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдврд╛рдЙрдБрдЫ (6144)? рдмрд┐рдиреНрджреБ рдпреЛ рд╣реЛ рдХрд┐ рдорд╛рдирд▓реЗ рддрд╛рд░реНрдХрд┐рдХ рдЕрд░реНрде рдмрдирд╛рдЙрдБрдЫ, рддреНрдпрд╕реИрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдЕрдиреБрд╕реВрдЪрдХ (CFS) рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рдорд╛рдиреБрдкрд╛рддрд┐рдХ рд░реВрдкрдорд╛ CPU рд╕реНрд░реЛрддрд╣рд░реВ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛ рдорд╛, рдкрд╣рд┐рд▓реЛ рджреБрдИ рд╕рдореВрд╣ рдкреНрд░рд╛рдкреНрдд 680 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢реЗрдпрд░ (рекрежрепрем рдХреЛ резрем.рем%), рд░ рдХреБрдмреЗрдкреЛрдбрд▓реЗ рдмрд╛рдБрдХреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ 2736 рд╢реЗрдпрд░рд╣рд░реВ рдбрд╛рдЙрдирдЯрд╛рдЗрдордХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкрд╣рд┐рд▓реЛ рджреБрдИ рд╕рдореВрд╣рд▓реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрд░реЛрддрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдирдиреНред

рд╕реМрднрд╛рдЧреНрдпрд╡рд╢, рдЕрдиреБрд╕реВрдЪрдХрд╕рдБрдЧ рдЕрдкреНрд░рдпреБрдХреНрдд CPU рд╕реНрд░реЛрддрд╣рд░реВ рдмрд░реНрдмрд╛рдж рдЧрд░реНрдирдмрд╛рдЯ рдмрдЪреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рдВрдпрдиреНрддреНрд░ рдЫред рдпрд╕рд▓реЗ "рдирд┐рд╖реНрдХреНрд░рд┐рдп" рдХреНрд╖рдорддрд╛рд▓рд╛рдИ рдЧреНрд▓реЛрдмрд▓ рдкреВрд▓рдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрджрдЫ, рдЬрд╣рд╛рдБрдмрд╛рдЯ рдпреЛ рд╕рдореВрд╣рд╣рд░реВрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреНрдЫ рдЬрд╕рд▓рд╛рдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд╛рд╡рд░ рдЪрд╛рд╣рд┐рдиреНрдЫ (рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдмреНрдпрд╛рдЪрд╣рд░реВрдорд╛ рд╣реБрдиреНрдЫ рд░рд╛рдЙрдиреНрдбрд┐рдЩ рдШрд╛рдЯрд╛рдмрд╛рдЯ рдмрдЪреНрди)ред рд╕рдорд╛рди рд╡рд┐рдзрд┐ рд╡рдВрд╢рдХрд╛ рд╕рдмреИ рд╕рдиреНрддрд╛рдирд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред

рдпреЛ рд╕рдВрдпрдиреНрддреНрд░рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд╛рд╡рд░рдХреЛ рдирд┐рд╖реНрдкрдХреНрд╖ рд╡рд┐рддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рд░ рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рдХрд╕реИрд▓реЗ рдкрдирд┐ рдЕрд░реВрдмрд╛рдЯ рд╕реНрд░реЛрддрд╣рд░реВ "рдЪреЛрд░реА" рдЧрд░реНрджреИрдиред

CPU рд╕реАрдорд╛

K8 рдорд╛ рд╕реАрдорд╛ рд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рд╕рдорд╛рди рджреЗрдЦрд┐рдиреНрдЫ рднрдиреНрдиреЗ рддрдереНрдпрдХреЛ рдмрд╛рд╡рдЬреБрдж, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХрджрдо рдлрд░рдХ рдЫ: рдпреЛ рд╕рдмреИрднрдиреНрджрд╛ рднреНрд░рд╛рдордХ рд░ рд╕рдмреИрднрдиреНрджрд╛ рдХрдо рджрд╕реНрддрд╛рд╡реЗрдЬ рдЧрд░рд┐рдПрдХреЛ рднрд╛рдЧред

K8s рд╕рдВрд▓рдЧреНрди рдЫ CFS рдХреЛрдЯрд╛ рд╕рдВрдпрдиреНрддреНрд░ рд╕реАрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиред рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН cfs_period_us ╨╕ cfs_quota_us cgroup рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ (рдлрд╛рдЗрд▓ рдкрдирд┐ рддреНрдпрд╣рд╛рдБ рдЕрд╡рд╕реНрдерд┐рдд рдЫ cpu.share).

рд╡рд┐рдкрд░реАрдд cpu.share, рдХреЛрдЯрд╛ рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ рд╕рдордп рдЕрд╡рдзрд┐, рд░ рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд╛рд╡рд░рдорд╛ рд╣реЛрдЗрдиред cfs_period_us рдЕрд╡рдзрд┐ (рдпреБрдЧ) рдХреЛ рдЕрд╡рдзрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫ - рдпреЛ рд╕рдзреИрдВ 100000 ╬╝s (100 ms) рд╣реБрдиреНрдЫред K8s рдорд╛ рдпреЛ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рд╡рд┐рдХрд▓реНрдк рдЫ, рддрд░ рдпреЛ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд▓реНрдлрд╛рдорд╛ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫред рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдХреЛрдЯрд╛рд╣рд░реВ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди epoch рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рджреЛрд╕реНрд░реЛ рдлрд╛рдЗрд▓ cfs_quota_us, рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧрдорд╛ рдЙрдкрд▓рдмреНрдз рд╕рдордп (рдХреЛрдЯрд╛) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫред рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдпреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХреЗрдиреНрдбрдорд╛ рдкрдирд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред рдХреЛрдЯрд╛ рдпреБрдЧрдХреЛ рд▓рдореНрдмрд╛рдЗ рднрдиреНрджрд╛ рдмрдвреА рд╣реБрди рд╕рдХреНрдЫ; рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рдпреЛ 100 ms рднрдиреНрджрд╛ рдмрдвреА рд╣реБрди рд╕рдХреНрдЫред

16-рдХреЛрд░ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рджреБрдИ рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВ рд╣реЗрд░реМрдВ (рдУрдорд┐рдпреЛрдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рднрдПрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░рдХреЛ рдХрдореНрдкреНрдпреБрдЯрд░):

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдкрд░рд┐рджреГрд╢реНрдп 1: 2 рдереНрд░реЗрдбрд╣рд░реВ рд░ 200 ms рд╕реАрдорд╛ред рдХреБрдиреИ рдереНрд░реЛрдЯрд▓рд┐рдЩ рдЫреИрди

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдкрд░рд┐рджреГрд╢реНрдп 2: 10 рдереНрд░реЗрдб рд░ 200 ms рд╕реАрдорд╛ред 20 ms рдкрдЫрд┐ рдереНрд░реЛрдЯрд▓рд┐рдВрдЧ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЕрд░реНрдХреЛ 80 ms рдкрдЫрд┐ рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫ

рдорд╛рдиреМрдВ рддрдкрд╛рдИрдВрд▓реЗ CPU рд╕реАрдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреБрднрдпреЛ 2 рдХрд░реНрдиреЗрд▓; Kubernetes рд▓реЗ рдпреЛ рдорд╛рди 200 ms рдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрдиреЗрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдХрдиреНрдЯреЗрдирд░рд▓реЗ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдмрд┐рдирд╛ рдЕрдзрд┐рдХрддрдо 200ms CPU рд╕рдордп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫред

рд░ рдпрд╣рд╛рдБ рд░рдорд╛рдЗрд▓реЛ рд╕реБрд░реБ рд╣реБрдиреНрдЫред рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рдЙрдкрд▓рдмреНрдз рдХреЛрдЯрд╛ 200 ms рд╣реЛред рдпрджрд┐ рддрдкрд╛рдИрдВ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рдо рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рджрд╕ 12-рдХреЛрд░ рдореЗрд╕рд┐рдирдорд╛ рдереНрд░реЗрдбрд╣рд░реВ (рдкрд░рд┐рджреГрд╢реНрдп 2 рдХреЛ рд▓рд╛рдЧрд┐ рдЪрд┐рддреНрд░рдг рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН), рдЕрдиреНрдп рд╕рдмреИ рдкреЛрдбрд╣рд░реВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реБрдБрджрд╛, рдХреЛрдЯрд╛ рдорд╛рддреНрд░ 20 ms рдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫ (10 * 20 ms = 200 ms рджреЗрдЦрд┐), рд░ рдпреЛ рдкреЛрдбрдХрд╛ рд╕рдмреИ рдереНрд░реЗрдбрд╣рд░реВ рд╣реНрдпрд╛рдЩреНрдЧ рд╣реБрдиреЗрдЫрдиреНред ┬╗ (рдереНрд░реЛрдЯрд▓) рдЕрд░реНрдХреЛ 80 ms рдХреЛ рд▓рд╛рдЧрд┐ред рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЫ рдЕрдиреБрд╕реВрдЪрдХ рдмрдЧрдЬрд╕рдХрд╛ рдХрд╛рд░рдг рдЕрддреНрдпрдзрд┐рдХ рдереНрд░реЛрдЯрд▓рд┐рдЩ рд╣реБрдиреНрдЫ рд░ рдХрдиреНрдЯреЗрдирд░рд▓реЗ рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдЯрд╛ рдкрдирд┐ рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдХреНрджреИрдиред

рдкреЛрдбрдорд╛ рдереНрд░реЛрдЯрд▓рд┐рдВрдЧ рдХрд╕рд░реА рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрдиреЗ?

рдХреЗрд╡рд▓ рдкреЛрдбрдорд╛ рд▓рдЧрдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН cat /sys/fs/cgroup/cpu/cpu.stat.

  • nr_periods - рдЕрдиреБрд╕реВрдЪрдХ рдЕрд╡рдзрд┐ рдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛;
  • nr_throttled - рд░рдЪрдирд╛рдорд╛ рдереНрд░реЛрдЯрд▓ рдЕрд╡рдзрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ nr_periods;
  • throttled_time - рдирд╛рдиреЛрд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╕рдВрдЪрдпреА рдереНрд░реЛрдЯрд▓ рд╕рдордпред

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ

рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ?

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореА рд╕рдмреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЙрдЪреНрдЪ рдереНрд░реЛрдЯрд▓рд┐рдЩ рдкрд╛рдЙрдБрдЫреМрдВред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдЙрд╣рд╛рдБ рднрд┐рддреНрд░ рд╣реБрдиреБрд╣реБрдиреНрдЫ рдбреЗрдв рдкрдЯрдХ рдЧрдгрдирд╛ рднрдиреНрджрд╛ рдмрд▓рд┐рдпреЛ!

рдпрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рддреНрд░реБрдЯрд┐рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ - рддрдпрд╛рд░реА рдЬрд╛рдБрдЪ рд╡рд┐рдлрд▓рддрд╛, рдХрдиреНрдЯреЗрдирд░ рдлреНрд░рд┐рдЬ, рдиреЗрдЯрд╡рд░реНрдХ рдЬрдбрд╛рди рдмреНрд░реЗрдХ, рд╕реЗрд╡рд╛ рдХрд▓рд╣рд░реВ рднрд┐рддреНрд░ рдЯрд╛рдЗрдордЖрдЙрдЯред рдпрд╕рд▓реЗ рдЕрдиреНрддрддрдГ рд╡рд┐рд▓рдореНрдмрддрд╛ рд░ рдЙрдЪреНрдЪ рддреНрд░реБрдЯрд┐ рджрд░рд╣рд░реВрдорд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдиреНрдЫред

рдирд┐рд░реНрдгрдп рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ

рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд╕рд░рд▓ рдЫред рд╣рд╛рдореАрд▓реЗ CPU рд╕реАрдорд╛ рддреНрдпрд╛рдЧреНрдпреМрдВ рд░ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ OS рдХрд░реНрдиреЗрд▓рд▓рд╛рдИ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВ, рдЬрд╕рдорд╛ рдмрдЧ рдлрд┐рдХреНрд╕ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд╣рд╛рдореНрд░рд╛ рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ (HTTP 5xx) рддреБрд░реБрдиреНрддреИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдШрдЯреНрдпреЛ:

HTTP 5xx рддреНрд░реБрдЯрд┐рд╣рд░реВ

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдПрдЙрдЯрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд╡рд╛рдХреЛ рд▓рд╛рдЧрд┐ HTTP 5xx рддреНрд░реБрдЯрд┐рд╣рд░реВ

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп p95

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдз рд╡рд┐рд▓рдореНрдмрддрд╛, 95 рдФрдВ рдкреНрд░рддрд┐рд╢рдд

рд╕рдЮреНрдЪрд╛рд▓рди рд▓рд╛рдЧрдд

CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдмрд┐рддрд╛рдПрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдШрдгреНрдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛

рдкрдХрдб рдХреЗ рд╣реЛ?

рд▓реЗрдЦрдХреЛ рд╕реБрд░реБрдорд╛ рднрдиреЗрдЭреИрдВ:

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

рдпрд╣рд╛рдБ рдХреНрдпрд╛рдЪ рдЫред рдПрдЙрдЯрд╛ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдХрдиреНрдЯреЗрдирд░рд▓реЗ рдореЗрд╕рд┐рдирдорд╛ рдЙрдкрд▓рдмреНрдз рд╕рдмреИ CPU рд╕реНрд░реЛрддрд╣рд░реВ рдЦрд╛рди рд╕рдХреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕реНрдорд╛рд░реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реНрдЯреНрдпрд╛рдХ рдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, JVM, Go, Node VM рдареАрдХрд╕рдБрдЧ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ), рддрдм рдпреЛ рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЗрди: рддрдкрд╛рдЗрдБ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд░ рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рдЦрд░рд╛рдм рд░реВрдкрдорд╛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рд╡рд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдЫреИрдирдиреН (FROM java:latest) рд╕реНрдерд┐рддрд┐ рдирд┐рдпрдиреНрддреНрд░рдг рдмрд╛рд╣рд┐рд░ рдЬрд╛рди рд╕рдХреНрдЫред Omio рдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рдкреНрд░рдореБрдЦ рднрд╛рд╖рд╛ рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЖрдзрд╛рд░ рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕рдорд╕реНрдпрд╛ рдЕрд╡рд╕реНрдерд┐рдд рдерд┐рдПрдиред

рд╣рд╛рдореА рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЕрдиреБрдЧрдорди рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВ рдкреНрд░рдпреЛрдЧ (рдкреНрд░рдпреЛрдЧ, рд╕рдВрддреГрдкреНрддрд┐ рд░ рддреНрд░реБрдЯрд┐рд╣рд░реВ), API рдврд┐рд▓рд╛рдЗ рд░ рддреНрд░реБрдЯрд┐ рджрд░рд╣рд░реВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдЕрдкреЗрдХреНрд╖рд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдЫрдиреНред

рд╕рдиреНрджрд░реНрдн

рдпреЛ рд╣рд╛рдореНрд░реЛ рдХрдерд╛ рд╣реЛред рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрд▓реЗ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдерд┐рдпреЛ рднрдиреЗрд░ рдмреБрдЭреНрди рдорджреНрджрдд рдЧрд░реНтАНрдпреЛ:

Kubernetes рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ:

рдХреЗ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдЕрднреНрдпрд╛рд╕рдорд╛ рдпрд╕реНрддреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫ рд╡рд╛ рдХрдиреНрдЯреЗрдирд░рд╛рдЗрдЬреНрдб рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдереНрд░реЛрдЯрд▓рд┐рдВрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЕрдиреБрднрд╡ рдЫ? рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдЖрдлреНрдиреЛ рдХрдерд╛ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН!

рдЕрдиреБрд╡рд╛рджрдХрдмрд╛рдЯ PS

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди