Kubernetesμμ CI/CDλ₯Ό ꡬνν λ μΌλ°μ μΈ μ‘°κ±΄μ μ ν리μΌμ΄μ μ΄ μμ ν μ€μ§λκΈ° μ κΉμ§λ μλ‘μ΄ ν΄λΌμ΄μΈνΈ μμ²μ μλ½νμ§ μμμΌ νλ©°, κ°μ₯ μ€μν κ²μ κΈ°μ‘΄ μμ²μ μ±κ³΅μ μΌλ‘ μλ£ν΄μΌ νλ€λ κ²μ λλ€.

μ΄ μ‘°κ±΄μ μ€μνλ©΄ λ°°ν¬ μ€ λ€μ΄νμμ μ΅μνν μ μμ΅λλ€. νμ§λ§ NGINXλ PHP-FPMκ³Ό κ°μ΄ λ리 μ¬μ©λλ λ²λ€μ μ¬μ©νλλΌλ λ°°ν¬ν λλ§λ€ μ€λ₯κ° κΈμ¦νλ λ¬Έμ μ μ§λ©΄ν μ μμ΅λλ€.
μ΄λ‘ . ν¬λμ μν λ°©μ
μ°λ¦¬λ μ΄λ―Έ ν¬λ μλͺ μ£ΌκΈ°μ λν μμΈν κΈ°μ¬λ₯Ό κ²μνμ΅λλ€. . κ³ λ € μ€μΈ μ£Όμ μ λ§₯λ½μμ μ°λ¦¬λ λ€μ μ¬νμ κ΄μ¬μ΄ μμ΅λλ€. ν¬λκ° μνμ μ§μ νλ μκ° μ’ λ£ μ€, μλ‘μ΄ μμ²μ΄ λ μ΄μ μ μ‘λμ§ μμ΅λλ€(pod (μλΉμ€μ μλν¬μΈνΈ λͺ©λ‘μμ) λ°λΌμ λ°°ν¬ μ€ κ°λ μ€μ§ μκ°μ λ°©μ§νλ €λ©΄ μ ν리μΌμ΄μ μ μ¬λ°λ₯΄κ² μ€μ§νλ λ¬Έμ λ₯Ό ν΄κ²°νλ κ²μΌλ‘ μΆ©λΆν©λλ€.
λν κΈ°λ³Έ μ μ κΈ°κ°μ λ€μκ³Ό κ°λ€λ μ λ κΈ°μ΅ν΄μΌ ν©λλ€. : μ΄νμλ ν¬λκ° μ’ λ£λκ³ , μ ν리μΌμ΄μ μ μ΄ κΈ°κ° μ μ λͺ¨λ μμ²μ μ²λ¦¬ν μκ°μ΄ νμν©λλ€. μ£Όμ: μ€ννλ λ° 5~10μ΄ μ΄μ 걸리λ 쿼리λ μ΄λ―Έ λ¬Έμ κ° μλ κ²μ΄κ³ , μ μμ μΈ μ’ λ£λ‘λ ν΄κ²°λμ§ μμ΅λλ€.
ν¬λκ° μ’ λ£λ λ μ΄λ€ μΌμ΄ μΌμ΄λλμ§ λ μ μ΄ν΄νλ €λ©΄ λ€μ λ€μ΄μ΄κ·Έλ¨μ μ΄ν΄λ³΄μΈμ.

A1, B1 - ν¬λ μν λ³κ²½ μμ
A2 - SIGTERM μ μ‘
B2 - μλν¬μΈνΈμμ ν¬λ μ κ±°
B3 - λ³κ²½ μ¬ν μμ (μλν¬μΈνΈ λͺ©λ‘μ΄ λ³κ²½λ¨)
B4 - iptables κ·μΉ μ
λ°μ΄νΈ
μ°Έκ³ : νλ μλν¬μΈνΈ μμ λ° SIGTERM μ μ‘μ μμ°¨μ μΌλ‘ μ΄λ£¨μ΄μ§μ§ μκ³ λ³λ ¬λ‘ μ§νλ©λλ€. λν Ingressκ° μ λ°μ΄νΈλ μλν¬μΈνΈ λͺ©λ‘μ μ¦μ μμ νμ§ μκΈ° λλ¬Έμ ν΄λΌμ΄μΈνΈμ μλ‘μ΄ μμ²μ΄ νλλ‘ μ μ‘λμ΄ νλ μ’ λ£ μ 500 μ€λ₯κ° λ°μν©λλ€. (μ°λ¦¬λ μ΄ λ¬Έμ μ λν΄ λ μμΈν μλ£λ₯Ό κ°μ§κ³ μμ΅λλ€. )μ΄ λ¬Έμ λ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ ν΄κ²°ν΄μΌ ν©λλ€.
- μ°κ²° 보λ΄κΈ°: μλ΅ ν€λμμ λ«μ΅λλ€(HTTP μ ν리μΌμ΄μ μ μ μ©λλ κ²½μ°).
- μ½λλ₯Ό λ³κ²½ν μ μλ κ²½μ°, μ΄ λ¬Έμμμλ μ μ κΈ°κ°μ΄ λλ λκΉμ§ μμ²μ μ²λ¦¬ν μ μλ μ루μ μ μμΈν μ€λͺ ν©λλ€.
μ΄λ‘ : NGINXμ PHP-FPMμ΄ νλ‘μΈμ€λ₯Ό μ’ λ£νλ λ°©λ²
NGINX
NGINXλΆν° μμν΄ λ³΄κ² μ΅λλ€. NGINXμμλ λͺ¨λ κ²μ΄ μ΄λ μ λ λͺ
ννκΈ° λλ¬Έμ
λλ€. μ΄λ‘ μ μμΈν μ΄ν΄λ³΄λ©΄ NGINXμλ νλμ λ§μ€ν° νλ‘μΈμ€μ μ¬λ¬ κ°μ "μ컀"κ° μλ€λ κ²μ μ μ μμ΅λλ€. μ컀λ ν΄λΌμ΄μΈνΈ μμ²μ μ²λ¦¬νλ μμ νλ‘μΈμ€μ
λλ€. νΈλ¦¬ν μ΅μ
μ λ€μ λͺ
λ Ήμ μ¬μ©νλ κ²μ
λλ€. nginx -s <SIGNAL> λΉ λ₯Έ μ’
λ£ λͺ¨λ λλ μ°μν μ’
λ£ λͺ¨λλ‘ νλ‘μΈμ€λ₯Ό μ’
λ£ν©λλ€. λΉμ°ν νμμ κ΄μ¬μ΄ μμ΅λλ€.
κ·Έλ¬λ©΄ λͺ¨λ κ²μ΄ κ°λ¨ν©λλ€. μΆκ°ν΄μΌ ν©λλ€. μ μμ μΈ μ’ λ£ μ νΈλ₯Ό 보λ΄λ λͺ λ Ήμ λλ€. μ΄ μμ μ λ°°ν¬ νλ‘μΈμ€μ 컨ν μ΄λ λΈλ‘μμ μνν μ μμ΅λλ€.
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μ μ΄λ€ κΈ°λ₯μ ν κΉμ? μ μμ μΈ μ’ λ£(graceful shutdown)λ μ΄λ»κ² μ²λ¦¬ν κΉμ? ν¨κ» μμλ³΄κ² μ΅λλ€.
PHP-FPM
PHP-FPMμ κ²½μ° μ λ³΄κ° μ‘°κΈ λΆμ‘±ν©λλ€. PHP-FPMμμλ λ€μ POSIX μ νΈκ° νμ©λλ€λ λ©μμ§κ° νμλ©λλ€.
-
SIGINT,SIGTERMβ λΉ λ₯Έ μ’ λ£ -
SIGQUITβ μ°μν μ’ λ£(μ°λ¦¬μκ² νμν κ²).
λλ¨Έμ§ μ νΈλ μ΄ μμ μ νμνμ§ μμΌλ―λ‘ λΆμμ 건λλ°κ² μ΅λλ€. νλ‘μΈμ€λ₯Ό μ¬λ°λ₯΄κ² μλ£νλ €λ©΄ λ€μκ³Ό κ°μ preStop νν¬λ₯Ό μμ±ν΄μΌ ν©λλ€.
lifecycle:
preStop:
exec:
command:
- /bin/kill
- -SIGQUIT
- "1"μΈλ» 보기μλ λ 컨ν μ΄λ λͺ¨λμμ μ μ μ’ λ£λ₯Ό μννλ λ° νμν λͺ¨λ μμ μ΄ μλ£λμμ΅λλ€. νμ§λ§ μ€μ μμ μ λ³΄κΈ°λ³΄λ€ ν¨μ¬ 볡μ‘ν©λλ€. μλλ μ μ μ’ λ£κ° μ λλ‘ μλνμ§ μμ λ°°ν¬ μ€μ νλ‘μ νΈλ₯Ό μΌμμ μΌλ‘ μ¬μ©ν μ μκ² λ λ κ°μ§ μ¬λ‘μ λλ€.
μ°μ΅. μ μμ μΈ μ’ λ£ μ λ°μν μ μλ λ¬Έμ
NGINX
μ°μ , λͺ
λ Ήμ μ€ννλ κ² μΈμλ λ€μ μ¬νμ κΈ°μ΅νλ κ²μ΄ μ μ©ν©λλ€. nginx -s quit μ£Όμν΄μΌ ν λ¨κ³κ° νλ λ μμ΅λλ€. NGINXκ° SIGQUIT μ νΈλ₯Ό 보λ΄λ λμ SIGTERM μ νΈλ₯Ό λ³΄λ΄ μμ²μ΄ μ λλ‘ μλ£λμ§ μλ λ¬Έμ κ° λ°μνμ΅λλ€. μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ μ μ¬ν μ¬λ‘κ° μμ΅λλ€. . μνκΉκ²λ μ΄ λμμ ꡬ체μ μΈ μμΈμ νμ
ν μ μμμ΅λλ€. NGINX λ²μ κ΄λ ¨ μμ¬μ μμμ§λ§, νμΈλμ§λ μμμ΅λλ€. NGINX 컨ν
μ΄λ λ‘κ·Έμμ λ€μκ³Ό κ°μ λ©μμ§κ° κ΄μ°°λμμ΅λλ€. "μ°κ²° 10μ μ΄λ¦° μμΌ #5μ΄ λ¨μ μμ΅λλ€", κ·Έ ν ν¬λκ° λ©μ·μ΅λλ€.
μλ₯Ό λ€μ΄, Ingressμ λν μλ΅μμ μ΄λ¬ν λ¬Έμ λ₯Ό κ΄μ°°ν μ μμ΅λλ€.

λ°°ν¬ μμ μ μν μ½λ νμκΈ°
μ΄ κ²½μ° 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 μ€λ₯κ° λ μ΄μ κ΄μ°°λμ§ μλλ€λ μ¬μ€λ‘ νμΈλ©λλ€.
λΉμ·ν λ¬Έμ κ° λ°μνλ©΄ 컨ν μ΄λμ μ΄λ€ μ’ λ₯μ μ μ§ μ νΈκ° μ¬μ©λμλμ§, κ·Έλ¦¬κ³ preStop νν¬κ° μ νν μ΄λ»κ² μκ²Όλμ§ νμ νλ κ²μ΄ μ’μ΅λλ€. μλ§λ μ΄κ²μ΄ μμΈμΌ κ°λ₯μ±μ΄ λμ΅λλ€.
PHP-FPMβ¦ λ° κΈ°ν
PHP-FPMμ λ¬Έμ μ μ κ°λ¨νκ² μ€λͺ ν μ μμ΅λλ€. μμ νλ‘μΈμ€κ° μλ£λ λκΉμ§ κΈ°λ€λ¦¬μ§ μκ³ μ’ λ£μμΌ λ°°ν¬ λ° κΈ°ν μμ μ€μ 502 μ€λ₯λ₯Ό λ°μμν΅λλ€. bugs.php.netμλ 2005λ λΆν° μ¬λ¬ λ²κ·Έ 리ν¬νΈκ° κ²μλμ΄ μμ΅λλ€(μ: ΠΈ ), λ¬Έμ λ₯Ό μ€λͺ νλ λ΄μ©μ΄ μμ΅λλ€. νμ§λ§ λ‘κ·Έμλ μ무κ²λ νμλμ§ μμ κ°λ₯μ±μ΄ λμ΅λλ€. PHP-FPMμ μ€λ₯λ νμ¬ μλ¦Ό μμ΄ νλ‘μΈμ€ μλ£λ₯Ό μ립λλ€.
λ¬Έμ μ체λ μ ν리μΌμ΄μ
μ체μ λ°λΌ λ€μ λ¬λΌμ§ μ μμΌλ©°, μλ₯Ό λ€μ΄ λͺ¨λν°λ§μμ λνλμ§ μμ μλ μλ€λ μ μ λͺ
νν ν΄λλ κ²μ΄ μ’μ΅λλ€. λ¬Έμ κ° λ°μνλ©΄ λ¨Όμ κ°λ¨ν ν΄κ²° λ°©λ²μ΄ λ μ€λ¦
λλ€. preStop νν¬λ₯Ό μΆκ°νλ κ²μ
λλ€. sleep(30). μ΄λ₯Ό ν΅ν΄ μ΄μ μ μνλ λͺ¨λ μμ²μ μλ£ν μ μμ΅λλ€(κ·Έλ¦¬κ³ podκ° μλ‘μ΄ μμ²μ μλ½νμ§ μμΌλ―λ‘). μ΄λ―Έ ν μ μλ μ’
λ£ μ€), κ·Έλ¦¬κ³ 30μ΄ νμ ν¬λ μμ²΄κ° μ νΈμ ν¨κ» μ’
λ£λ©λλ€. SIGTERM.
κ·Έκ²μ λ°ν κ·Έ lifecycle 컨ν
μ΄λμ κ²½μ° λ€μκ³Ό κ°μ΄ 보μ
λλ€.
lifecycle:
preStop:
exec:
command:
- /bin/sleep
- "30" νμ§λ§ 30μ΄ νμλ‘ μΈν΄ sleep μ°λ¦¬ κ°νκ² κ° ν¬λκ° μ’
λ£λλ―λ‘ λ°°ν¬ μκ°μ΄ λμ΄λ©λλ€. μ΅μνμ 30μ΄λ©΄ λ무 μ§§λ€μ. μ΄λ»κ² ν΄μΌ ν κΉμ?
μ ν리μΌμ΄μ
μ μ§μ μ€ννλ λΉμ¬μμ λν΄ μ΄ν΄λ³΄κ² μ΅λλ€. μ΄ κ²½μ°μλ λ€μκ³Ό κ°μ΅λλ€. PHP-FPMμ΄λ κΈ°λ³Έμ μΌλ‘ μμ νλ‘μΈμ€μ μ€νμ λͺ¨λν°λ§νμ§ μμ΅λλ€.: λ§μ€ν° νλ‘μΈμ€κ° μ¦μ μ’
λ£λ©λλ€. μ΄ λμμ λ€μ μ§μμ΄λ₯Ό μ¬μ©νμ¬ λ³κ²½ν μ μμ΅λλ€. process_control_timeoutλ μμ νλ‘μΈμ€κ° λ§μ€ν° νλ‘μΈμ€μ μ νΈλ₯Ό κΈ°λ€λ¦¬λ μκ° μ νμ μ§μ ν©λλ€. κ°μ 20μ΄λ‘ μ€μ νλ©΄ 컨ν
μ΄λμμ μ€ν μ€μΈ λλΆλΆμ μμ²μ΄ μ²λ¦¬λκ³ , μμ²μ΄ μλ£λλ©΄ λ§μ€ν° νλ‘μΈμ€κ° μ€μ§λ©λλ€.
μ΄λ¬ν μ§μμ λ°νμΌλ‘ λ§μ§λ§ λ¬Έμ λ‘ λμκ° λ³΄κ² μ΅λλ€. μμ μΈκΈνλ―μ΄ μΏ λ²λ€ν°μ€λ λͺ¨λ리μ νλ«νΌμ΄ μλλλ€. μ¬λ¬ κ΅¬μ± μμ κ°μ μνΈ μμ©μλ μκ°μ΄ 걸립λλ€. νΉν Ingressμ λ€λ₯Έ μΈμ κ΅¬μ± μμμ μμ μ κ³ λ €ν λ λμ± κ·Έλ μ΅λλ€. μ΄λ¬ν μ§μ°μ λ°°ν¬ μμ μ 500κ°μ μ€λ₯κ° κΈμ¦νλ κ²°κ³Όλ‘ μ΄μ΄μ§ μ μκΈ° λλ¬Έμ λλ€. μλ₯Ό λ€μ΄, μ μ€νΈλ¦ΌμΌλ‘ μμ²μ μ μ‘νλ λ¨κ³μμ μ€λ₯κ° λ°μν μ μμ§λ§, κ΅¬μ± μμ κ° μνΈ μμ©μ "μκ° μ§μ°"μ XNUMXμ΄ λ―Έλ§μΌλ‘ λ§€μ° μ§§μ΅λλ€.
κ·Έλ¬λ―λ‘, μ 체μ μΌλ‘ μ΄λ―Έ μΈκΈλ μ§μΉ¨κ³Ό ν¨κ» process_control_timeout λ€μ ꡬ쑰λ₯Ό μ¬μ©ν μ μμ΅λλ€ lifecycle:
lifecycle:
preStop:
exec:
command: ["/bin/bash","-c","/bin/sleep 1; kill -QUIT 1"] μ΄ κ²½μ° μ°λ¦¬λ λͺ
λ ΉμΌλ‘ μ§μ°μ 보μν©λλ€. sleep κ·Έλ¦¬κ³ μ°λ¦¬λ λ°°ν¬ μκ°μ ν¬κ² λλ¦¬μ§ μμ΅λλ€. κ²°κ΅ 30μ΄μ XNUMXμ΄μ μ°¨μ΄κ° λμ λμ§ μμ΅λκΉ? λ³Έμ§μ μΌλ‘ κ·Έκ²μ μ νν process_control_timeoutκ³Ό lifecycle μ§μ°μ΄ λ°μν κ²½μ°λ₯Ό λλΉν "λ°±μ
"μΌλ‘λ§ μ¬μ©λ©λλ€.
μΌλ°μ μΌλ‘ λ§νκΈ° μ€λͺ λ λμκ³Ό ν΄λΉ ν΄κ²° λ°©λ²μ PHP-FPMμλ§ κ΅νλμ§ μμ΅λλ€.λ€λ₯Έ PL/νλ μμν¬λ₯Ό μ¬μ©ν λλ λΉμ·ν μν©μ΄ λ°μν μ μμ΅λλ€. λ€λ₯Έ λ°©λ²μΌλ‘λ μ μμ μΈ μ’ λ£ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€λ©΄ (μ: μ ν리μΌμ΄μ μ΄ μ’ λ£ μ νΈλ₯Ό μ¬λ°λ₯΄κ² μ²λ¦¬νλλ‘ μ½λλ₯Ό λ€μ μμ±νλ κ²½μ°) μ€λͺ λ λ°©λ²μ μ¬μ©ν μ μμ΅λλ€. κ°μ₯ μ’μ λ°©λ²μ μλμ§λ§ μλν©λλ€.
μ°μ΅: ν¬λ μλμ νμΈνκΈ° μν λΆν ν μ€νΈ
λΆν ν μ€νΈλ 컨ν μ΄λ μλ λ°©μμ νμΈνλ ν κ°μ§ λ°©λ²μΌλ‘, μ¬μ©μκ° μ¬μ΄νΈλ₯Ό λ°©λ¬Έν λ μ€μ μ ν¬ μν©μ λ κ°κΉκ² λ€κ°κ° μ μλλ‘ ν΄μ€λλ€. μμ κΆμ₯ μ¬νμ ν μ€νΈνλ €λ©΄ λ€μμ μ¬μ©ν μ μμ΅λλ€. : λͺ¨λ μꡬ μ¬νμ μλ²½νκ² μΆ©μ‘±ν©λλ€. Grafanaμ Yandex.Tank μ°¨νΈλ₯Ό νμ©ν μ ν¬ κ²½νμ μκ°μ μμλ₯Ό ν΅ν΄ ν μ€νΈν μ μλ λͺ κ°μ§ νκ³Ό μλ Ήμ μκ°ν©λλ€.
μ¬κΈ°μ κ°μ₯ μ€μν κ²μ λ¨κ³λ³λ‘ λ³κ²½ μ¬ν νμΈμλ‘μ΄ μμ μ¬νμ μΆκ°ν ν ν μ€νΈλ₯Ό μ€ννμ¬ μ΄μ μ€ν κ²°κ³Όμ μ°¨μ΄κ° μλμ§ νμΈνμΈμ. κ·Έλ μ§ μμΌλ©΄ λΉν¨μ¨μ μΈ ν΄κ²°μ± μ νμ νκΈ° μ΄λ ΅κ³ , μ₯κΈ°μ μΌλ‘λ μ€νλ € ν΄λ₯Ό λΌμΉ μ μμ΅λλ€(μ: λ°°ν¬ μκ° μ¦κ°).
λ λ€λ₯Έ μ€μν μ μ 컨ν μ΄λ μ’ λ£ μ λ‘κ·Έλ₯Ό μ΄ν΄λ³΄λ κ²μ λλ€. μ μ μ’ λ£(graceful shutdown) κ΄λ ¨ μ λ³΄κ° κΈ°λ‘λμ΄ μμ΅λκΉ? λ€λ₯Έ 리μμ€(μ: μΈμ ν PHP-FPM 컨ν μ΄λ)μ μ κ·Όν λ λ‘κ·Έμ μ€λ₯κ° μμ΅λκΉ? μ ν리μΌμ΄μ μ체μ μ€λ₯(μμμ μ€λͺ ν NGINXμ κ²½μ°μ²λΌ)λ μμ΅λκΉ? μ΄ κΈμ μκ° μ λ³΄κ° μ»¨ν μ΄λ μ’ λ£ μ λ°μνλ μν©μ λ μ μ΄ν΄νλ λ° λμμ΄ λκΈ°λ₯Ό λ°λλλ€.
κ·Έλμ 첫 λ²μ§Έ ν
μ€νΈ μ€νμ λ€μκ³Ό κ°μ΄ μ§νλμμ΅λλ€. lifecycle κ·Έλ¦¬κ³ μ ν리μΌμ΄μ
μλ²μ λν μΆκ° μ§μΉ¨ μμ΄ (process_control_timeout PHP-FPMμμ). μ΄ ν
μ€νΈμ λͺ©μ μ λλ΅μ μΈ μ€λ₯ μ(κ·Έλ¦¬κ³ μ€λ₯κ° μλμ§ μ¬λΆ)λ₯Ό νμ
νλ κ²μ΄μμ΅λλ€. λν, μΆκ° μ 보λ₯Ό ν΅ν΄ κ° ν¬λμ νκ· λ°°ν¬ μκ°μ΄ μμ ν μ€λΉλ λκΉμ§ μ½ 5~10μ΄μλ€λ κ²μ μ μ μμ΅λλ€. κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.

Yandex.Tank λμ보λλ λ°°ν¬ μ€ λ°μν 502 μ€λ₯κ° νκ· 5μ΄ λμ κΈμ¦νμμ 보μ¬μ€λλ€. μ΄λ κΈ°μ‘΄ Podμ λν κΈ°μ‘΄ μμ²μ΄ μ’
λ£λμκΈ° λλ¬ΈμΌ μ μμ΅λλ€. κ·Έ ν 503 μ€λ₯κ° λ°μνλλ°, μ΄λ NGINX 컨ν
μ΄λκ° μ€μ§λμκ³ λ°±μλ(Ingressκ° μ°κ²°ν μ μμ)λ‘ μΈν΄ μ°κ²°μ΄ λμ΄μ‘κΈ° λλ¬Έμ
λλ€.
μ΄λ»κ² λλμ§ λ³΄μ process_control_timeout PHP-FPMμμλ μμ νλ‘μΈμ€κ° μλ£λ λκΉμ§ κΈ°λ€λ¦¬λλ‘ νμ¬ μ΄λ¬ν μ€λ₯λ₯Ό μμ νλ λ° λμμ΄ λ©λλ€. λ€μ μ§μμ΄λ₯Ό μ¬μ©νμ¬ μ¬λ°°ν¬ν μ μμ΅λλ€.

λ°°ν¬ μ€ 500 μ€λ₯κ° λ μ΄μ λ°μνμ§ μμ΅λλ€! λ°°ν¬κ° μ±κ³΅μ μΌλ‘ μλ£λμμΌλ©°, μ μμ μΈ μ’
λ£κ° κ°λ₯ν©λλ€.
νμ§λ§ Ingress 컨ν
μ΄λμ κ²½μ°, μκ° μ§μ°μΌλ‘ μΈν΄ λ°μν μ μλ μμμ μ€λ₯κ° μλ€λ μ μ κΈ°μ΅νλ κ²μ΄ μ’μ΅λλ€. μ΄λ₯Ό λ°©μ§νλ €λ©΄ λ€μκ³Ό κ°μ ꡬ문μ μΆκ°ν΄μΌ ν©λλ€. sleep λ°°ν¬λ₯Ό λ€μ μ§ννμ΅λλ€. νμ§λ§ μ ν¬μ κ²½μ°μλ μλ¬΄λ° λ³νλ 보μ΄μ§ μμκ³ μ€λ₯λ λ°μνμ§ μμμ΅λλ€.
κ²°λ‘
νλ‘μΈμ€λ₯Ό μ¬λ°λ₯΄κ² μλ£νλ €λ©΄ μ ν리μΌμ΄μ μμ λ€μκ³Ό κ°μ λμμ΄ νμν©λλ€.
- λͺ μ΄κ° κΈ°λ€λ¦° ν μλ‘μ΄ μ°κ²°μ μλ½νμ§ λ§μΈμ.
- λͺ¨λ μμ²μ΄ μλ£λ λκΉμ§ κΈ°λ€λ¦¬κ³ , μμ²μ μ€ννμ§ μλ λͺ¨λ Keepalive μ°κ²°μ λ«μ΅λλ€.
- νλ‘μΈμ€λ₯Ό μλ£νμΈμ.
νμ§λ§ λͺ¨λ μ ν리μΌμ΄μ μ΄ μ΄λ° λ°©μμΌλ‘ μλν μ μλ κ²μ μλλλ€. μΏ λ²λ€ν°μ€ νμ€μμ μ΄ λ¬Έμ μ λν ν κ°μ§ ν΄κ²°μ± μ λ€μκ³Ό κ°μ΅λλ€.
- λͺ μ΄κ° κΈ°λ€λ¦¬λ μ¬μ μ μ§ νν¬λ₯Ό μΆκ°ν©λλ€.
- κ΄λ ¨ λ§€κ°λ³μμ λν λ°±μλ κ΅¬μ± νμΌμ κ²μ¬ν©λλ€.
NGINX μμλ μ΄κΈ°μλ μ’ λ£ μ νΈλ₯Ό μ¬λ°λ₯΄κ² μ²λ¦¬ν΄μΌ νλ μ ν리μΌμ΄μ μ‘°μ°¨λ μ λλ‘ μ²λ¦¬νμ§ λͺ»ν μ μλ€λ μ μ μ΄ν΄νλ λ° λμμ΄ λ©λλ€. λ°λΌμ μ ν리μΌμ΄μ λ°°ν¬ μ€μ 500 μ€λ₯λ₯Ό νμΈνλ κ²μ΄ λ§€μ° μ€μν©λλ€. λν μ΄λ₯Ό ν΅ν΄ λ¬Έμ λ₯Ό λ κ΄λ²μνκ² μ΄ν΄λ³΄κ³ λ¨μΌ ν¬λλ 컨ν μ΄λμ μ§μ€νμ§ μκ³ μ 체 μΈνλΌλ₯Ό μ 체μ μΌλ‘ μ΄ν΄λ³Ό μ μμ΅λλ€.
Yandex.Tankλ λͺ¨λ λͺ¨λν°λ§ μμ€ν κ³Ό ν¨κ» ν μ€νΈ λκ΅¬λ‘ μ¬μ©ν μ μμ΅λλ€(μ΄ κ²½μ°, Prometheus ννμ λ°±μλλ₯Ό μ¬μ©νλ Grafanaμμ λ°μ΄ν°λ₯Ό κ°μ Έμ ν μ€νΈνμ΅λλ€). λ²€μΉλ§ν¬μμ λ°μν μ μλ κ³ΌλΆν μν©μμλ μ μ μ’ λ£ λ¬Έμ κ° λͺ ννκ² λλ¬λ©λλ€. λͺ¨λν°λ§μ ν΅ν΄ ν μ€νΈ μ€μ΄λ ν μ€νΈ νμ μν©μ λμ± μμΈν λΆμν μ μμ΅λλ€.
μ΄ κΈ°μ¬μ λν νΌλλ°±μ λν λ΅λ³μ λλ€. μ¬κΈ°μ μ€λͺ λ λ¬Έμ μ ν΄κ²°μ± μ NGINX Ingressμλ μ μ© κ°λ₯ν©λλ€. λ€λ₯Έ κ²½μ°μλ μ΄ μ리μ¦μ λ€μ μλ£μμ μ΄ν΄λ³Ό μ μλ λ€λ₯Έ ν΄κ²°μ± λ€μ΄ μμ΅λλ€.
PS
κΈ°ν K8s ν λ° μλ Ή μ리μ¦:
- Β«";
- Β«";
- Β«";
- Β«".
μΆμ² : habr.com
