Kubernetes рд╕реБрдЭрд╛рд╡ рд░ рдпреБрдХреНрддрд┐рд╣рд░реВ: NGINX рд░ PHP-FPM рдорд╛ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ

Kubernetes рдорд╛ CI/CD рд▓рд╛рдЧреВ рдЧрд░реНрджрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд╕реНрдерд╛: рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд░реЛрдХрд┐рдиреБ рдЕрдШрд┐ рдирдпрд╛рдБ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдирдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫ, рд░ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛, рдЕрд╡рд╕реНрдерд┐рддрд╣рд░реВрд▓рд╛рдИ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

Kubernetes рд╕реБрдЭрд╛рд╡ рд░ рдпреБрдХреНрддрд┐рд╣рд░реВ: NGINX рд░ PHP-FPM рдорд╛ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ

рдпрд╕ рд╕рд░реНрддрдХреЛ рдЕрдиреБрдкрд╛рд▓рдирд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреИрдирд╛рддреАрдХреЛ рд╕рдордпрдорд╛ рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐, рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдиреНрдбрд▓рд╣рд░реВ (рдЬрд╕реНрддреИ NGINX рд░ PHP-FPM) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкрдирд┐, рддрдкрд╛рдИрдВрд▓реЗ рдХрдард┐рдирд╛рдЗрд╣рд░реВрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╡реГрджреНрдзрд┐ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗрдЫред

рд╕рд┐рджреНрдзрд╛рдиреНрддред рдкреЛрдб рдХрд╕рд░реА рдмрд╛рдБрдЪреНрдЫ

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

рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдкрдирд┐ рдпрд╛рдж рдЧрд░реНрдиреБрдкрд░реНрдЫ рдХрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЕрдиреБрдЧреНрд░рд╣ рдЕрд╡рдзрд┐ рд╣реЛ рейреж рд╕реЗрдХреЗрдиреНрдб: рдпрд╕ рдкрдЫрд┐, рдкреЛрдб рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рдпрд╕ рдЕрд╡рдзрд┐ рдЕрдШрд┐ рд╕рдмреИ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдордп рд╣реБрдиреБрдкрд░реНрдЫред рднрдиреНрдиреБ: рдпрджреНрдпрдкрд┐ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреБрд░реЛрдз рдЬрд╕рд▓реЗ 5-10 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдмрдвреА рд▓рд┐рдиреНрдЫ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЫ, рд░ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрд▓реЗ рдЕрдм рдпрд╕рд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрджреИрди ...

рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреЗ рд╣реБрдиреНрдЫ рдЬрдм рдкреЛрдб рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ, рдХреЗрд╡рд▓ рдирд┐рдореНрди рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН:

Kubernetes рд╕реБрдЭрд╛рд╡ рд░ рдпреБрдХреНрддрд┐рд╣рд░реВ: NGINX рд░ PHP-FPM рдорд╛ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ

A1, B1 - рдЪреВрд▓реНрд╣рд╛рдХреЛ рдЕрд╡рд╕реНрдерд╛ рдмрд╛рд░реЗ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ
A2 - рдкреНрд░рд╕реНрдерд╛рди SIGTERM
B2 - рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБрд╣рд░реВрдмрд╛рдЯ рдкреЛрдб рд╣рдЯрд╛рдЙрдБрджреИ
B3 - рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ (рдЕрдиреНрддрдмрд┐рдиреНрджреБрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ)
B4 - iptables рдирд┐рдпрдорд╣рд░реВ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН: рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБ рдкреЛрдб рдореЗрдЯрд╛рдЙрдиреБ рд░ SIGTERM рдкрдард╛рдЙрдиреБ рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рд╣реБрдБрджреИрди, рддрд░ рд╕рдорд╛рдирд╛рдиреНрддрд░рдорд╛ред рд░ рдпрд╕ рддрдереНрдпрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдХрд┐ Ingress рд▓реЗ рддреБрд░реБрдиреНрддреИ рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБрд╣рд░реВрдХреЛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИрди, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдмрд╛рдЯ рдирдпрд╛рдБ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреЛрдбрдорд╛ рдкрдард╛рдЗрдиреЗрдЫ, рдЬрд╕рд▓реЗ рдкреЛрдб рд╕рдорд╛рдкреНрддрд┐рдХреЛ рд╕рдордпрдорд╛ 500 рддреНрд░реБрдЯрд┐ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗрдЫред (рдпрд╕ рдореБрджреНрджрд╛рдорд╛ рдердк рд╡рд┐рд╕реНрддреГрдд рд╕рд╛рдордЧреНрд░реАрдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдЕрдиреБрд╡рд╛рдж)ред рдпреЛ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрди рддрд░рд┐рдХрд╛рдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

  • рдЬрдбрд╛рди рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░рд╣рд░реВрдорд╛ рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдпрджрд┐ рдпреЛ HTTP рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ)ред
  • рдпрджрд┐ рдХреЛрдбрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫреИрди рднрдиреЗ, рдирд┐рдореНрди рд▓реЗрдЦрд▓реЗ рд╕рдорд╛рдзрд╛рдирдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдиреБрдЧреНрд░рд╣рдкреВрд░реНрдг рдЕрд╡рдзрд┐рдХреЛ рдЕрдиреНрддреНрдп рд╕рдореНрдо рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

рд╕рд┐рджреНрдзрд╛рдиреНрддред рдХрд╕рд░реА NGINX рд░ PHP-FPM рд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рдорд╛рдкреНрдд рдЧрд░реНрджрдЫ

NGINX

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

рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рд╕рд░рд▓ рдЫ: рддрдкрд╛рдИрдВ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ preStop-рд╣реБрдХ рдПрдЙрдЯрд╛ рдЖрджреЗрд╢ рдЬрд╕рд▓реЗ рд╕реБрдиреНрджрд░ рдмрдиреНрдж рд╕рдВрдХреЗрдд рдкрдард╛рдЙрдиреЗрдЫред рдпреЛ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдорд╛, рдХрдиреНрдЯреЗрдирд░ рдмреНрд▓рдХрдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

       lifecycle:
          preStop:
            exec:
              command:
              - /usr/sbin/nginx
              - -s
              - quit

рдЕрдм, рдЬрдм рдкреЛрдб рдмрдиреНрдж рд╣реБрдиреНрдЫ, рд╣рд╛рдореА NGINX рдХрдиреНрдЯреЗрдирд░ рд▓рдЧрд╣рд░реВрдорд╛ рдирд┐рдореНрди рджреЗрдЦреНрдиреЗрдЫреМрдВ:

2018/01/25 13:58:31 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
2018/01/25 13:58:31 [notice] 11#11: gracefully shutting down

рд░ рдпрд╕рдХреЛ рдорддрд▓рдм рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ: NGINX рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреВрд░рд╛ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдорд╛рд░реНрдЫред рдпрджреНрдпрдкрд┐, рддрд▓ рд╣рд╛рдореА рдПрдХ рд╕рд╛рдЭрд╛ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВ рдЬрд╕рдХреЛ рдХрд╛рд░рдг, рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдкрдирд┐ nginx -s quit рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд▓рдд рддрд░рд┐рдХрд╛рд▓реЗ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫред

рд░ рдпрд╕ рдЪрд░рдгрдорд╛ рд╣рд╛рдореАрд▓реЗ NGINX рд╕рдБрдЧ рдХрд╛рдо рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВ: рдХрдореНрддрд┐рдорд╛ рд▓рдЧрд╣рд░реВрдмрд╛рдЯ рддрдкрд╛рдИрд▓реЗ рдмреБрдЭреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рд╕рдмреИ рдХреБрд░рд╛рд▓реЗ рдЬрд╕реНрддреИ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫред

PHP-FPM рд╕рдБрдЧ рдХреЗ рд╕рдореНрдЭреМрддрд╛ рдЫ? рдпрд╕рд▓реЗ рдХрд╕рд░реА рдЖрдХрд░реНрд╖рдХ рдмрдиреНрдж рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдЫ? рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реМрдВред

PHP-FPM

PHP-FPM рдХреЛ рдорд╛рдорд▓рд╛ рдорд╛, рддреНрдпрд╣рд╛рдБ рдЕрд▓рд┐ рдХрдо рдЬрд╛рдирдХрд╛рд░реА рдЫред рдпрджрд┐ рддрдкрд╛рдИрдВ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореНрдпрд╛рдиреБрдЕрд▓ PHP-FPM рдХреЛ рдЕрдиреБрд╕рд╛рд░, рдпрд╕рд▓реЗ рдирд┐рдореНрди POSIX рд╕рдВрдХреЗрддрд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреНрджрдЫ:

  1. SIGINT, SIGTERM - рдЫрд┐рдЯреЛ рдмрдиреНрдж;
  2. SIGQUIT - рд╕реБрдиреНрджрд░ рдмрдиреНрдж (рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ)ред

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

        lifecycle:
          preStop:
            exec:
              command:
              - /bin/kill
              - -SIGQUIT
              - "1"

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

рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХреЛ рд╕рд╛рде рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ

NGINX

рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рдпреЛ рд╕рдореНрдЭрдирд╛ рдЙрдкрдпреЛрдЧреА рдЫ: рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд nginx -s quit рддреНрдпрд╣рд╛рдБ рдПрдХ рдЕрд░реНрдХреЛ рдЪрд░рдг рд╣реЛ рдЬреБрди рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫред рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдпреМрдВ рдЬрд╣рд╛рдБ NGINX рд▓реЗ рдЕрдЭреИ рдкрдирд┐ SIGQUIT рд╕рдВрдХреЗрддрдХреЛ рд╕рдЯреНрдЯрд╛ SIGTERM рдкрдард╛рдЙрдиреЗрдЫ, рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕рд╣реА рд░реВрдкрдорд╛ рдкреВрд░рд╛ рд╣реБрди рд╕рдХреЗрдирдиреНред рдЙрд╕реНрддреИ рдШрдЯрдирд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╣рд╛рдБред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рд╛рдореА рдпреЛ рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЕрд╕рдорд░реНрде рдерд┐рдпреМрдВ: NGINX рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╢рдВрдХрд╛ рдерд┐рдпреЛ, рддрд░ рдпреЛ рдкреБрд╖реНрдЯрд┐ рднрдПрдиред рд▓рдХреНрд╖рдг рдпреЛ рдерд┐рдпреЛ рдХрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ NGINX рдХрдиреНрдЯреЗрдирд░ рд▓рдЧрд╣рд░реВрдорд╛ рдЕрд╡рд▓реЛрдХрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ: "рдЦреБрд▓рд╛ рд╕рдХреЗрдЯ #10 рдЬрдбрд╛рди 5 рдорд╛ рдмрд╛рдпрд╛рдБ"рддреНрдпрд╕рдкрдЫрд┐ рдкреЛрдб рд░реЛрдХрд┐рдпреЛред

рд╣рд╛рдореА рдпрд╕реНрддреЛ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреНрди рд╕рдХреНрдЫреМрдВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЗрдиреНрдЧреНрд░реЗрд╕рдорд╛ рд╣рд╛рдореАрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдмрд╛рдЯ:

Kubernetes рд╕реБрдЭрд╛рд╡ рд░ рдпреБрдХреНрддрд┐рд╣рд░реВ: NGINX рд░ PHP-FPM рдорд╛ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ
рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рд╕рдордпрдорд╛ рд╕реНрдерд┐рддрд┐ рдХреЛрдбрд╣рд░реВрдХреЛ рд╕реВрдЪрдХрд╣рд░реВ

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореАрд▓реЗ Ingress рдмрд╛рдЯ рдорд╛рддреНрд░ 503 рддреНрд░реБрдЯрд┐ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ: рдпрд╕рд▓реЗ NGINX рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрджреИрди, рдХрд┐рдирдХрд┐ рдпреЛ рдЕрдм рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рдЫреИрдиред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ NGINX рд╕рдБрдЧ рдХрдиреНрдЯреЗрдирд░ рд▓рдЧрд╣рд░реВ рд╣реЗрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрдорд╛ рдирд┐рдореНрди рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН:

[alert] 13939#0: *154 open socket #3 left in connection 16
[alert] 13939#0: *168 open socket #6 left in connection 13

рд╕реНрдЯрдк рд╕рд┐рдЧреНрдирд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрдкрдЫрд┐, рдХрдиреНрдЯреЗрдирд░ рд╕рд╣реА рд░реВрдкрдорд╛ рд░реЛрдХреНрди рд╕реБрд░реБ рд╣реБрдиреНрдЫ: рдпреЛ 503 рддреНрд░реБрдЯрд┐ рдЕрдм рджреЗрдЦрд┐рдиреЗ рдЫреИрди рднрдиреНрдиреЗ рддрдереНрдп рджреНрд╡рд╛рд░рд╛ рдкреБрд╖реНрдЯрд┐ рд╣реБрдиреНрдЫред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХрдиреНрдЯреЗрдирд░рдорд╛ рдХреБрди рд╕реНрдЯрдк рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкреНрд░рд┐рд╕реНрдЯрдк рд╣реБрдХ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рд▓реЗ рдЕрд░реНрде рджрд┐рдиреНрдЫред рдпреЛ рдПрдХрджрдо рд╕рдореНрднрд╡ рдЫ рдХрд┐ рдХрд╛рд░рдг рдпреЛ рдареАрдХ рдЫред

PHP-FPM... рд░ рдердк

PHP-FPM рдХреЛ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдорд╛рдореВрд▓реА рддрд░рд┐рдХрд╛рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ: рдпрд╕рд▓реЗ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкреВрд░рд╛ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрджреИрди, рдпрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдорд╛рдкреНрдд рдЧрд░реНрджрдЫ, рдпрд╕реИрд▓реЗ рддреИрдирд╛рддреА рд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрджрд╛ 502 рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реБрдиреНрдЫрдиреНред 2005 рджреЗрдЦрд┐ bugs.php.net рдорд╛ рдзреЗрд░реИ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ рдЫрдиреН (рдЬрд╕реНрддреИ рдпрд╣рд╛рдБ ╨╕ рдпрд╣рд╛рдБ), рдЬрд╕рд▓реЗ рдпрд╕ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рддрд░ рддрдкрд╛рдИрд▓реЗ рд▓рдЧрдорд╛ рдХреЗрд╣рд┐ рдкрдирд┐ рджреЗрдЦреНрдиреБрд╣реБрдиреЗ рдЫреИрди: PHP-FPM рд▓реЗ рдХреБрдиреИ рддреНрд░реБрдЯрд┐ рд╡рд╛ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╕реВрдЪрдирд╛рд╣рд░реВ рдмрд┐рдирд╛ рдпрд╕рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░рд╛ рднрдПрдХреЛ рдШреЛрд╖рдгрд╛ рдЧрд░реНрдиреЗрдЫред

рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЖрдлреИрдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдХрдо рд╡рд╛ рдзреЗрд░реИ рд╣рджрд╕рдореНрдо рдирд┐рд░реНрднрд░ рд╣реБрди рд╕рдХреНрдЫ рд░ рдЖрдлреИрд▓рд╛рдИ рдкреНрд░рдХрдЯ рдирд╣реБрди рд╕рдХреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдирд┐рдЧрд░рд╛рдиреАрдорд╛ред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдорд╛рдзрд╛рди рдкрд╣рд┐рд▓реЗ рджрд┐рдорд╛рдЧрдорд╛ рдЖрдЙрдБрдЫ: рдПрдХ preStop рд╣реБрдХ рдердкреНрдиреБрд╣реЛрд╕реН sleep(30)ред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗрдХрд╛ рд╕рдмреИ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ (рд░ рд╣рд╛рдореА рдкреЛрдбрдмрд╛рдЯ рдирдпрд╛рдБрд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджреИрдиреМрдВ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдХреНрд╖рдо рдЯрд░реНрдорд┐рдиреЗрдЯрд┐рдЩреН), рд░ 30 рд╕реЗрдХреЗрдиреНрдб рдкрдЫрд┐ рдкреЛрдб рдЖрдлреИ рдПрдХ рд╕рдВрдХреЗрдд рд╕рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫ SIGTERM.

рдпрд╕рд▓реЗ рддреНрдпрд╕рдмрд╛рдЯ рд╣рдЯрд╛рдЙрдБрдЫ lifecycle рдХрдиреНрдЯреЗрдирд░рдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

    lifecycle:
      preStop:
        exec:
          command:
          - /bin/sleep
          - "30"

рддрд░, рейреж рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдХрд╛рд░рдгрд▓реЗ sleep рд╣рд╛рдореА рдХрдбрд╛ рд╣рд╛рдореА рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕рдордп рдмрдврд╛рдЙрдиреЗрдЫреМрдВ, рдХрд┐рдирдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдб рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫ рдиреНрдпреВрдирддрдо 30 рд╕реЗрдХреЗрдиреНрдб, рдЬреБрди рдЦрд░рд╛рдм рдЫред рдпрд╕ рдмрд╛рд░реЗ рдХреЗ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?

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

рдпрд╕ рдЬреНрдЮрд╛рдирдХреЛ рд╕рд╛рде, рд╣рд╛рдореНрд░реЛ рдЕрдиреНрддрд┐рдо рд╕рдорд╕реНрдпрд╛рдорд╛ рдлрд░реНрдХреМрдВред рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдЭреИрдВ, Kubernetes рдПрдХ рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛрдЗрди: рдпрд╕рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХрд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдЮреНрдЪрд╛рд░рд▓реЗ рдХреЗрд╣реА рд╕рдордп рд▓рд┐рдиреНрдЫред рдпреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╕рддреНрдп рд╣реЛ рдЬрдм рд╣рд╛рдореА Ingresses рд░ рдЕрдиреНрдп рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдЕрдкрд░реЗрд╢рдирд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдЫреМрдВ, рдХрд┐рдирдХрд┐ рддреИрдирд╛рддреАрдХреЛ рд╕рдордпрдорд╛ рдпрд╕реНрддреЛ рдврд┐рд▓рд╛рдЗрдХреЛ рдХрд╛рд░рдгрд▓реЗ 500 рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╡реГрджреНрдзрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЕрдкрд╕реНрдЯреНрд░реАрдордорд╛ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдиреЗ рдЪрд░рдгрдорд╛ рддреНрд░реБрдЯрд┐ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдмреАрдЪрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ "рд╕рдордп рдврд┐рд▓рд╛рдЗ" рдПрдХрджрдо рдЫреЛрдЯреЛ рдЫ - рдПрдХ рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдоред

рддреНрдпрд╕рдХрд╛рд░рдг, рдЬрдореНрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдирд┐рд░реНрджреЗрд╢рдирдХреЛ рд╕рд╛рде process_control_timeout рддрдкрд╛рдИрдВ рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ lifecycle:

lifecycle:
  preStop:
    exec:
      command: ["/bin/bash","-c","/bin/sleep 1; kill -QUIT 1"]

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдврд┐рд▓рд╛рдЗрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдЧрд░реНрдиреЗрдЫреМрдВ sleep рд░ рддреИрдирд╛рддреА рд╕рдордп рдзреЗрд░реИ рдирдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН: рдХреЗ рддреНрдпрд╣рд╛рдБ 30 рд╕реЗрдХреЗрдиреНрдб рд░ рдПрдХ рдмреАрдЪрдХреЛ рдлрд░рдХ рдлрд░рдХ рдЫ?... рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рд╣реЛ process_control_timeoutрд░ lifecycle рдврд┐рд▓реЛ рднрдПрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдорд╛рддреНрд░ "рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рд▓" рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рд░ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдорд╛рдзрд╛рди PHP-FPM рдорд╛ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдБрджреИрдиред рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВ/рдврд╛рдБрдЪрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдПрдХ рд╡рд╛ рдЕрд░реНрдХреЛ рд░реВрдкрдорд╛ рдЙрддреНрдкрдиреНрди рд╣реБрди рд╕рдХреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЕрдиреНрдп рддрд░рд┐рдХрд╛рд╣рд░реВрдорд╛ рд╕реБрдиреНрджрд░ рдмрдиреНрджрд▓рд╛рдИ рдареАрдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди - рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреЛрдб рдкреБрди: рд▓реЗрдЦреЗрд░ рддрд╛рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рд╕рдорд╛рдкреНрддрд┐ рд╕рдВрдХреЗрддрд╣рд░реВ рд╕рд╣реА рд░реВрдкрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫ - рддрдкрд╛рдЗрдБ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрдиреНрджрд░ рдирд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдпреЛ рдХрд╛рдо рдЧрд░реНрджрдЫред

рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкреЛрдбрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдЬрд╛рдБрдЪ рдЧрд░реНрди рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг

рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХрдиреНрдЯреЗрдирд░рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛ, рдХрд┐рдирднрдиреЗ рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕рд╛рдЗрдЯ рднреНрд░рдордг рдЧрд░реНрджрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдбрд╛рдИ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдХреЛ рдирдЬрд┐рдХ рд▓реНрдпрд╛рдЙрдБрдЫред рдорд╛рдерд┐рдХрд╛ рд╕рд┐рдлрд╛рд░рд┐рд╕рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди, рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Yandex.Tankom: рдпрд╕рд▓реЗ рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдореЗрдЯреНрдЫред Grafana рд░ Yandex.Tank рдХреЛ рдЧреНрд░рд╛рдлрд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡рдмрд╛рдЯ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рдореНрди рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд░ рд╕рд┐рдлрд╛рд░рд┐рд╕рд╣рд░реВ рдЫрдиреНред

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

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

рддреНрдпрд╕реИрд▓реЗ, рдкрд╣рд┐рд▓реЛ рдЯреЗрд╕реНрдЯ рд░рди рдмрд┐рдирд╛ рднрдПрдХреЛ рдерд┐рдпреЛ lifecycle рд░ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕рд░реНрднрд░рдХрд╛ рд▓рд╛рдЧрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдмрд┐рдирд╛ (process_control_timeout PHP-FPM рдорд╛)ред рдпрд╕ рдкрд░реАрдХреНрд╖рдгрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдВрдЦреНрдпрд╛ (рд░ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЫ рдХрд┐ рдЫреИрди) рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреБ рдерд┐рдпреЛред рд╕рд╛рдереИ, рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реАрдмрд╛рдЯ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрджрдЫ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдФрд╕рдд рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕рдордп рд▓рдЧрднрдЧ 5-10 рд╕реЗрдХреЗрдиреНрдб рдерд┐рдпреЛ рдЬрдмрд╕рдореНрдо рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рддрдпрд╛рд░ рд╣реБрдБрджреИрдиред рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╣реБрдиреН:

Kubernetes рд╕реБрдЭрд╛рд╡ рд░ рдпреБрдХреНрддрд┐рд╣рд░реВ: NGINX рд░ PHP-FPM рдорд╛ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ

Yandex.Tank рд╕реВрдЪрдирд╛ рдкреНрдпрд╛рдирд▓рд▓реЗ 502 рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕реНрдкрд╛рдЗрдХ рджреЗрдЦрд╛рдЙрдБрдЫ, рдЬреБрди рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдХреЛ рд╕рдордпрдорд╛ рднрдПрдХреЛ рдерд┐рдпреЛ рд░ рдФрд╕рддрдорд╛ 5 рд╕реЗрдХреЗрдиреНрдбрд╕рдореНрдо рдЪрд▓реЗрдХреЛ рдерд┐рдпреЛред рд╕рдореНрднрд╡рддрдГ рдпреЛ рдХрд┐рдирднрдиреЗ рдкреБрд░рд╛рдиреЛ рдкреЛрдбрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕рдорд╛рдкреНрдд рдЧрд░рд┐рдБрджреИ рдерд┐рдпреЛ рдЬрдм рдпреЛ рд╕рдорд╛рдкреНрдд рднрдЗрд░рд╣реЗрдХреЛ рдерд┐рдпреЛред рдпрд╕ рдкрдЫрд┐, 503 рддреНрд░реБрдЯрд┐рд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ, рдЬреБрди рд░реЛрдХрд┐рдПрдХреЛ NGINX рдХрдиреНрдЯреЗрдирд░рдХреЛ рдкрд░рд┐рдгрд╛рдо рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЬрдбрд╛рдирд╣рд░реВ рдкрдирд┐ рдЫреЛрдбреНрдпреЛ (рдЬрд╕рд▓реЗ рдпрд╕рдорд╛ рдЬрдбрд╛рди рд╣реБрдирдмрд╛рдЯ рдЗрдиреНрдЧреНрд░реЗрд╕рд▓рд╛рдИ рд░реЛрдХреЗрдХреЛ рдерд┐рдпреЛ)ред

рдХрд╕рд░реА рд╣реЗрд░реМрдВ process_control_timeout PHP-FPM рдорд╛ рд╣рд╛рдореАрд▓рд╛рдИ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкреВрд░рд╛ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ, рдЕрд░реНрдерд╛рддреНред рдпрд╕реНрддрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдЪреНрдпрд╛рдЙрдиреБрд╣реЛрд╕реНред рдпреЛ рдирд┐рд░реНрджреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреБрди: рддреИрдирд╛рддреА рдЧрд░реНрдиреБрд╣реЛрд╕реН:

Kubernetes рд╕реБрдЭрд╛рд╡ рд░ рдпреБрдХреНрддрд┐рд╣рд░реВ: NGINX рд░ PHP-FPM рдорд╛ рдЖрдХрд░реНрд╖рдХ рдмрдиреНрджрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ

500th рддреИрдирд╛рддреА рдХреЛ рд╕рдордпрдорд╛ рдХреБрдиреИ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдЫреИрдирдиреН! рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдлрд▓ рдЫ, рдЖрдХрд░реНрд╖рдХ рдмрдиреНрдж рдХрд╛рдо рдЧрд░реНрджрдЫред

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

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

рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╕рдорд╛рдкреНрдд рдЧрд░реНрди, рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рдирд┐рдореНрди рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрдЫреМрдВ:

  1. рдХреЗрд╣реА рд╕реЗрдХреЗрдиреНрдб рдкрд░реНрдЦрдиреБрд╣реЛрд╕реН рд░ рддреНрдпрд╕рдкрдЫрд┐ рдирдпрд╛рдБ рдЬрдбрд╛рдирд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рд░реЛрдХреНрдиреБрд╣реЛрд╕реНред
  2. рд╕рдмреИ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреВрд░рд╛ рд╣реБрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреБрд╣реЛрд╕реН рд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирдЧрд░реНрдиреЗ рд╕рдмреИ Keepalive рдЬрдбрд╛рдирд╣рд░реВ рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  3. рддрдкрд╛рдЗрдБрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

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

  • рдкреНрд░рд┐-рд╕реНрдЯрдк рд╣реБрдХ рдердкреНрджреИ рдЬреБрди рдХреЗрд╣рд┐ рд╕реЗрдХреЗрдиреНрдб рдкрд░реНрдЦрдиреЗрдЫ;
  • рдЙрдкрдпреБрдХреНрдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рдЕрдзреНрдпрдпрди рдЧрд░реНрджреИред

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

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

рд▓реЗрдЦрдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рдЬрд╡рд╛рдлрдорд╛: рдпреЛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЫ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдпрд╣рд╛рдБ NGINX Ingress рдХреЛ рд╕рдореНрдмрдиреНрдзрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдЕрдиреНрдп рдХреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддреНрдпрд╣рд╛рдБ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдЫрдиреН, рдЬреБрди рд╣рд╛рдореА рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрдорд╛ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

PS

K8s рд╕реБрдЭрд╛рд╡ рд░ рдЪрд╛рд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрд╛рдЯ рдЕрдиреНрдп:

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

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