"cron timezone", "cronjob timezone" ๋๋ "scheduledjob timezone"์ ๊ฒ์ํ ํ ์ด์ ๋ํ ํ ๋ก ์ ์ฐพ์ ์ ์์ต๋๋ค.
CronJob ์ฌ์์ https://en.wikipedia.org/wiki/Cron ์
์ด ์ง์์ด kubernetes์์ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
CronJobSpec
์ ๊ฐ์ด timezone: "Americas/Chicago"
CronJobSpec
์ ํ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.30 6 * * 1 Europe/Stockholm
@iterion ์ด ๋ฌธ์ ์ ๋ํ ์๋ช
๋ ์ด๋ธ์ด ์์ต๋๋ค. ๋ค์์ ํตํด ์๋ช
๋ ์ด๋ธ ์
(1) ์๊ทธ ์ธ๊ธ: @kubernetes/sig-<team-name>-misc
(2) ์๋์ผ๋ก ๋ ์ด๋ธ ์ง์ : /sig <label>
_์ฐธ๊ณ : ๋ฐฉ๋ฒ (1)์ ํ์ ์๋ฆผ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ๋น์ ์ ํ ๋ชฉ๋ก์ ์ฐพ์ ์ ์์ต๋๋ค ์ฌ๊ธฐ ๋ฐ ๋ชฉ๋ก์ ๋ ์ด๋ธ์ ์ฌ๊ธฐ _
/ ์๊ทธ ์ฑ
๋์๊ฒ ๋ ์์ฐ์ค๋ฌ์ ๋ณด์ด๋ฏ๋ก ๋ ๋ฒ์งธ ์ต์ ์ ์ ํธํฉ๋๋ค.
@soltysh @kubernetes/sig-apps-feature-requests
๋ ๋ฒ์งธ ํ์๋ ๋ง์์ ๋ค์ง๋ง ๊ฐ์ฅ ์ฌ์ด ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ทธ ์๊ฐ์ ๋นผ์ ๋ฐ๋ก ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค. ๋ํ "ํ์ค" ํฌ๋ก ํ ํ๋ฆฟ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ์ด๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค์ด์๋ ์ ๋๋ค๋ ์ฃผ์ฅ์ด ์ ๊ธฐ๋ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ๋จํด์ผ ํฉ๋๋ค.
ํ์ฌ syncOne
๋ฃจํ์ time.Now()๋ฅผ ์ ๋ฌํฉ๋๋ค. k8s๊ฐ ์ฌ์ฉํ๋ cron lib๋ ๊ด์ฌ ์๋ ์์ญ์ ์๊ฐ๋ง ์ฌ์ฉํ๋ฉด ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ CronJob์์ ์๊ฐ๋๋ฅผ ๊ฐ์ ธ์ค๊ณ ํด๋น ์๊ฐ์ zone๊ณผ ํจ๊ป syncOne ํจ์์ ์ ๋ฌํ ์ ์์ต๋๋ค.
//init the loc, needs error handling
//perhaps default to local if Timezone was invalid
loc, _ := time.LoadLocation(cronjob.Spec.Timezone)
//set timezone,
now := time.Now().In(loc)
๋ํ ์ด๋ฅผ ๊ตฌํํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๋๋ ๋น์ ์ PR์ ๊ฒํ ํ ์ ์์๊ฐ ์๋์ง๋ง ์๋ฏธ๋ก ์ ๋ํด ๋ช ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค.
์๊ฐ๋๊ฐ ์ ์๋์ง ์์ ๊ฒฝ์ฐ ํธ์คํธ์ ์๊ฐ๋๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ ๋์์ด ๊ธฐ๋ณธ๊ฐ์ด ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๊ฒ์ด UTC๋ก ๊ตฌ์ฑ๋ ๊ฒ์ด๋ผ๊ณ ์ถ์ธกํ์ง๋ง ์ฌ์ฉ์๋ ์ค์ ๋ก ๋ชจ๋ ์๊ฐ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด PR์ ๊ฒฐ๊ณผ๋ก ํธ์คํธ์์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ์๊ฐ๋์ ๋ํ ์ข ์์ฑ์ ๋ ์ด์ ์์ต๋๋ค.
๋๋ ํ์ฌ ๊ตฌ์ ๊ธ์ต์ ํ๊ณ ์ฌ์ฉ์๊ฐ ์๋ชป๋ ๊ฒ์ ์ง์ ํ ๊ฒฝ์ฐ ํธ์คํธ์ ์๊ฐ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์๋ golang์ time.LoadLocation(str) ๋ฉ์๋์ ์์กดํ๊ณ ์์ต๋๋ค. ํด๋น ํจ์์์ ํ์ฉํ๋ ๋ชจ๋ ๋ฌธ์์ด์ ์ ํจํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๋๋ ํ์ฌ ์์ฑ/์ ๋ฐ์ดํธ ์์ ์ ์ด๊ฒ์ ๊ฒ์ฆํ๊ณ ์์ง๋ ์์ง๋ง ๊ฝค ์ฌ์ด ์ผ์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ง์ง๋ง ์ง๋ฌธ์ ๊ดํด์๋ ๊ทธ ์ง๋ฌธ์ด ์กฐ๊ธ ๋ ์ ์๋์ง ์์์ต๋๋ค. ํ์ฌ, ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋ฏธ๋์๋ ๊ธฐ๋ณธ ์๊ฐ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์์ฝํ๋ ๊ฒ์ผ๋ก ๋์ฒด๋ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ์ด ์ฌ๊ฑด์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์์ ์ด๋ ค ์์ต๋๋ค.
API ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์๊ฐ๋ ์ด๋ฆ์ด ์ฌ๋ฐ๋ฅด์ง๋ง ๋ฏธ๋์๋ ๋ ์ด์ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ด๋ ์ด๋ฆ์ด ์ ๊ฑฐ๋์๊ฑฐ๋(๋์ ๋๋ ๊ตญ๊ฐ๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์์ ์ ์์) ๊ธฐ๋ณธ tzdata ํจํค์ง๊ฐ ์ด์ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ทธ์ ๋ํ ์ ์ ์์ ์ ์ ํ ์ด๋ฒคํธ๋ก ์ผ์๋ฆฌ ์ฐฝ์ถ์ ์คํจํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์์งํ ๋งํด์ ์ด๋ฐ ์ผ์ด ์์ฃผ ์ผ์ด๋๋์ง ์์ฌ์ค๋ฝ์ต๋๋ค. ๊ตฌํ @iterion์ ์ด๊ฒ์ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฐ cron ํ์์ด ์ง์๋์ง ์๋ ์ฐ๋ ์ ์ถ, ์ง์ ๋ ์๊ฐ์ ํ ๋ฒ๋ง ์์ ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
:+1:
@iterion ๋ฌธ์ ์ ํ ๋ฆฌํ์คํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ฐ๋ฆฌ๋ ์ง๋ ์ฃผ์ SIG Apps์ SIG Architecture์์ ์ด์ ๋ํด ์๋นํ ๋ ผ์ํ์ต๋๋ค. ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ฏธ๊ฐ ์์ ๋ ์ ์ฉํ ์ ์์ง๋ง ๋จ์ ์ ๋ํด์๋ ๋ ผ์ํด์ผ ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ท์ ์ ์ค์ํ๋ ๋ชจ๋ Kubernetes ๋ฐฐํฌ์๋ ์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ด์ผ ํ๊ณ ์ด๋ฅผ ์ต์ ์ํ๋ก ์ ์งํด์ผ ํฉ๋๋ค. ํ์ค ์๊ฐ๋, ์ผ๊ด ์ ์ฝ ์๊ฐ์ , ์ค์ ์ธ๋ถ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ์ ์๊ณ ํ ์ ์๋ ๋์ ์ด ์์ ์ ์ํํ๋ ์ธ๋ถ ์ฌํญ์ ์ด๋ ต์ต๋๋ค. ์ด๊ฒ์ ์ค๋๋ ์กด์ฌํ๋ 20๊ฐ ์ด์์ ๋ฐฐํฌํ์ ๋ํ ์ถ๊ฐ ์์ ์ด ๋ ๊ฒ์ ๋๋ค.
๋์์ Kubernetes ๊ฐ๋ฐ์๋ ๋ณํ๊ฐ ์์์ต๋๋ค. ์ผ๋ง๋ ๋๋ฆฌ ์ ๋ฌ๋์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค(ํต์ ์ SIG ์ํคํ ์ฒ์์ ๋ ผ์๋ ๋ ๋ค๋ฅธ ์์ ์ ๋๋ค). ๋ณํ๋ ํต์ฌ Kubernetes๊ฐ ์์ ์ฑ์ ์ด์ ์ ๋ง์ถ๊ณ ์ฒ์ฒํ ์์ง์ด๋๋ก ํ๋ ค๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ค์ ์ด์ ํต์ฌ์ด ์๋ ์ํ๊ณ์์ ์ด๋ฌํ ์ข ๋ฅ์ ๋ฌธ์ ๋ฅผ ํ์ ํ๊ณ ํด๊ฒฐํ๋๋ก ๊ถ์ฅ๋ฉ๋๋ค.
์ด๊ฒ์ Kubernetes์ ๋ฃ๋ ๋์ ์์ฒญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋์์ด ๋๋ค๋ฉด ์ด๊ฒ์ ๋์ผํ ์ง์๋ฅผ ๋ฐ๋ ์ ์ผํ ๊ธฐ๋ฅ์ด ์๋๋๋ค(๋์ผํ SIG ์ํคํ ์ฒ ํ์์์๋). ๋๋ ์ด๊ฒ์ wordpress์ ๋น์ทํ ๋งฅ๋ฝ์์ ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ธ์ง ์๋ํ๋ ์ค ์์ฒด์ ์ผ๋ถ์ธ์ง์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ํ์ฌ ๋ฐฉํฅ์ ๋งํ์๋ฉด ํ๋ฌ๊ทธ์ธ์ ํ์ ์ ์ฅ๋ คํ๋ ๊ฒ์ ๋๋ค.
์ด์ ๊ฐ์ ๊ฒ์ ๊ตฌ์ถํ๋ฉด SIG Apps์์ ๋ฐ๋ชจ๋ฅผ ํตํด ์ฌ๋๋ค์๊ฒ ์ ๋ณด์ผ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ปค๋ฎค๋ํฐ ํ์์์ ์์ฐํ ์๋ ์์ต๋๋ค.
์ด์ ๋ํ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์ ์๊ฒ ์ฐ๋ฝํด ์ฃผ์ญ์์ค.
์ด์ ์๊ฒฌ์ ๊ฐ์ํ ๋ ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋์ํ์ง ์์ผ์๋ฉด ๋ค์ ์ด์ด์ฃผ์ธ์.
FWIW, "์๊ฐ๋ ์ค์ ๋ฐฉ๋ฒ"์ CronJob์ ๋ง๋๋ ๋ชจ๋ ์ฌ์ฉ์(๊ฐ๋ฐ์์ ๊ด๋ฆฌ์ ๋ชจ๋)๊ฐ ๋ฌป์ต๋๋ค.
@iterion ๊ฒฐ๊ตญ ์ด๊ฒ์ ๋ํด ๋ฌด์์ ํ์์ต๋๊น? ๋ค์์ ํฌํจํ์ฌ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋ค์ํ ์ต์ ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.
์์์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํจ๊ณผ๊ฐ ์๋ ๋ฌด์ธ๊ฐ๊ฐ ์ด๋ฏธ ์๊ฑฐ๋ @mattfarina๊ฐ ์ด๋ฅผ ํฌํจํ์ง ์๊ธฐ๋ก ํ ๊ทธ์ ๊ฒฐ์ ์ ๋ค์ง์ ์ ์๋๋ก ํ๋ ฅํ ์ ์๋ ๊ฒฝ์ฐ(์ด๋ ์ด kube์ ์ฑํ์ ๊ทน์ ์ผ๋ก ํด๋ฅผ ๋ผ์นฉ๋๋ค. ๊ธฐ๋ฅ), ๊ทธ๊ฒ์ ๊ต์ฅํ ๊ฒ์ ๋๋ค.
๋๋ ์ค์ ๋ก ์ ์ง์ฅ์ผ๋ก ์ฎ๊ฒผ๊ธฐ ๋๋ฌธ์ ๊ฐ์ธ์ ์ผ๋ก ๋ ์ด์ ์๋์ ๋ฌธ์ ๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ, ๋ด ์ ๋๋ฃ๋ค์ ๊ทธ๋ก ์ธํ ๊ณ ํต์ ๊ฒช๊ณ ์์ต๋๋ค.
์ฆ, ์ด ์์ ์ ํ ์ ํ ์๊ฐ์ด ์๋ค๋ฉด ํ์์ ๋ฐ๋ผ CronJobs๋ฅผ ๊ฐ์ํ๊ณ ์์ ํ ์ ์๋ ์์ ์ปจํธ๋กค๋ฌ๋ฅผ ์์ฑํ ๊ฒ์ ๋๋ค. ์ํ๋ ์๊ฐ๊ณผ ์๊ฐ๋๋ฅผ ์ฌ์ฉํ์ฌ CronJobs์ ์ฃผ์์ ์ถ๊ฐํ๊ณ ์ปจํธ๋กค๋ฌ๊ฐ ํด๋น ์ผ์ ์ UTC๋ก ์ ์กํ๊ณ CronJobs๋ฅผ ์์ ํ๋๋ก ํฉ๋๋ค. ์ด ๋๊ธฐํ ๋ฃจํ๋ฅผ ์ผ์ ํ ๊ฐ๊ฒฉ์ผ๋ก ์คํํ์ฌ ๋ฌธ์ ์ ๊ฒฝ๊ณ๋ฅผ ํฌ์ฐฉํ ์ ์์ต๋๋ค. ์ฆ, ์ผ๊ด ์ ์ฝ ์๊ฐ์ ๊ฐ ์์๋๊ฑฐ๋ ์ข ๋ฃ๋ ๋์ ๋๋ค. ์ด๋ฐ ์์ผ๋ก ์ปจํธ๋กค๋ฌ๋ ์ด๋ฏธ ์กด์ฌํ๋ CronJob API ์์ ๋งค์ฐ ์์ ๋ํผ๊ฐ ๋ ๊ฒ์ ๋๋ค.
@mattfarina ๊ฐ ์ด๊ฒ์ ํฌํจํ๋ ๊ฒ์ ํ์ฉํ์ง ์๊ธฐ๋ก ํ ๊ทธ์ ๊ฒฐ์ ์ ๋ฒ๋ณตํ๋๋ก ๊ฒฉ๋ คํ์ญ์์ค.
๋ถ๋ช ํ ํ๊ธฐ ์ํด ์ด ๊ฒฐ์ ์ sig-architecture ํ์ ์ค ํ๋์์ ์งํฉ์ ์ผ๋ก ์ด๋ฃจ์ด์ก์ต๋๋ค. Matt๋ ์ด๋ฒ ํธ์์ ๊ทธ ๊ฒฐ์ ์ ํํํ ์ ์ผํ ์ฌ๋์ด์์ต๋๋ค.
๋ชจ๋ ์ข ๊ณผ ํํ๋์ด ์๋ ์๊ฐ๋ ๋ฌธ์ ๋ Linux ์ธ๊ณ์์ ์ค๋ซ๋์ ํด๊ฒฐ๋์์ต๋๋ค. ์ด๊ฒ์ด Kubernetes ๋ฐฐํฌ์ ํ์ ์กฐ๊ฑด์ธ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ด๊ฐ ์ธ์ ํ๋ ์ฌ์ฉ ์ฌ๋ก์ ์ค์์ฑ์ ๋ํด ๋ ผ์ํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฌ๋ (๊ทธ๋ฆฌ๊ณ ๋ด ๊ฒธ์ํ ์๊ฐ์ผ๋ก๋) ์๋น์ค ์ฌ์ฉ์์ ๋๊ธฐํํ์ฌ ์๋น์ค๋ฅผ ์์ฝํ ์ ์๋ค๋ ๊ฒ์ Kubernetes ์ฝ์ด์ ์ ํฉํ๊ธฐ์ ์ถฉ๋ถํ ์ค์ํด ๋ณด์ ๋๋ค.
TimezoneAwareCronjobController๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์๋ฅผ ์์ฑํ๋ ค๋ ์ฌ๋์ด ์์ต๋๊น? @iterion ์ด ์์ฑํ ๋๋ถ๋ถ์ ์ฝ๋๋ ์ฌํ์ฉ๋ ์ ์์ต๋๋ค.
TZ ์ฒ๋ฆฌ๋ฅผ ํจํค์ง ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ด๋ํ๋ฉด Kubernetes์์ ์ผ๊ธ cronjob ์ง์์ ์ค๋จ์ํจ ๋ฐฐํฌ ์ธ์๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
FWIW, https://gopkg.in/robfig/cron.v2 (๊ธฐ์กด ์ปจํธ๋กค๋ฌ๊ฐ ์ฌ์ฉํ๋ ์ด์ ํ์ ์งํฉ์)๋ TZ ๋ฐ ์ฝ๊ฐ ๋ ํ๋ถํ ์๊ฐ ์ ์ ์ธํธ ์ ๋ฌ์ ์ง์ํฉ๋๋ค.
์ผ๋ถ ๋ด๋ถ ์์
๋ถํ์ ๋ํด cron ์์
์ ์์ฑํ๋ ์ปจํธ๋กค๋ฌ๊ฐ ๋ด๋ถ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ์์
์ ๋ํ ์๊ฐ๋๋ฅผ ์ง์ ํ ์ ์๋ ๊ฒ์ ๋ฐ์ด๋ ๊ธฐ๋ฅ ์์ฒญ์
๋๋ค. ์ค์๋ก ์์
์ ๊ฑด๋๋ฐ๊ฑฐ๋ ๋ค์ ์คํํ์ง ์๊ณ ๊ธฐ์กด cronjob ์ ์๋ฅผ ์์ ํ๊ฒ ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค. ์ด ์์ ์์ ๊ธฐ์กด ์ปจํธ๋กค๋ฌ์์ ์์
์ผ์ ์ ํ์น๊ณ cronjob๋ณด๋ค ์ง์ ์์
์ ์๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ค์ ๋ก ๋ ์ฌ์ธ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
K8์ ์ฌ์ฉํ๊ธฐ ์์ํ ์ดํ๋ก 1๋ ์ ๋ ๋ฒ ์ด ๋ฌธ์ ๋ก ๋์์ค๋๋ฐ, ๋ง์นจ๋ด ๋ชจ๋ CronJobs์ ์ผ์ ์ ๋ณ๊ฒฝํด์ผ ํ๊ณ ๋ง์นจ๋ด ์ฌ๊ฐ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ฒฝ์ฐ ํฌ๋ก๋ ธ์ค๊ฐ ์ ์ crontab ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ , ์ด๋ป๊ฒ K8S ์ฌ์ ํ์ด ์ง์๋์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฅ๊ธฐ ๋ฌธ์ (์์ ์ ๋ํ ๋ฉ๋ชจ)
์ด ๋ฌธ์ ๊ฐ ๋ค์ ์ด๋ฆฌ๊ธธ ๋ฐ๋ผ๋ฉฐ ๋งค์ผ UTC ์๊ฐ์ ๋ณด๋ ๊ฒ์ด ์กฐ๊ธ ์ด์ํฉ๋๋ค.
๋งค์ 1์ผ ํ์ง ์๊ฐ์ผ๋ก ์คํํด์ผ ํ๋ cronjob์ด ์์ง๋ง UTC ์๊ฐ์ ์ง๋๋ฌ ๋ง์ง๋ง ๋ 16:00์ ๋๋ค. ์ง๋ ๋ฌ์ ๋ง์ง๋ง ๋ ์ ์ด๋ป๊ฒ ์ ์ํฉ๋๊น? Cronjob์ L์ ์ง์ํ์ง ์์ต๋๋ค.
๋์ฒด ์๋ฃจ์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ ๋ฐ ์ฌ๊ธฐ์์ ๋ด ์ง๋ฌธ์ ์ฐธ์กฐ
์์ง ์ด๊ฒ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ๋๊ตฐ๊ฐ๋ฅผ ์ํด; ๋ค์ดํฐ๋ธ Kubernetes cronjob ์ปจํธ๋กค๋ฌ์ ๋ซํ ์๋ PR์์ ํ์๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ค์์ต๋๋ค.
https://github.com/hiddeco/cronjobber
ํธ์ง(2019-05-12): @mterron ๋๋ถ์ Cronjobber ๋ ์ด์ ์ฌ์ด๋์นด๋ฅผ ์ฌ์ฉํ์ฌ ํธ์คํธ ๋ ๋ฆฝ ์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ํฉ๋๋ค.
@hiddeco ๊ธฐ์กด ์ปจํธ๋กค๋ฌ๋ฅผ ์์ ํ๋ ๊ฒ๋ณด๋ค ์ปจํธ๋กค๋ฌ ์ ์ด ํ์ค CJ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฐ๋ ๊ฒ์ด ๋
@andrewsav ๋ ๋ฐ๋์งํ์ง๋ง ์ํํ ์ ์์ต๋๋ค. ๊ธฐ์กด CJ ์ปจํธ๋กค๋ฌ๋ฅผ '์ ์ด'ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ CronJob
์ ์ผ์ ์ ์๊ฐ๋ ์คํ์
์ผ๋ก ์์ ํ๋ ๊ฒ์
๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ์ผ์ ์กฐํฉ์ ๋ํด ๊ทธ๋ ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
์ด์จ๋ CJ ์ปจํธ๋กค๋ฌ์ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ์์ต๋๋ค. ๋ํ ์์ฒด ํฌํจ๋ ์ํ๋ก ์คํ์ ์ ์งํ๊ธฐ ์ํด ๋๊ธฐํ๋ฅผ ์ ์งํ ์๋ฌด๊ฐ ์์ต๋๋ค(ํด๋ผ์ด์ธํธ ๋ฐ Job
์ฌ์์ ๋ํ ์ข
์์ฑ ์ ์ธ). .
@hiddeco
๊ฐ๋ฅํ ๋ชจ๋ ์ผ์ ์กฐํฉ์ ๋ํด ๊ทธ๋ ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
์ค๋ช ํด์ฃผ์ค ์ ์๋์?
@AndrewSav ๊ฐ๋จํ ์: 0 0 1 * *
NZDT
(UTC+13)์์ ์คํ๋๋ 0 0 1 * *
๋ ์ด์ ๋ฌ์ ๋ง์ง๋ง ๋ ์ ์คํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋งค์ ๋ค์ ๊ณ์ฐํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์ค์ 11์(UTC ๊ธฐ์ค)
์ผ์ ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ๋ฉด ๋๊ธฐํ๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ํํด์ผ ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ ์ฆ๊ฐํฉ๋๋ค. ๋ํ ์๊ฐ๋ ์์ญ์ด DST์์ ST๋ก ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๊ทธ๊ฒ์ ๊ทน๋๋ก ๋ณต์กํ๊ฒ ๋ง๋ค๊ณ ์๋ชป๋ ์๊ฐ์ ์คํํ๊ฑฐ๋ ๋ ๋๋น ์ง ์ ์๋ ๋ง์ ๊ณต๊ฐ์ ์ฝ๋๋ค. ๋ณ๋ง์์ ์.
ํด๊ฒฐ์ฑ ์ ์๊ฐ๋์ ๋ฐ๋ผ "๊ฐ๋ฅํ" ์๊ฐ๋ง๋ค cron์ ์คํํ๊ณ ํ์ฌ ์๊ฐ์ด ์์ ์๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๊ฑด๋๋ฐ๋ ๊ฒ์ ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ์์ค์์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
DST์ ๊ฒฝ์ฐ ์ด๋ ํ๋ฃจ์ ํ ๋ฒ์ด ์๋๋ผ ๋ ๋ฒ ์คํ๋๊ณ DST์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ๋๋ ๋ ๋ฒ์งธ๋ฅผ ๊ฑด๋๋ด๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ท์ ์ ์ค์ํ๋ ๋ชจ๋ Kubernetes ๋ฐฐํฌ์๋ ์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ด์ผ ํ๊ณ ์ด๋ฅผ ์ต์ ์ํ๋ก ์ ์งํด์ผ ํฉ๋๋ค. ํ์ค ์๊ฐ๋, ์ผ๊ด ์ ์ฝ ์๊ฐ์ , ์ค์ ์ธ๋ถ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ์ ์๊ณ ํ ์ ์๋ ๋์ ์ด ์์ ์ ์ํํ๋ ์ธ๋ถ ์ฌํญ์ ์ด๋ ต์ต๋๋ค. ์ด๊ฒ์ ์ค๋๋ ์กด์ฌํ๋ 20๊ฐ ์ด์์ ๋ฐฐํฌํ์ ๋ํ ์ถ๊ฐ ์์ ์ด ๋ ๊ฒ์ ๋๋ค.
์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ DST๋ kubernetes ๋ฐฐํฌ๊ฐ ์์กดํด์ผ ํ๋ OS ๋ฐฐํฌ์์ ๋งค์ฐ ์ ์ ์ง ๊ด๋ฆฌ๋ฉ๋๋ค. "๋ฐฐํฌ๋ฅผ ์ํด ์ด์ฌํ ์ผํ๋ค"๋ ๋ณ๋ช ์ ์ ํจํ IMO๊ฐ ์๋๋๋ค.
๊ฐ๋
์ด PeriodicJob
์ธ์ง RepeatingJob
์ธ์ง ๋
ผ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ CronJob
ํฉ๋๋ค. ๋ฌ๋ ฅ๊ณผ ์๊ณ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ด๋ฅผ ์ํด ์๊ฐ๋ ์ธ์์ด ๋งค์ฐ ์ค์ํ๋ค๋ ์ฌ์ค์ ๋ถ์ธํ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์๋ฃจ์ ; kubernetes์์ CronJob์ ์์ ํ ์ ๊ฑฐํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋๊ตฌ์๊ฒ๋ ๋์์ด ๋๋ ๊ฒ์ ์๋๋๋ค.
๋ ๋ค๋ฅธ ์๋ฃจ์ ; kubernetes์์ CronJob์ ์์ ํ ์ ๊ฑฐํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋๊ตฌ์๊ฒ๋ ๋์์ด ๋๋ ๊ฒ์ ์๋๋๋ค.
๋์ํฉ๋๋ค. k8์์ ์ ์ ํ ์๋ฃจ์ ์ ๊ตฌํํ ์ ์๋ค๋ฉด ์๋ฃจ์ ์ ์ ํ ์ถ๊ฐํด์๋ ์ ๋ฉ๋๋ค. Cronjob์ ์๊ฐ๋์ ํจ๊ป ์๋ํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ์ค๋๋ ๋ชจ๋ OS๋ ์ฐ๊ด๋ OS ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์๊ฐ๋๋ฅผ ํฌ๋ช ํ๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
์ถ๋ก ์ด ์ผ๊ด๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ ผ๋ฆฌ์ ๋ฐ๋ฅด๋ฉด K8์๋ ์กด์ฌํด์๋ ์ ๋๋ ๊ธฐ๋ฅ์ด ๋ง์ด ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก ๋ฒ๊ทธ์
๋๋ค. Cronjob
์ด๋ฆ ์์ฒด๋ Cron ์ฌ์์ ๋ฐ๋ฅด์ง ์๊ธฐ ๋๋ฌธ์ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ kubernetes ์ฌ์ฉ์๋ ํ์ค ์๊ฐ๋ ์ง์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ํต์ฌ ๊ฐ๋ฐ์๊ฐ ์ด๊ฒ์ ํฌํจํ์ง ์๊ธฐ๋ก ์ ํํ ๊ฒ์ ์ค๋ง์ค๋ฝ์ต๋๋ค. ์ด ๋ฌธ์ ๋ UTC ์๊ฐ์ ์๋ํ์ง ์๋ ์ฌ์ฉ์์ 90% ์ด์์๊ฒ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์ฌ๊ฒํ ํ ๊ฒ์ ์ด๊ตฌํ๊ณ ์ถ๋ค. ๋ด๊ฐ ๊ฒช๊ณ ์๋ ํ ๊ฐ์ง ๋ฌธ์ ๋ ์ผ๋ณธ์์ ํน์ ์์
์ด ๋งค์ 1์ผ ์ค์ 1์์ ์คํ๋๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฒ์
๋๋ค. ํ์คํ ํฉ๋ฆฌ์ ์ธ/ํ์ค ์ฌ์ฉ ์ฌ๋ก์
๋๋ค. cron์ด UTC๋ก ์ ์๋์ด ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ด๊ฒ์ ์ง์ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. 0 0 1 * *
๋ ์ผ๋ณธ ์๊ฐ์ผ๋ก ์ค์ 9์์ ์คํ๋ฉ๋๋ค. (์ผ๋ถ cron ๊ตฌํ์์ ์ฌ์ฉ๋๋ ์์ ๋ง์ง๋ง ๋ ์ 0 0 L * *
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ ์ข์ ๊ฒ์
๋๋ค)
@johnnyshields ์ ๋ค์ ์ด์ด๋ฌ๋ผ๊ณ @soltysh ์ ์์ฒญํด์ผ ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ค์ ๊ณ ๋ คํ๊ณ ์ถ์ง๋ง ๊ฐ๋ฅ์ฑ์ ํฌ๋ฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ ํจ๊ป ๋ชจ์ฌ ์๋ ผํ ํ ๋๋ฌด ๋ง์ ์ถ๊ฐ ์์ ์ด ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ์ด๊ฒ์ ๊ทธ ์ดํ๋ก ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์๋๋ฏ๋ก ๊ฒฐ์ ๋ ๋ณ๊ฒฝ๋์ง ์์์ ๊ฒ์ ๋๋ค.
CronJobber https://github.com/hiddeco/cronjobber ๋ฅผ ์ดํด๋ณด๊ณ ๊ธฐ์ฌํ์ญ์์ค! ๋ชจ๋๊ฐ ์ํ๋ ๋๋ก ์ด๋ฃจ์ด์ง๋๋ค.
์ต์ ๋ฒ์ ์ CronJob ์ปจํธ๋กค๋ฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ PR์ ํ๋ฅญํ์ง๋ง ๊ทธ๋๋ก ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ค์ ๊ณ ๋ คํ๊ณ ์ถ์ง๋ง ๊ฐ๋ฅ์ฑ์ ํฌ๋ฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ ํจ๊ป ๋ชจ์ฌ ์๋ ผํ ํ ๋๋ฌด ๋ง์ ์ถ๊ฐ ์์ ์ด ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ์ด๊ฒ์ ๊ทธ ์ดํ๋ก ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์๋๋ฏ๋ก ๊ฒฐ์ ๋ ๋ณ๊ฒฝ๋์ง ์์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ต์ํ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๊ณ ํฌ๋ก ์ก์ ํ์ฌ ๊ตฌํ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ๊ทธ ์ด์ ๋ (์ต์ํ ๋งํด์) ๋งค์ฐ ์คํด์ ์์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@mterron ์ ๋ฌธ์ ๋ ๊ฑฐ์ 1๋ ์ ์ ํจ์น๋์๊ณ ๊ทธ ์ดํ๋ก ์ ๋ฐ์ดํธ๋์ง ์์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ ๋์ ๊ฐ์ ๋ฐ ๋ณด์ ์์ ์ด ํฌํจ๋ ์์ญ ๊ฐ์ kubernetes ๋ฆด๋ฆฌ์ค๊ฐ ์์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ์์ญ์์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ชจ๋ ์ต์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ธฐ๋ฅ์ ํ์ฉํ๊ณ ์๋ค๊ณ ํ์ ํ ์ ์์ต๋๋ค.
@AndrewSav ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋ด๊ฐ ๋์์ ์์ฒญํ ์ด์ ์ ๋๋ค. ๋ด๊ฐ ํ ์ ์๋ ๋ชจ๋ ์ผ์ ํ์ต๋๋ค. ๋ณด์ ์ํ์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. Kubernetes๋ ํญ์ ๋ณ๊ฒฝ๋์ง๋ง ๋ณด์ ์ธก๋ฉด์์ ๋ณ๊ฒฝ์ด ์๋ฏธ ์๋ ๊ฒ์ ์๋๋๋ค.
rebase๋ ๋ฉ์ง๊ณ ์์ ๋กญ๊ฒ ๊ธฐ์ฌํ๊ณ ๋์์ ์ค ์ ์์ต๋๋ค.
@mterron ๊ทธ ์๊ฐ๋์ด์ธ์ ? ๊ทธ๋์ ๋น์ ์ด ๊ทธ๋ ๊ฒ ํ ์๊ฐ์ ๋ผ ์ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ฌ๋๋ค์ด ๋ ์ด์ ํ๋ํ์ง ์๋ ์ผ์ ๊ธฐ์ฌํ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค. ๋งค์ฐ ์ข๊ฒ ์ง๋ง ๋์ํฉ๋๋ค. ๊ทธ ํ๋ก์ ํธ๊ฐ ์ฒ์ ์ถ์ง๋์์ ๋ ๋๋ฐ์ ํ๊ณ ํด๋ฌ์คํฐ์ ๋ฃ์๊น ํ๋ ์๊ฐ์ ์ ์ ํ๋ค๊ฐ ์ ์ง๋ ๊ฐ๋ฅ์ฑ์ด ํฌ์ง ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. 1๋ ์ด ์ง๋ ์ง๊ธ ๋๋ ๋ด๊ฐ ํ๋ฆฌ์ง ์์๋ค๋ ๊ฒ์ ์์๋ค. ๊ทธ๋์ ๋๋ ๋น์ ์ ์์ ์ ๊ฐ์ฌํ์ง๋ง ํ์ฌ์ ํํ๋ก๋ ์ง์ ๊ฐ๋ฅํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์์๋๊ณ ๋๊ตฐ๊ฐ๊ฐ ์ง์์ ์ผ๋ก rebaseํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ค๋ฉด ๊ทธ๊ฒ์ ์ ๋ง ๋ฉ์ง ์ผ์ด ๋ ๊ฒ์ ๋๋ค.
์๋์, ์ ๋ ์ ์๊ฐ ์๋๋๋ค. ์ ๋ ์ ๊ฐ ํ ์ ์์ ๋ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ์ฌ์ฉ์์ผ ๋ฟ์
๋๋ค.
๋๋ ๋น์ ์ด ์ด๋์์ ์๋์ง ์ดํดํ์ง๋ง ์ฌ๋๋ค์ด ์ฌ๊ฐ ์๊ฐ์ ์ง์ญ ์ฌํ์ ์ด์ต์ ์ํดํ๋ ์ผ์ ๋ํ ๊ธฐ๋๊ฐ ์กฐ๊ธ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
@mterron ์ ๊ธฐ๋์น์
@AndrewSav ๋น์ ์ cronjobber์ ์ ์คํธ๋ฆผ cronjob ์ปจํธ๋กค๋ฌ ์ฌ์ด์ diff๋ฅผ ์ํํด์ผ ํฉ๋๋ค. ์ง๋ ๋ฒ (1.17)์๋ ์ฐจ์ด๊ฐ ์์์ต๋๋ค. ์ ์คํธ๋ฆผ cronjob ์ปจํธ๋กค๋ฌ๋ ์ ์์ ๋ฐ๋ผ ํจ๊ณผ์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋์ง ์์ต๋๋ค.
์ ์คํธ๋ฆผ ์ปจํธ๋กค๋ฌ์๋ ๋ฌผ๋ก cronjobber๊ฐ ์์ํ๋ ๋์ฐํ ์ฑ๋ฅ ํน์ฑ๋ ์์ต๋๋ค.
@benlangfeld
cronjobber์ ์ ์คํธ๋ฆผ cronjob ์ปจํธ๋กค๋ฌ ๊ฐ์ diff๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
๊ทธ๊ฒ์ ๋์ ๊ดํ ๊ฒ์ด ์๋๋ผ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ์ํด ์ง์ ๊ฐ๋ฅํ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ ์ฌ์ ์ธ ์ฌ์ฉ์์๊ฒ diff๋ฅผ ์ํํ๋๋ก ์์ฒญํ๋ ๊ฒ์ ํฉ๋ฆฌ์ ์ด์ง ์์ต๋๋ค. ๋น๋ก ์ฐจ์ง์ด ์์๋ค๋ ์ฌ์ค์ด์ง๋ง, ์ด์ ๋ํด์๋ ์๋์์ ๋ ์ดํด๋ณด๊ณ ์ ํ๋ค.
์ ์คํธ๋ฆผ cronjob ์ปจํธ๋กค๋ฌ๋ ์ ์์ ๋ฐ๋ผ ํจ๊ณผ์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋์ง ์์ต๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๋งํ ๊ฒ์ ๋ํ ๊ณต์ ํ ํด์์ด ์๋๋๋ค.
diff์ ์ฃผ์ ์ ๋ํด: ๋น์ ์ ๋ฌด์๊ณผ ๋ฌด์์ ๊ตฌ๋ณํ๊ณ ์์ต๋๊น? ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์๋ 50๊ฐ๊ฐ ๋๋ ํ์ผ์ด ์์ผ๋ฉฐ ๋ชจ๋ ์ด๋ฆ์ด kubernetes ์์ค์ ์ด๋ฆ๊ณผ ์ผ์นํ์ง๋ ์์ต๋๋ค. ๋ณํ๊ฐ ์์๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ํ์ ํ ์ ์๋์ง ์ค๋ช ํ ์ ์์ต๋๊น? ๋ช ํํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ์๊ฒฌ์์๋ณด๋ค ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํนํ, ๊ฐ ์ธก๋ฉด์์ ๋ถ๊ธฐ/์ปค๋ฐํ๋ ํ์ผ์ ๋น๊ตํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ์ง ๋ชปํ ๊ฒ์ ๋ฌด์์ ๋๊น?
์ด๋ฒ ์ด์์ ์ง์ค์ ์ผ๋ก ์ฐธ์ฌํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ฟ ๋ฒ๋คํฐ์ค ํต์ฌ ๊ธฐ๋ฅ์ ๋ํ ์ฌ๊ฒํ ๋ฅผ ์์ฒญํ๋ ๊ฒ์ด ํ๋นํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์ ๋ค์ ์ง์ ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. "์๋ฃจ์ ์ด ๋๋ฆฌ ์ฑํ๋๊ณ ๋ชจ๋ ์ฌ๋(์๊ท๋ชจ, ๋ค์ค ํด๋ฌ์คํฐ ๋ฑ ํฌํจ)์ด ์ฌ์ฉํ ์ ์๋ค๋ฉด ํต์ฌ Kubernetes์ ๋ํด ๊ณ ๋ คํ ์ ์์ต๋๋ค." ์์ง ์์ ํ ์ค๋น๋์ง ์์ ์๋ฃจ์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ K8s ์ฝ์ด์ ์ ํฉํ๋ค๊ณ ์ธ์ ๋์๋ค๋ ์ฝ์ด ํ์ ์ฑ๋ช ์ ์ด๋ฌํ ์๋ฃจ์ ๊ฐ๋ฐ์๊ฐ ํ ๋ฆฌํ์คํธ์ ๋๋นํ ์ ์๋๋ก ํ๋ ํ๋ฅญํ ์ ํธ๊ฐ ๋ ๊ฒ์ ๋๋ค.
'ํฌํฌ'์ ์ ์์ธ @AndrewSav ๋ ์ง๊ธ๊น์ง ์ธ๊ธํ ๋ด์ฉ์ ์ ์คํ๊ฒ ๋์ํ์ง ์์ผ๋ฉฐ ์ฌ๋ฌ OSS ํ๋ก์ ํธ์ ๊ด๋ฆฌ์๋ก์ ๊ทํ์ ํ๋์ ๋๋์ต๋๋ค.
์ฒซ์งธ, cronjobber๋ Kubernetes CronJob ์ปจํธ๋กค๋ฌ์์ ํ์๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฅ ์ง์ ์ ์ธ ์์ ์ฌํญ์ด์๊ธฐ ๋๋ฌธ์ ์ฑ์ํ(๊ทธ๋ฆฌ๊ณ ๊ฒ์ฆ๋) ์๋ฃจ์ ์ ์ต์ํ์ ์๊ฐ์ด ํ์ํ์ต๋๋ค. ์๋์ ์ธ๊ธ๋ ์ด์ ๋ฅผ ๊ฐ์ํ ๋ ์ ๋ ์ ์คํธ๋ฆผ์ด ๋ง์ด ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์์ต๋๋ค.
๋์งธ, Y
์๊ฐ๋ Z
๋ฅผ ๊ณ ๋ คํ์ฌ X
์์
์ ์์ฑํ๋ ๊ฒ์ ๋ก์ผ ๊ณผํ์ด ์๋๋ฉฐ ๊ฐ๋
์๊ฐ์ ๋ํ ์ฌ์์ ๋ช ๋
๋์ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฏ๋ก ' ์ ์ ํ ์๊ฐ์ Kubernetes ๊ธฐ๋ณธ ์์
์ ์์ฑํ ์ ์๋์ง ํ์ธํ๋ ๊ฒ ์ธ์๋ ์ ์ง ๊ด๋ฆฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค(์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ต์ ์ํ์ด๋ฉฐ @mterron ๋๋ถ์ ๋์ฐ๋ฏธ๋ฅผ ์ฌ์ฉํ ์ ์์).
๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ํ์ธํ ๋ ์๋ฒฝํ๊ฒ ์ํํ ์ ์๋ ์ด๋ฌํ ์์ ์ ์์ฑํ ์ ์๋ ํ ๋ด ์๊ฐ์ ๋ค๋ฅธ ๊ณณ์์ ๋ณด๋ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ฒ์ด ๊ทํ์ ํ์ค์ ๋ง์ง ์์ผ๋ฉด ๊ทํ๋ฅผ ์ํด ์ ์ฌํ ์๋ฃจ์ ์ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ฌ๋์ ๊ณ ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@hiddeco
๋๋ ๋น์ ์ด ์ง๊ธ๊น์ง ๋งํ ๋ชจ๋ ๊ฒ์ ์ ์คํ๊ฒ ๋์ํ์ง ์์ ์ ์์ต๋๋ค
์๋ฌด๊ฒ? ๊ฐ๋ ฅํ ๋ฐ์ธ์ ๋๋ค.
์๋์ ์ค๋ช ๋ ์ด์ ๋ฅผ ๊ฐ์ํ ๋ ์ ์คํธ๋ฆผ์ด ๋ง์ด ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์์ต๋๋ค(๋๋ ๊ทธ๋ ์ง๋ ์์).
_๋ง์ด_ ๋ณ๊ฒฝ๋์ง ์์ ์๋ ์์ง๋ง ๊ณ ์ ์ํ๋ก ์ ์ง๋์ง๋ ์์ต๋๋ค. kubernetes ํ์ "์ฝ์ด Kubernetes์ ๋ํด ๊ณ ๋ ค๋๊ธฐ ์ ์" "๊ด๋ฒ์ํ๊ฒ ์ฑํ๋" ์๋ฃจ์ ์ ์ํ๋ค๊ณ ๋งํ์ต๋๋ค. ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ์ ๊ทน์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋์ง ์๋ ์๋ฃจ์ (๊ฑฐ์ 1๋ ๋์ ๋ณ๊ฒฝ ์ฌํญ ์์)์ ๊ฑฐ์ "๋๋ฆฌ ์ฑํ"๋์ง ์์ต๋๋ค. ๋ํ Kubernetes CronJob ์ปจํธ๋กค๋ฌ์ ํด๋น ์ข ์์ฑ์ด ์ ํ ๋ณ๊ฒฝ๋์ง ์์์์ ์ง๊ธ๊น์ง ์๋ฌด๋ ์ ์ฆํ์ง ๋ชปํ์ต๋๋ค. ๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ํฅ์ ๋ฐ์ ๋ชจ๋ ํ์ผ๊ณผ ๋ชจ๋ ๊ธฐ๋ณธ ์ข ์์ฑ์ ๋น๊ตํ๋ ์ข์ ๋ฐฉ๋ฒ์ ์์๋ผ ์ ์์ต๋๋ค.
๋์งธ, ์๊ฐ๋ Z๋ฅผ ๊ณ ๋ คํ๋ฉด์ Y ์๊ฐ์ ์์ X๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ก์ผ ๊ณผํ์ด ์๋๋ฉฐ ๊ฐ๋ ์๊ฐ์ ๋ํ ์ฌ์์ ๋ช ๋ ๋์ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉฐ ์ฌ์ ํ Kubernetes ๊ธฐ๋ณธ ์์ ์ ์์ฑํ ์ ์๋์ง ํ์ธํ๋ ๊ฒ ์ธ์๋ ์ ์ง ๊ด๋ฆฌ๊ฐ ํ์ํ์ง ์์์ผ ํฉ๋๋ค. ์ ์ ํ ์๊ฐ(๋ฐ ํ์ค ์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ต์ ์ํ์ด๋ฏ๋ก @mterron ๋๋ถ์ ๋์ฐ๋ฏธ๋ฅผ ์ฌ์ฉํ ์ ์์).
์ด๊ฒ์ ๋์๊ฒ ์ง๋์น๊ฒ ๋๊ด์ ์ผ๋ก ๋ค๋ฆฐ๋ค. ์ด๊ฒ์ "์ฌ์" ๋ณ๊ฒฝ์ ๊ดํ ๊ฒฝ์ฐ๋ ๋๋ญ ๋๋ค. ๋น์ ์ ์ฃฝ์ด๋ ๊ฒ์ ์์ ๊ฒ๋ค์ ๋๋ค. ๋ฒ๊ทธ๋ "์ฑ์ํ๊ณ ์๊ฐ์ด ์ ์ฆ๋" ํ๋ก์ ํธ์์๋ ์ง์์ ์ผ๋ก ๋ฐ๊ฒฌ๋๊ณ ์์ ๋ฉ๋๋ค. ์์ ์์ฑ์ ๋ก์ผ ๊ณผํ์ด ์๋ ์๋ ์์ง๋ง kubernetes ์ฝ๋๋ฒ ์ด์ค์ ๊ด๋ จ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ์์๋ด๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ๊น๋ค๋ก์ธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ ์๋ ํด๋ผ์ด์ธํธ API(kubectl)๋ฅผ ์คํ ์ด์ง์ผ๋ก ์ฎ๊ธฐ๋ ค๋ ๋ ธ๋ ฅ์ด ์์์ต๋๋ค. cron jobber์ ์ํฅ์ ์ค๋๊น? ๋ชจ๋ฅด๊ฒ ์ด์. ์ฌ์ฉ๋ cron ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ด ์ ์คํธ๋ฆผ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ํฌ๋ก ์ก๋ฒ์ ์ํฅ์ ์ค๋๊น? ๋ค์, ๋๋ ๋ชจ๋ฅธ๋ค.
๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ํ์ธํ ๋ ์๋ฒฝํ๊ฒ ์ํํ ์ ์๋ ์ด๋ฌํ ์์ ์ ์์ฑํ ์ ์๋ ํ ๋ด ์๊ฐ์ ๋ค๋ฅธ ๊ณณ์์ ๋ณด๋ด๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ด์ฐฎ์ต๋๋ค. ๋น์ ์ ์ด๋ฏธ ํด์ผ ํ ์ผ๋ณด๋ค ๋ ๋ง์ ์ผ์ ํ์ต๋๋ค. PR์ ๋ณํฉํ๊ณ ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋๋ก ์์ ์ ๊ฒ์ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ด๊ฒ์ด ๊ทํ์ ํ์ค์ ๋ง์ง ์์ผ๋ฉด ๊ทํ๋ฅผ ์ํด ์ ์ฌํ ์๋ฃจ์ ์ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ฌ๋์ ๊ณ ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ค์ ๋งํ์ง๋ง, ์ด๊ฒ์ ๋ด๊ฐ ์์ ์๊ฒฌ์์ ์ค๋ช ํ๋ฏ์ด ๋์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ง๊ธ ์ ์์ ์ ๋ํ์ดํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฃผ์ ์ ๋ํ ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ ์ธ๊ธ๋์์ ์ ์์ต๋๊น? ์ด๋ป๊ฒ ์๊ฐํด?
์ด๊ฒ์ ๋์๊ฒ ์ง๋์น๊ฒ ๋๊ด์ ์ผ๋ก ๋ค๋ฆฐ๋ค. ์ด๊ฒ์ "์ฌ์" ๋ณ๊ฒฝ์ ๊ดํ ๊ฒฝ์ฐ๋ ๋๋ญ ๋๋ค. ๋น์ ์ ์ฃฝ์ด๋ ๊ฒ์ ์์ ๊ฒ๋ค์ ๋๋ค. ๋ฒ๊ทธ๋ "์ฑ์ํ๊ณ ์๊ฐ์ด ์ ์ฆ๋" ํ๋ก์ ํธ์์๋ ์ง์์ ์ผ๋ก ๋ฐ๊ฒฌ๋๊ณ ์์ ๋ฉ๋๋ค. ์์ ์์ฑ์ ๋ก์ผ ๊ณผํ์ด ์๋ ์๋ ์์ง๋ง kubernetes ์ฝ๋๋ฒ ์ด์ค์ ๊ด๋ จ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ์์๋ด๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ๊น๋ค๋ก์ธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ ์๋ ํด๋ผ์ด์ธํธ API(kubectl)๋ฅผ ์คํ ์ด์ง์ผ๋ก ์ฎ๊ธฐ๋ ค๋ ๋ ธ๋ ฅ์ด ์์์ต๋๋ค. ํฌ๋ก ์ก๋ฒ์ ์ํฅ์ ์ค๋๊น? ๋ชจ๋ฅด๊ฒ ์ด์. ์ฌ์ฉ๋ cron ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ด ์ ์คํธ๋ฆผ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ํฌ๋ก ์ก๋ฒ์ ์ํฅ์ ์ค๋๊น? ๋ค์, ๋๋ ๋ชจ๋ฅธ๋ค.
์์งํ ์ด๊ฒ์ ๋ฐฉํด์ฃผ์๋ฅผ ์ด๋ํ๋ Whatabouttism์ผ๋ก ๋์๊ฒ์ต๋๋ค. ์ด ๋ ผ๋ฆฌ๋ ๋ฌด์์ด๋ ๋ฐ๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ๋ฌ์ฑํ๋ ค๋ ๊ฒ์ด ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์๊ฐ๋๋ฅผ ์ธ์ํ๋ cronjob์ ์คํํ๋ ๊ฒ๋งํผ ๋ณต์กํ ๊ฒ์ ์์ต๋๋ค. ๋ชจ๋ ์ฃผ๋ฅ *nix ์์คํ (k8์ด ์คํ๋๋ ์์คํ )์ ์์ญ ๋ ๋์ ํ๊ณ ํ ์๊ฐ๋ ์ง์์ ์ ๊ณตํ์ต๋๋ค(๋๋๊ฒ๋ *nix ์์คํ ์ 40๋ ์ด์ ๋์ ์ ์ฌํ ์ฐ๋ ค ์ฌํญ์ด ์๋ ์๋ฒ ํ๊ฒฝ์์ ์ฃผ๋ก ์คํ๋์ด ์์ต๋๋ค).
๋ค์ ๋งํ์ง๋ง, ์ด๊ฒ์ ๋ด๊ฐ ์์ ์๊ฒฌ์์ ์ค๋ช ํ๋ฏ์ด ๋์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ง๊ธ ์ ์์ ์ ๋ํ์ดํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฃผ์ ์ ๋ํ ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ ์ธ๊ธ๋์์ ์ ์์ต๋๊น? ์ด๋ป๊ฒ ์๊ฐํด?
๊ทธ๋ฆฌ๊ณ ad-nauseam์์ ์ธ๊ธํ๋ฏ์ด ํ์ฌ ๊ตฌํ์ ํ์ค ์๊ฐ๋๋ฅผ ์์ ํ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค.
์ด ๋ ผ๋ฆฌ๋ ๋ฌด์์ด๋ ๋ฐ๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ด ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ํ๋ค๋ฉด ๊ทธ๊ฒ์ ์์ฐํ ์ ์์ง๋ง ์์๋ ์ ์๋ ๊ฒ์ด ์๋๋ผ ๋งํ ๊ฒ์ ๊ณ ์ํ์ญ์์ค.
๊ทธ๋์ ๋๋ ๋น์ ์ด ์ฌ๊ธฐ์ ๋ฌ์ฑํ๋ ค๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ ํ ๋ชจ๋ฆ ๋๋ค.
์ค, ๋๋ ๋จ์ง ๋๋ฅผ ํฅํ hiddeco์ ๋๊ธ์ ๋ตํ๊ณ ์์ต๋๋ค. ์์์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ad-nauseam์์ ์ธ๊ธํ๋ฏ์ด ํ์ฌ ๊ตฌํ์ ์๊ฐ๋๋ฅผ ์์ ํ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. ์๊ฐ๋๋ฅผ ์ธ์ํ๋ ๊ตฌํ์ด ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ํจ์ฌ ๋ ์ ์ฉํฉ๋๋ค
๋ค์ ๋งํ๋ฉด, ๋น์ ๊ณผ ๋ด๊ฐ kubernetes cronjob์ด ํ์ค ์๊ฐ๋๋ฅผ ์ง์ํ๋ค๋ ๊ธฐ๋ณธ ์ค์ ์ด ์๋ค๊ณ ๋งํ๋ฉด ๋ง์ ๊ฒ์ ๋๋ค. ๋๋ "์ธ๋ชจ์๋ ๊ฒ์ ๊ฐ๊น๋ค"๋ ๊ฒ์ด ๋๋ฌด ๊ฐํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ง์๋๋ ์๊ฐ๋ ์ธ์ ๊ตฌํ์ด ํจ์ฌ ๋ ์ ์ฉํ ๊ฒ์ด๋ผ๋ ๋ฐ ๊ฐ๋ ฅํ ๋์ํฉ๋๋ค.
์ฌ๊ธฐ์ ๋น์ ์ ์์ ์ ๋ฌด์์ ๋๊น?
์์ ์ ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ๊ณ ์๋ "ํฌํฌ"๊ฐ "๋๋ฆฌ ์ฑํ"๋์๋ค๋ ์ฆ๊ฑฐ๊ฐ ์๊ณ ๋ฐ๋ผ์ kubernetes ํ์ด ์ด๋ฅผ ์ฑํํ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ ๋ง ์ ๊ฐ์ ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ ๊ฐ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. kubernetes์ ํตํฉ ์ฐธ์กฐ.
๋ฒ๊ทธ๋ "์ฑ์ํ๊ณ ์๊ฐ์ด ์ ์ฆ๋" ํ๋ก์ ํธ์์๋ ์ง์์ ์ผ๋ก ๋ฐ๊ฒฌ๋๊ณ ์์ ๋ฉ๋๋ค.
์ฒซ์งธ, "์ฑ์ํ" ๋ฐ "์๊ฐ์ด ์ ์ฆ๋" ๋จ์ด๋ ์ฟ ๋ฒ๋คํฐ์ค ๋๋ ํด๋น ์ํ๊ณ์ ๋ํ ๋ฌธ์ฅ์์ ์ค ์๋ฆฌ๊ฐ ์์ต๋๋ค.
๋์งธ, ์ธ์ ๋ถํฐ ์ฟ ๋ฒ๋คํฐ์ค์์ ๋ฒ๊ทธ๊ฐ ๋ฌธ์ ์์ต๋๊น? @fejta-bot์ ์๋์ผ๋ก "์์ "(๋ซ๊ธฐ)ํฉ๋๋ค. ๋ฒ๊ทธ์ ๋ํด ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์๋ฉ๋๋ค.
๋๋ ์ธ์ /์ด๋ค ์ ์ง ๋ณด์๊ฐ ๊ด์ฌ์ ๊ฐ๊ณ /๋๊ธ์ ๋ฌ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๋๋ ์ด๊ฒ์ด https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#cron -job-limitations ์๋์ ๋ฌธ์ํ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋๋ Kubernetes ํด๋ฌ์คํฐ์ด ์ ๊ณต ๋ฆฌ๋ ์ค์์ ์คํ๋๊ธฐ ๋๋ฌธ์๋ Kubernetes์ ๊ทธ "cronjobs๋"์๊ฐ๋ ์ง์์ด ์์ด์ผ ๋์ํฉ๋๋ค. ๋จผ ๋ฏธ๋์ Windows์์ Kubernetes(๋๋ ๋ณํ)๋ฅผ ์คํํ ๊ณํ์ด ์๋ ๋น์ฌ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ฐ๋ ์ ๊ฑฐ๋ถํ๋ ๊ฒ์ ๋๊น? ์ด ๋ฌธ์ ๋ฅผ ๊ฑฐ๋ถํ๋ ๋งค์ฐ ์ฝํ ์ด์ . ํด๊ฒฐ๋ ๋ฌธ์ ์ ๊ตฌ๋ณํ๊ธฐ ์ํด ์ต์ํ "triage/unresolved" ํ๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๊น?
ํต์ฌ k8์ด ์ด ๊ธฐ๋ฅ์ผ๋ก ํ์ฅ๋์ด์๋ ์ ๋๋ค๋ ๊ฒฐ์ ์ด๋ผ๋ฉด cronjob ์ง์์ ์ ๊ฑฐํ์ฌ ์ฌ๋๋ค์ด ์ํ๋ ๋๋ก ์ํ๊ณ ์๋ฃจ์ ์ ์ฑํํ๋๋ก ๊ถ์ฅํด์ผ ํ๋ค๋ ์์ ์๊ฒฌ์ ๋์ํฉ๋๋ค. ์ด๊ฒ์ ์๋ํ ๊ฒฐ๊ณผ์ ๋ํด ๋ช ์์ ์ด์ง ์๊ณ ์ฌ๋๋ค์ ํผ๋์ ๋น ๋จ๋ฆฌ๋ ํต์ฌ k8์ ๋ฌด์ธ๊ฐ๋ก ์ค์ ๋ก ๋๋๋ฌ์ง๋๋ค.
Go 1.15 ์ดํ๋ก ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ time/tzdata
ํจํค์ง๊ฐ ์๊ฒผ์ต๋๋ค. ์๋ง๋ ...?
์์นจ 7์์ ํด๋ฌ์คํฐ๋ฅผ ์ ๋
7์๊น์ง ์ค๋ฒ ํ๋ก๋น์ ๋ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๋ด ์ฌ์ฉ์๊ฐ ์๋ ๊ณณ์๋ ์ฌ๋ฆ ์๊ฐ๊ณผ ๊ฒจ์ธ ์๊ฐ์ด ์์ต๋๋ค.
๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ์ ํ ์์กดํ ์ ์๋ค.
cronjob์ผ๋ก ์๊ฐ๋๋ฅผ ๊ด๋ฆฌํ์ง ์๋ ๊ฒ์ ๋งค์ฐ ์ด์ํ ๊ฒฐ์ ์ด์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ข์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค. K8s CronJobs ์ฌ์ฉ์ ์ค์งํ๊ณ ๋์ Apache Airflow๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ํ ์ดํ๋ก ์ถ์ ํจ์ฌ ๋์์ก์ต๋๋ค. ์ฐ๋ฆฌ์ ํจ๊ป!
์ด ๋ฌธ์ ๋ https://github.com/hiddeco/cronjobber์์ ์ธ๋ถ์ ์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค.
@mattfarina
- ์๋ฃจ์ ์ด ๋๋ฆฌ ์ฑํ๋๊ณ ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ(์๊ท๋ชจ, ๋ค์ค ํด๋ฌ์คํฐ ๋ฑ ํฌํจ) ํต์ฌ Kubernetes์ ๋ํด ๊ณ ๋ คํ ์ ์์ต๋๋ค.
์ปค๋ฎค๋ํฐ ์๋ฃจ์ ์ ์ฑํ์ ์ธ์ , ์ด๋ป๊ฒ ์ธก์ ๋ฉ๋๊น?
@mattfarina @soltysh with KEP-19: ํ์ค ์๊ฐ๋๋ฅผ ๊ณ ๋ คํด์ผ ํ ๊ฐ์ ์ฌํญ ์ค ํ๋๋ก ์ธ๊ธ cronjob ์ปจํธ๋กค๋ฌ v2 ์ ๋ํ ์์ ์ด ์งํ ์ค์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ณ ์ฌ๊ณ ํ ์ ์์ต๋๊น?
์ด๋ฅผ ๊ณ ๋ ค ์ฌํญ/๊ฐ์ ๊ฐ๋ฅ์ฑ์ผ๋ก ์ธ๊ธํฉ๋๋ค. ์ด๊ฒ์ด ์ ๊ทผํ ๊ฒ์ธ์ง ๋๋ ์ธ์ ์ ๊ทผํ ๊ฒ์ธ์ง๋ ๋ณด์ฅํ์ง ์์ต๋๋ค. CronJob GA ์ด์ ์๋ ์ด๋ฌํ ์ผ์ด ๋ฐ์ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ 100% ๋ณด์ฅํ ์ ์์ต๋๋ค.
@soltysh ์์ง ์ ๋๋ก ๋ ผ์ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ์ํ ๊ธฐ๋ฅ์ด๋ผ๋ ๊ฒ์ด ๋๋ฆฌ ์ ์ฆ๋์์ต๋๋ค. ์ด๊ฒ์ ๋ํด ๊ณต์ ์ฐจ๋ผ๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ ๋ฉ์ธํ ์ด๋์ ์ฌ์ฉ์ ์ฌ์ด์ ์์ฒญ๋ ๋จ์ ์ ๋ณด์ฌ์ค๋๋ค.
@benlangfeld ์ ๋ ์ด์ ๋ํด ๋งค์ฐ ๊ฐ๋ฐฉ์ ์ด์ง๋ง ์๊ฐ์ด ์ฌ๊ธฐ์ ์ฃผ์ ์ ํ ์์์ ๋๋ค.์ค๋ง:
@benlangfeld ์ ๋ ์ด์ ๋ํด ๋งค์ฐ ๊ฐ๋ฐฉ์ ์ด์ง๋ง ์๊ฐ์ด ์ฃผ์ ์ ํ ์์์ ๋๋ค ๐
์ด๋ฏธ ์ ์๋ ์์ ์ฌํญ์ด ์์ต๋๋ค. ์ด๋ฅผ ์๋ฝํ๋ ค๋ฉด ์ด๋ค ์ ๋ ฅ์ด ํ์ํฉ๋๊น?
์ปจํธ๋กค๋ฌ๊ฐ ๋ค์ ์์ฑ๋๊ณ ์์ผ๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก ์ง๊ธ์ ์ฃผ์ ์ด์ ์ ๋๋ค. ๋ณ๊ฒฝ์ ์ ์ปจํธ๋กค๋ฌ์์๋ง ๊ฐ๋ฅํฉ๋๋ค. ๊ต์ฒดํด์ผ ํ ์ค๋๋ ๊ฒ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
FWIW, "์๊ฐ๋ ์ค์ ๋ฐฉ๋ฒ"์ CronJob์ ๋ง๋๋ ๋ชจ๋ ์ฌ์ฉ์(๊ฐ๋ฐ์์ ๊ด๋ฆฌ์ ๋ชจ๋)๊ฐ ๋ฌป์ต๋๋ค.