Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рд╕рдореНрдореЗрд▓рдирдорд╛ рдЕрдкреНрд░рд┐рд▓ рео рд╕реНрдЯреНрд░рд╛рдЗрдХ 2019, "DevOps" рдЦрдгреНрдбрдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛, рд░рд┐рдкреЛрд░реНрдЯ "рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕реНрд░реЛрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди" рджрд┐рдЗрдПрдХреЛ рдерд┐рдпреЛред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд░ рд╢рд┐рдЦрд░ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рддрдкрд╛рдЗрдБ рдХрд╕рд░реА K8s рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрджрдЫред

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдкрд░рдореНрдкрд░рд╛ рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рдореА рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрди рдЦреБрд╕реА рдЫреМрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рднрд┐рдбрд┐рдпреЛ (44 рдорд┐рдиреЗрдЯ, рд▓реЗрдЦ рднрдиреНрджрд╛ рдзреЗрд░реИ рдЬрд╛рдирдХрд╛рд░реАрдореВрд▓рдХ) рд░ рдкрд╛рда рдлрд╛рд░рдордорд╛ рдореБрдЦреНрдп рд╕рд╛рд░рд╛рдВрд╢ред рдЬрд╛рдЙ!

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

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

рдорд╛рдиреМрдВ рд╣рд╛рдореАрд╕рдБрдЧ рд╣рд╛рдореНрд░реЛ рд╣реЛрд╕реНрдЯрдорд╛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЫрдиреНред рдХреЗ рдХреЛ рд▓рд╛рдЧрд┐? рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд░ рдЕрд▓рдЧрд╛рд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рдЬрд╕рд▓реЗ рдмрд╛рд░реАрдорд╛ рд╕рд░рд▓ рд░ рд░рд╛рдореНрд░реЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, CI/CDред рд╣рд╛рдореАрд╕рдБрдЧ рдХрдиреНрдЯреЗрдирд░ рднрдПрдХрд╛ рдпрд╕реНрддрд╛ рдзреЗрд░реИ рд╕рд╡рд╛рд░реАрд╕рд╛рдзрди рдЫрдиреН ред

рдпрд╕ рдорд╛рдорд▓рд╛ рдорд╛ Kubernetes рдХреЗ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ?

  1. рд╣рд╛рдореА рдпреА рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрди рдЫреЛрдбреНрдЫреМрдВ рд░ "рдХреНрд▓рд╛рдЙрдб" рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдерд╛рд▓реНрдЫреМрдВред рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕рдореВрд╣ рд╡рд╛ рдкреЛрдбрд╣рд░реВ (рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕рдореВрд╣)ред
  2. рдпрд╕рдмрд╛рд╣реЗрдХ, рд╣рд╛рдореА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреЛрдбрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрджреИрдиреМрдВ, рддрд░ рдердк рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдЫреМрдВ╨╛рдареВрд▓рд╛ рд╕рдореВрд╣рд╣рд░реВред рдпрд╕реНрддреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЖрджрд┐рдорд╣рд░реВ рд╣рд╛рдореАрд▓рд╛рдИ рднрдиреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддреНрдпрд╣рд╛рдБ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдпрднрд╛рд░ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЫ, рд░ рдпрд╣рд╛рдБ рдпрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рдЫрдиреНред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдкрдЫрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рд╕рдмреИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫрдиреНред
  3. рд╕рд╣рдпреЛрдЧрдХреЛ рд╕рд╛рде рдШреЛрд╖рдгрд╛рддреНрдордХ API рд╡рд┐рд╢реЗрд╖ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА "рд╕рдВрд╕рд╛рд░рдХреЛ рд╕рдВрд░рдЪрдирд╛" (YAML рдорд╛) рдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВ, рдЬреБрди Kubernetes рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╣реЛред рд░ рдлреЗрд░рд┐: рдЬрдм рд╡рд░реНрдгрди рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдпрд╕рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫред

рд╕реНрд░реЛрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

CPU

рд╕рд░реНрднрд░рдорд╛ nginx, php-fpm рд░ mysql рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред рдпреА рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЕрдЭ рдмрдвреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЪрд▓реНрдиреЗрдЫрдиреН, рдЬрд╕рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд▓рд╛рдИ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд╕реНрд░реЛрддрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)
(рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдЕрдВрдХрд╣рд░реВ "рддреЛрддрд╛" рд╣реБрдиреН, рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рдкрд╛рд╡рд░рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛)

рдпрд╕рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдореВрд╣рд╣рд░реВрдорд╛ рдЬреЛрдбреНрдиреБ рддрд╛рд░реНрдХрд┐рдХ рдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рдмреИ nginx рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рдПрдЙрдЯрд╛ рд╕рдореВрд╣ "nginx" рдорд╛)ред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рд░рд▓ рд░ рд╕реНрдкрд╖реНрдЯ рддрд░рд┐рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣рд▓рд╛рдИ рдХрдиреНрдЯреЗрдирд░рдорд╛ рд░рд╛рдЦреНрдиреБ рд╣реЛ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдЬрд╛рд░реА рд░рд╛рдЦреНрди, рддрдкрд╛рдИрдВрд▓реЗ рдХрдиреНрдЯреЗрдирд░ рдХреЗ рд╣реЛ рднрдиреЗрд░ рд╕рдореНрдЭрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ (рд▓рд┐рдирдХреНрд╕рдорд╛)ред рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд░реНрдиреЗрд▓рдорд╛ рддреАрди рдореБрдЦреНрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдореНрднрд╡ рднрдПрдХреЛ рдерд┐рдпреЛ, рдзреЗрд░реИ рд▓рд╛рдореЛ рд╕рдордп рдЕрдШрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ: рдХреНрд╖рдорддрд╛рдУрдВ, рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ ╨╕ рд╕рдореВрд╣рд╣рд░реБред рд░ рдердк рд╡рд┐рдХрд╛рд╕ рдЕрдиреНрдп рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ (рдбрдХрд░ рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ "рд╢реЗрд▓рд╣рд░реВ" рд╕рд╣рд┐рдд) рджреНрд╡рд╛рд░рд╛ рд╕рд╣рдЬ рднрдПрдХреЛ рдерд┐рдпреЛ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рд╣рд╛рдореА рдХреЗрд╡рд▓ рдЪрд╛рд╕реЛ рд░рд╛рдЦреНрдЫреМрдВ рд╕рдореВрд╣рд╣рд░реБ, рдХрд┐рдирднрдиреЗ рдирд┐рдпрдиреНрддреНрд░рдг рд╕рдореВрд╣рд╣рд░реВ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ (рдбрдХрд░, рдЗрддреНрдпрд╛рджрд┐) рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдХреЛ рдЕрдВрд╢ рд╣реБрдиреН рдЬрд╕рд▓реЗ рд╕реНрд░реЛрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред рд╕рдореВрд╣рд╣рд░реВрдорд╛ рд╕рдВрдпреБрдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ, рд╣рд╛рдореАрд▓реЗ рдЪрд╛рд╣реЗрдХреЛ рд░реВрдкрдорд╛, рдирд┐рдпрдиреНрддреНрд░рдг рд╕рдореВрд╣рд╣рд░реВ рд╣реБрдиреНред

рдпреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ CPU рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдорд╛ рдлрд░реНрдХреМрдВ, рд░ рдЕрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)
(рдо рджреЛрд╣реЛрд░реНрдпрд╛рдЙрдБрдЫреБ рдХрд┐ рд╕рдмреИ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рдЕрдореВрд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реБрдиреН)

рдПрдХреИ рд╕рдордпрдорд╛, CPU рдЖрдлреИрдорд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд┐рдд рд╕реНрд░реЛрдд рдЫ (рдЙрджрд╛рд╣рд░рдгрдорд╛ рдпреЛ 1000 рд╣реЛ), рдЬрд╕рдХреЛ рд╕рдмреИрд▓рд╛рдИ рдЕрднрд╛рд╡ рд╣реБрди рд╕рдХреНрдЫ (рд╕рдмреИ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рдпреЛрдЧрдлрд▓ 150+850+460=1460 рд╣реЛ)ред рдпрд╕ рдорд╛рдорд▓рд╛ рдорд╛ рдХреЗ рд╣реБрдиреЗрдЫ?

рдХрд░реНрдиреЗрд▓рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди рдерд╛рд▓реНрдЫ рд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣рд▓рд╛рдИ рд╕рдорд╛рди рдорд╛рддреНрд░рд╛рдорд╛ рд╕реНрд░реЛрддрд╣рд░реВ рджрд┐рдБрджреИ "рдирд┐рд╖реНрдкрдХреНрд╖ рд░реВрдкрдорд╛" рдЧрд░реНрдЫред рддрд░ рдкрд╣рд┐рд▓реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддреНрдпрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рднрдиреНрджрд╛ рдмрдвреА рдЫрдиреН (333> 150), рддреНрдпрд╕реИрд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд (333-150 = 183) рд░рд┐рдЬрд░реНрднрдорд╛ рд░рд╣рдиреНрдЫ, рдЬреБрди рджреБрдИ рдЕрдиреНрдп рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдмреАрдЪ рдкрдирд┐ рд╕рдорд╛рди рд░реВрдкрдорд╛ рд╡рд┐рддрд░рд┐рдд рдЧрд░рд┐рдиреНрдЫ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛: рдкрд╣рд┐рд▓реЛ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд░реЛрддрд╣рд░реВ рдерд┐рдП, рджреЛрд╕реНрд░реЛ - рдпрд╕рдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд░реЛрддрд╣рд░реВ рдерд┐рдПрдирдиреН, рддреЗрд╕реНрд░реЛ - рдпрд╕рдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд░реЛрддрд╣рд░реВ рдерд┐рдПрдирдиреНред рдпреЛ рдХрд░реНрдордХреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд▓рд┐рдирдХреНрд╕рдорд╛ "рдЗрдорд╛рдирджрд╛рд░" рдЕрдиреБрд╕реВрдЪрдХ - рд╕реАрдПрдлрдПрд╕ред рдпрд╕рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдорд╛рдпреЛрдЬрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рддреМрд▓ рдкреНрд░рддреНрдпреЗрдХ рдХрдиреНрдЯреЗрдирд░ред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдпреЛ рдЬрд╕реНрддреИ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рджреЛрд╕реНрд░реЛ рдХрдиреНрдЯреЗрдирд░ (php-fpm) рдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЕрднрд╛рд╡рдХреЛ рдорд╛рдорд▓рд╛рд▓рд╛рдИ рд╣реЗрд░реМрдВред рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░ рд╕реНрд░реЛрддрд╣рд░реВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдмреАрдЪ рд╕рдорд╛рди рд░реВрдкрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреНрдЫред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рд╕рдмреИ рдХрд╛рдорджрд╛рд░рд╣рд░реВ рдврд┐рд▓реЛ рд╣реБрдиреНрдЫрдиреН, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рдЖрдзрд╛рднрдиреНрджрд╛ рдХрдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдпрд╕рд░реА CFS рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛рдо рдЧрд░реНрджрдЫред рд╣рд╛рдореАрд▓реЗ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓рд╛рдИ рддреЛрдХреНрдиреЗ рд╡рдЬрдирд╣рд░реВрд▓рд╛рдИ рд╣рд╛рдореА рдердк рдХрд▓ рдЧрд░реНрдиреЗрдЫреМрдВ рдЕрдиреБрд░реЛрдзрд╣рд░реВред рдпреЛ рдХрд┐рди рдпрд╕реНрддреЛ рдЫ - рдердк рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред

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

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрдбрд╛ рдХреЛрдЯрд╛ рднрдирд┐рдиреНрдЫ (рдХрдбрд╛ рд╕реАрдорд┐рдд)ред рдпрд╕рд▓рд╛рдИ рд╕рд░рд▓ рд░реВрдкрдорд╛ рд╕рдореНрдЭреМрдВ рд╕реАрдорд╛ред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рд╕реАрдорд╛рд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдПрдЙрдЯрд╛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ: mysql рд╕рдбрдХрдорд╛ рдбреНрд░рд╛рдЗрдн рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдерд┐рдпреЛ рд░ рдХреБрдиреИ рд╕рдордпрдорд╛ рдпрд╕рдХреЛ CPU рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рднрдпреЛ, рддрд░ рдЕрдиреНрдп рд╕рдмреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ CPU рд╕рдореНрдо рдкрд░реНрдЦрди рдмрд╛рдзреНрдп рдЫрдиреНред рдирд┐рд╖реНрдХреНрд░рд┐рдп.

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд░ CPU рд╕рдБрдЧ рдпрд╕рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдлрд░реНрдХреМрдВ - рд╕рдордЧреНрд░ рдЪрд┐рддреНрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

cgroup рдорд╛ рджреБрдИ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЫрдиреН - рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдпреА рджреБрдИ рд╕рд░рд▓ "рдЯреНрд╡рд┐рд╕реНрдЯрд╣рд░реВ" рд╣реБрдиреН рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

  1. рдХрдиреНрдЯреЗрдирд░ (рдЕрдиреБрд░реЛрдз) рдХреЛ рд╡рдЬрди рдЫ рд╢реЗрдпрд░рд╣рд░реВ;
  2. рдХрдиреНрдЯреЗрдирд░ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдХреБрд▓ CPU рд╕рдордпрдХреЛ рдкреНрд░рддрд┐рд╢рдд (рд╕реАрдорд╛) рд╣реЛ рдХреЛрдЯрд╛.

CPU рдорд╛рдкрди рдХрд╕рд░реА рдЧрд░реНрдиреЗ?

рддреНрдпрд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН:

  1. рдХреЗ рддреЛрддрд╛, рдХрд╕реИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди - рддрдкрд╛рдИрд▓реЗ рд╣рд░реЗрдХ рдкрдЯрдХ рд╡рд╛рд░реНрддрд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
  2. рдмреНрдпрд╛рдЬ рд╕реНрдкрд╖реНрдЯ, рддрд░ рд╕рд╛рдкреЗрдХреНрд╖: 50 рдХреЛрд░ рд░ 4 рдХреЛрд░ рднрдПрдХреЛ рд╕рд░реНрднрд░рдХреЛ 20% рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдлрд░рдХ рдЪреАрдЬрд╣рд░реВ рд╣реБрдиреНред
  3. рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рддреМрд▓, рдЬреБрди рд▓рд┐рдирдХреНрд╕рд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВ рдкрдирд┐ рд╕рд╛рдкреЗрдХреНрд╖ рдЫрдиреНред
  4. рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рднрдиреЗрдХреЛ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд╕реНрд░реЛрддрд╣рд░реВ рдорд╛рдкрди рдЧрд░реНрдиреБ рд╣реЛ рд╕реЗрдХреЗрдиреНрдбред рддреАред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордпрдХреЛ рд╕реЗрдХреЗрдиреНрдбрдХреЛ рддреБрд▓рдирд╛рдорд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордпрдХреЛ рд╕реЗрдХреЗрдиреНрдбрдорд╛: рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордпрдХреЛ 1 рд╕реЗрдХреЗрдиреНрдб рдкреНрд░рддрд┐ 1 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗрдХреЗрдиреНрдб рджрд┐рдЗрдПрдХреЛ рдерд┐рдпреЛ - рдпреЛ рдПрдХ рд╕рдореНрдкреВрд░реНрдг CPU рдХреЛрд░ рд╣реЛред

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

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

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

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

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

Kubernetes рд░ CPU рд╕реНрд░реЛрддрд╣рд░реВ

Kubernetes рдорд╛, CPU рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдорд╛ рдорд╛рдкрди рдЧрд░рд┐рдиреНрдЫ рдорд┐рд▓рд┐рдбреНрд░рд╛рдХреНрд╕, рдЕрд░реНрдерд╛рддреН 0,001 рдХреЛрд░рд▓рд╛рдИ рдЖрдзрд╛рд░ рд╡рдЬрдирдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдЗрдиреНрдЫред (Linux/cgroups рд╢рдмреНрджрд╛рд╡рд▓реАрдорд╛ рдЙрд╣реА рдХреБрд░рд╛рд▓рд╛рдИ CPU рд╢реЗрдпрд░ рднрдирд┐рдиреНрдЫ, рдпрджреНрдпрдкрд┐, рдЕрдЭ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛, 1000 millicores = 1024 CPU рд╢реЗрдпрд░рд╣рд░реВред) K8s рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рдпрд╕рд▓реЗ рд╕рд░реНрднрд░рдорд╛ рд╕рдмреИ рдкреЛрдбрд╣рд░реВрдХреЛ рд╡рдЬрдирдХреЛ рдпреЛрдЧрдлрд▓рдХреЛ рд▓рд╛рдЧрд┐ CPU рд╕реНрд░реЛрддрд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреА рдкреЛрдбрд╣рд░реВ рд░рд╛рдЦреНрджреИрдиред

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

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

рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрд▓реЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВ (CFS рдЕрдиреБрд╕реВрдЪрдХ) рд░ рд╕реАрдорд╛рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рдЯреНрд░рд╛рдлрд┐рдХ рд▓рд╛рдЗрдЯ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН?):

  • рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рдмрд░рд╛рдмрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЫрдиреН, рддрдм рдкреЛрдбрд▓рд╛рдИ QoS рд╡рд░реНрдЧ рддреЛрдХрд┐рдПрдХреЛ рдЫ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАред рдпреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рдзреИрдВ рдЙрдкрд▓рдмреНрдз рдХреЛрд░ рдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЫред
  • рдпрджрд┐ рдЕрдиреБрд░реЛрдз рд╕реАрдорд╛ рднрдиреНрджрд╛ рдХрдо рдЫ рднрдиреЗ - QoS рд╡рд░реНрдЧ рдлреБрдЯреНрди рдорд┐рд▓реНрдиреЗред рддреАред рд╣рд╛рдореА рдПрдХ рдкреЛрдб рдЖрд╢рд╛ рдЧрд░реНрдЫреМрдВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рдзреИрдВ 1 рдХреЛрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рддрд░ рдпреЛ рдорд╛рди рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕реАрдорд┐рдд рдЫреИрди: рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рдкреЛрдбрд▓реЗ рдердк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ (рдЬрдм рд╕рд░реНрднрд░рдорд╛ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐:рд╢реБрд▓реНрдХ рд╕реНрд░реЛрддрд╣рд░реВ рдЫрдиреН)ред
  • рддреНрдпрд╣рд╛рдБ рдПрдХ QoS рдХрдХреНрд╖рд╛ рдкрдирд┐ рдЫ рдЙрддреНрддрдо рдкреНрд░рдпрд╛рд╕ - рдпрд╕рд▓реЗ рддреА рдзреЗрд░реИ рдкреЛрдбрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдз рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрдиреНрддрд┐рдо рд╕реНрд░реЛрдд рджрд┐рдЗрдиреНрдЫред

рд╕реНрдореГрддрд┐

рдореЗрдореЛрд░реА рд╕рдВрдЧ, рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рдЫ, рддрд░ рдереЛрд░реИ рдлрд░рдХ - рд╕рдмреИ рдкрдЫрд┐, рдпреА рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдкреНрд░рдХреГрддрд┐ рдлрд░рдХ рдЫред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕рдорд╛рдирддрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

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

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдпреЛ рд╕рдБрдзреИ рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рд╣реБрдБрджреИрди, рддреНрдпрд╕реИрд▓реЗ рдХреБрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╣рд╛рдореНрд░рд╛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫрдиреН рд░ рдорд╛рд░реНрдиреБ рд╣реБрдБрджреИрди рднрдиреЗрд░ рдирд┐рдпрдорди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рдпреЛ рдЧрд░реНрди, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН oom_score_adj.

CPU рдХреЛ QoS рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛ рдлрд░реНрдХреМрдВ рд░ oom_score_adj рдорд╛рдирд╣рд░реВрд╕рдБрдЧ рд╕рдорд╛рдирддрд╛ рдХреЛрд░реМрдВ рдЬрд╕рд▓реЗ рдкреЛрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдореЗрдореЛрд░реА рдЦрдкрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ:

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

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рджреЛрд╕реНрд░реЛ "рдЯреНрд╡рд┐рд╕реНрдЯ" - limit_in_bytes - рд╕реАрдорд╛ рдХреЛ рд▓рд╛рдЧреАред рдпрд╕рдХреЛ рд╕рд╛рде, рд╕рдмреИ рдХреБрд░рд╛ рд╕рд░рд▓ рдЫ: рд╣рд╛рдореА рдХреЗрд╡рд▓ рдЬрд╛рд░реА рдореЗрдореЛрд░реАрдХреЛ рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫреМрдВ, рд░ рдпрд╣рд╛рдБ (CPU рдХреЛ рд╡рд┐рдкрд░реАрдд) рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА (рдореЗрдореЛрд░реА) рдорд╛рдкрди рдЧрд░реНрдиреЗ рдХреБрдиреИ рдкреНрд░рд╢реНрди рдЫреИрдиред

рдХреБрд▓

Kubernetes рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдб рджрд┐рдЗрдПрдХреЛ рдЫ requests ╨╕ limits - CPU рд░ рдореЗрдореЛрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рджреБрд╡реИ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ:

  1. рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд, Kubernetes рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛рдо рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рд╕рд░реНрднрд░рд╣рд░реВ рдмреАрдЪ рдкреЛрдбрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрджрдЫ;
  2. рд╕рдмреИ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд, рдкреЛрдбрдХреЛ QoS рд╡рд░реНрдЧ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫ;
  3. рд╕рд╛рдкреЗрдХреНрд╖ рддреМрд▓ CPU рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдиреНрдЫ;
  4. CFS рдЕрдиреБрд╕реВрдЪрдХ CPU рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  5. OOM рдХрд┐рд▓рд░ рдореЗрдореЛрд░реА рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  6. рдПрдХ "рдЯреНрд░рд╛рдлрд┐рдХ рд▓рд╛рдЗрдЯ" CPU рд╕реАрдорд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  7. рдореЗрдореЛрд░реА рд╕реАрдорд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд, cgroup рдХреЛ рд▓рд╛рдЧрд┐ рд╕реАрдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рддрд╕реНрд╡рд┐рд░рд▓реЗ Kubernetes рдорд╛ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдХрд╕рд░реА рд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╕рдмреИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреНрдЫред

рд╕реНрд╡рддрдГ рд╕реНрдХреЗрд▓рд┐рдЩ

K8s рдХреНрд▓рд╕реНрдЯрд░-рдЕрдЯреЛрд╕реНрдХреЗрд▓рд░

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

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдпреЛ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдЩ рд╣реЛ, рдЬрд╕рд▓реЗ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрджрдЫ (рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡рдорд╛)ред рдЬреЗ рд╣реЛрд╕реН, рдЕрдиреНрдпрддреНрд░ рдЬрд╕реНрддреИ, рдпрд╣рд╛рдБ рдХреЗрд╣реА рдмрд╛рд░реАрдХрддрд╛рд╣рд░реВ рдЫрдиреН ...

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

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

  • рдпрд╕ рд╕рд░реНрднрд░рдорд╛ рдирдпрд╛рдБ рдкреЛрдбрд╣рд░реВ рдкрдард╛рдЙрди рдирд┐рд╖реЗрдз рдЧрд░реНрдиреЗрдЫ;
  • рд╕рд░реНрднрд░рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдкреЛрдбрд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреЗрдЫред

рдЪреВрдВрдХрд┐ Kubernetes рдкреЛрдб (6) рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХреЛрдпрдо рд░рд╛рдЦреНрди рдХреЛ рд▓рд╛рдЧреА рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫ, рдпреЛ рд╕рд░рд▓ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗрдЫ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрдиреНрдп рдиреЛрдбрд╣рд░реВрдорд╛, рддрд░ рдЕрд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛрдорд╛ рд╣реЛрдЗрди, рдХрд┐рдирднрдиреЗ рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдирдпрд╛рдБ рдкреЛрдбрд╣рд░реВ рд╣реЛрд╕реНрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдкрд▓рдмреНрдз рднрдиреА рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдПрдХреЛ рдЫред рдпреЛ Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЖрдзрд╛рд░рднреВрдд рдореЗрдХрд╛рдирд┐рдХ рд╣реЛред

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдпрджреНрдпрдкрд┐, рдпрд╣рд╛рдБ рдкрдирд┐ рдПрдХ nuance рдЫред рдЙрд╕реНрддреИ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ (рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдХреЛ рд╕рдЯреНрдЯрд╛), рдХрд╛рд░реНрдпрд╣рд░реВ рдлрд░рдХ рд╣реБрдиреЗрдЫрдиреНред рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЫ - рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, MongoDB рд╕рдБрдЧ рддреАрдирд╡рдЯрд╛ рдкреЛрдбрд╣рд░реВ, рдЬрд╕рдордзреНрдпреЗ рдПрдЙрдЯрд╛рдорд╛ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдорд╕реНрдпрд╛ рдЫ (рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯ рднрдПрдХреЛ рдЫ рд╡рд╛ рдЕрд░реНрдХреЛ рддреНрд░реБрдЯрд┐ рдЬрд╕рд▓реЗ рдкреЛрдбрд▓рд╛рдИ рд╕рд╣реА рд░реВрдкрдорд╛ рд╕реБрд░реБ рд╣реБрдирдмрд╛рдЯ рд░реЛрдХреНрдЫ)ред рд░ рд╣рд╛рдореА рдлреЗрд░рд┐ рдПрдЙрдЯрд╛ рд╕рд░реНрднрд░ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдЫреМрдВред рдХреЗ рд╣реБрдиреЗрдЫ?

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

MongoDB рд╕рдХреНрдЫ рдорд░реНрдиреБрд╣реЛрд╕реН рдХрд┐рдирднрдиреЗ рдпрд╕рд▓рд╛рдИ рдХреЛрд░рдо рдЪрд╛рд╣рд┐рдиреНрдЫ: рддреАрди рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐, рдХрдореНрддрд┐рдорд╛ рджреБрдИ рдХрд╛рд░реНрдп рдЧрд░реНрдиреБрдкрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдпреЛ рднрдЗрд░рд╣реЗрдХреЛ рдЫреИрди - рдзрдиреНрдпрд╡рд╛рдж PodDisruptionBudgetред рдпреЛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреЛрдбрд╣рд░реВрдХреЛ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫред MongoDB рдкреЛрдбрд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдЕрдм рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреИрди рднрдиреНрдиреЗ рдерд╛рд╣рд╛ рдкрд╛рдЙрдБрджрд╛, рд░ MongoDB рдХреЛ рд▓рд╛рдЧрд┐ PodDisruptionBudget рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рджреЗрдЦреЗрд░ minAvailable: 2, Kubernetes рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреЛрдб рдореЗрдЯрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИрдиред

рддрд▓реНрд▓реЛ рд░реЗрдЦрд╛: рдХреНрд▓рд╕реНрдЯрд░ рд░рд┐рд▓рд┐рдЬ рд╣реБрдБрджрд╛ рдкреЛрдбрд╣рд░реВрдХреЛ рдЖрдиреНрджреЛрд▓рди (рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкреБрди: рдирд┐рд░реНрдорд╛рдг) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрди, рдпреЛ PodDisruptionBudget рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рддреЗрд░реНрд╕реЛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ

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

рдЖрдЬ Kubernetes рдорд╛ рдпреЛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди: рдкреЛрдбрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реГрджреНрдзрд┐/рдШрдЯрдирд╛ рдорд╛рдкрди рдЧрд░рд┐рдПрдХреЛ рд▓реЛрдб рд╕реВрдЪрдХрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдкреНрд░рд╢реНрдирд╣рд░реВ рдЫрдиреН: рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗ рдорд╛рдкрди рдЧрд░реНрди ╨╕ рдХрд╕рд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрдиреЗ рдкреНрд░рд╛рдкреНрдд рдорд╛рдирд╣рд░реВ (рдкреЛрдбрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдпрдХреЛ рд▓рд╛рдЧрд┐)ред рддрдкрд╛рдИрдВ рдзреЗрд░реИ рдорд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)

рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛ рдпреЛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ - рдореЗрдЯреНрд░рд┐рдХреНрд╕, рдЖрджрд┐ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред - рдореИрд▓реЗ рдкреНрд░рддрд┐рд╡реЗрджрдирдорд╛ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдмреЛрд▓реЗрдХреЛ рдЫреБ рдирд┐рдЧрд░рд╛рдиреА рд░ Kubernetesред рд░ рдЗрд╖реНрдЯрддрдо рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдЫрдиреМрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдореБрдЦреНрдп рд╕рд▓реНрд▓рд╛рд╣ рд╣реЛ рдкрд░рд┐рдХреНрд╖рдг!

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

рдмрд░реБ рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛ рдХреЛ

рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рдирд┐рд░рдиреНрддрд░рддрд╛ рдЫ: рдард╛рдбреЛ рдорд╛рдкрди рд░ рд╕рд╣реА рд╕реНрд░реЛрддрд╣рд░реВ рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ рдмрд╛рд░реЗред рдо рдпрд╕ рдмрд╛рд░реЗ рднрд╡рд┐рд╖реНрдпрдХрд╛ рднрд┐рдбрд┐рдпреЛрд╣рд░реВрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБ рд╣рд╛рдореНрд░реЛ YouTube - рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдирдЫреБрдЯрд╛рдЙрдиреБрд╣реБрдиреЗрдЫ!

рднрд┐рдбрд┐рдпреЛ рд░ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ

рдкреНрд░рджрд░реНрд╢рдирдмрд╛рдЯ рднрд┐рдбрд┐рдпреЛ (рекрек рдорд┐рдиреЗрдЯ):

рдкреНрд░рддрд┐рд╡реЗрджрди рдкреНрд░рд╕реНрддреБрддрд┐:

PS

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ Kubernetes рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрдиреНрдп рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ:

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

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