DUMB_INIT_SETSID: "0" ์˜ ์˜๋ฏธ

  • Celery worker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๋„๋ก ๋•๋Š” ์„ค์ •
  • Docker ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์ข…๋ฃŒ ์‹œ๊ทธ๋„์ด ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ

๋ฐฐ๊ฒฝ

  • Airflow์˜ airflow-worker๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Celery worker ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰
  • Docker๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ **์ตœ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค(= PID 1)**์—๋งŒ ์‹œ๊ทธ๋„์„ ๋ณด๋ƒ„
  • ์ผ๋ฐ˜์ ์œผ๋กœ Celery๋Š” SIGTERM, SIGINT ๊ฐ™์€ ์ข…๋ฃŒ ์‹œ๊ทธ๋„์„ ๋ฐ›์•„์•ผ ๊นจ๋—ํ•˜๊ฒŒ ์ข…๋ฃŒ
  • ๊ทธ๋Ÿฐ๋ฐ PID 1์ด Celery๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ, ์ด ์‹œ๊ทธ๋„์ด Celery์— ๋„๋‹ฌํ•˜์ง€ ์•Š๊ณ  ๋ฌด์‹œ๋จ

Dumb-init์˜ ์—ญํ• 

  • Airflow Docker ์ด๋ฏธ์ง€์˜ /entrypoint๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ dumb-init์ด๋ผ๋Š” ์ž‘์€ init ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ
  • dumb-init์€ PID 1๋กœ ์‹คํ–‰๋˜๋ฉฐ ๋ฐ›์€ ์‹œ๊ทธ๋„์„ ์ž์‹ ํ”„๋กœ์„ธ์Šค(Celery ๋“ฑ)์— ์ „๋‹ฌ
    • ์ฆ‰, ์ •์ƒ์ ์ธ ์ข…๋ฃŒ์™€ ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ๋ฅผ ๋ณด์žฅ

DUMB_INIT_SETSID: "0"์˜ ์˜๋ฏธ

  • dumb-init์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์„ธ์…˜์„ ์ƒ์„ฑ (setsid() ํ˜ธ์ถœ)
  • ํ•˜์ง€๋งŒ ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ๋Š” ์ด๋กœ ์ธํ•ด ์‹œ๊ทธ๋„ ์ „๋‹ฌ์ด ๊ผฌ์ผ ์ˆ˜ ์žˆ์Œ
    • ํŠนํžˆ Celery์ฒ˜๋Ÿผ ์ž์ฒด์ ์œผ๋กœ ์‹œ๊ทธ๋„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ
  • DUMB_INIT_SETSID=0์„ ์„ค์ •ํ•˜๋ฉด setsid() ํ˜ธ์ถœ์„ ๋น„ํ™œ์„ฑํ™”
    • ์‹œ๊ทธ๋„์ด ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋ฉฐ Celery์— ์ „๋‹ฌ๋จ

์ฐธ๊ณ 

  • ๊ด€๋ จ ๊ณต์‹ ๋ฌธ์„œ: https://github.com/Yelp/dumb-init
  • Airflow Docker: /entrypoint์—์„œ dumb-init์œผ๋กœ Celery๋ฅผ ๊ฐ์Œˆ