Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

Sysadminka ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ชจ์ž„์ด Chelyabinsk์—์„œ ์—ด๋ฆฌ๊ณ  ์žˆ์œผ๋ฉฐ ๋งˆ์ง€๋ง‰ ๋ชจ์ž„์—์„œ๋Š” Kubernetes์˜ 1C-Bitrix์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

Bitrix, Kubernetes, Ceph - ํ›Œ๋ฅญํ•œ ์กฐํ•ฉ์ธ๊ฐ€์š”?

์ด ๋ชจ๋“  ๊ฒƒ์—์„œ ํšจ๊ณผ์ ์ธ ์†”๋ฃจ์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ž!

Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

๋ฐ‹์—…์€ 18์›” XNUMX์ผ ์ฒผ๋žด๋นˆ์Šคํฌ์—์„œ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์—์„œ ์šฐ๋ฆฌ์˜ ๋ชจ์ž„์— ๋Œ€ํ•ด ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์ž„ํŒจ๋“œ ๊ทธ๋ฆฌ๊ณ  ๋ด ์œ ํŠœ๋ธŒ.

๋ณด๊ณ ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค์‹œ๊ฑฐ๋‚˜ ์ฒญ์ทจ์ž๋กœ ์šฐ๋ฆฌ์—๊ฒŒ ์˜ค์‹œ๋ ค๋ฉด ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. [์ด๋ฉ”์ผ ๋ณดํ˜ธ] ๊ทธ๋ฆฌ๊ณ  ํ…”๋ ˆ๊ทธ๋žจ t.me/vadimisakanov์—์„œ ํ™•์ธํ•˜์„ธ์š”.

๋‚ด ๋ณด๊ณ ์„œ

Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

์Šฌ๋ผ์ด๋“œ

์†”๋ฃจ์…˜ "Kubernetes์˜ Bitrix, ๋ฒ„์ „ Southbridge 1.0"

์ €๋Š” ๋ฐ‹์—…์—์„œ ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ "Kubernetes ์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ" ํ˜•์‹์œผ๋กœ ์šฐ๋ฆฌ ์†”๋ฃจ์…˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ ์–ด๋„ Wikipedia์˜ ๊ธฐ์‚ฌ ์ˆ˜์ค€์—์„œ๋Š” Bitrix, Docker, Kubernetes, Ceph๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes์˜ Bitrix์— ๋Œ€ํ•ด ๋ฌด์—‡์ด ์ค€๋น„๋˜์–ด ์žˆ๋‚˜์š”?

Kubernetes์—์„œ Bitrix ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘๋™์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์ธํ„ฐ๋„ท ์ „์ฒด์— ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
์ œ๊ฐ€ ์ฐพ์€ ์ž๋ฃŒ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Qsoft์˜ Alexander Serbul, 1C-Bitrix ๋ฐ Anton Tuzlukov์˜ ๋ณด๊ณ ์„œ:

๊ผญ ๋“ค์–ด๋ณด์‹œ๊ธธ ๊ถŒํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž์ฒด ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ ์„ธ๋ฅดํ‚ค๋ก  ์•„๋ธŒ๋ ˆ์—.
๋” ๋งŽ์€ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค ๊ทธ๋Ÿฐ ๊ฒฐ์ •.

์•„ ๊ทธ๋ฆฌ๊ณ ... ์‚ฌ์‹ค ๊ทธ๊ฒŒ ๋‹ค์—์š”.

๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์œ„ ๋งํฌ์— ์žˆ๋Š” ์†”๋ฃจ์…˜์˜ ํ’ˆ์งˆ์„ ํ™•์ธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. :)
๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์†”๋ฃจ์…˜์„ ์ค€๋น„ํ•  ๋•Œ Alexander Serbul๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด๋Š”๋ฐ ๊ทธ์˜ ๋ณด๊ณ ์„œ๊ฐ€ ์•„์ง ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ์Šฌ๋ผ์ด๋“œ์— "Bitrix๋Š” Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."๋ผ๋Š” ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Docker์—์„œ Bitrix๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ Docker ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. https://hub.docker.com/search?q=bitrix&type=image

Kubernetes์—์„œ Bitrix๋ฅผ ์œ„ํ•œ ์™„์ „ํ•œ ์†”๋ฃจ์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ?
์•„๋‹ˆ์š”. ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

Kubernetes์—์„œ Bitrix์˜ ๋ฌธ์ œ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ฒซ์งธ, Dockerhub์˜ ๊ธฐ์„ฑ ์ด๋ฏธ์ง€๋Š” Kubernetes์— ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด(Kubernetes์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•จ) Kubernetes ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•˜๋‚˜์˜ ์ž‘์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์ž˜ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ์™œ ํ•˜๋‚˜๋งŒ? ์ฆ‰, ๋‹จ์ˆœํ• ์ˆ˜๋ก ์‹ ๋ขฐ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ์•„๋ณด๋ ค๋ฉด ์ด ๊ธฐ์‚ฌ์™€ ๋™์˜์ƒ์„ ์‹œ์ฒญํ•˜์„ธ์š”. https://habr.com/ru/company/southbridge/blog/426637/

Dockerhub์˜ Docker ์ด๋ฏธ์ง€๋Š” ์ฃผ๋กœ ์˜ฌ์ธ์› ์›์น™์— ๋”ฐ๋ผ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์ž์ฒด ์ž์ „๊ฑฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ - ์‚ฌ์ดํŠธ ์ฝ”๋“œ๋Š” ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ํŽธ์ง‘๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ์— ์ƒˆ ์„น์…˜์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ƒˆ ์„น์…˜ ์ด๋ฆ„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

Kubernetes๋Š” "๊ธฐ๋ณธ์ ์œผ๋กœ" ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ƒํƒœ ๋น„์ €์žฅ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์œ : ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ์ปจํ…Œ์ด๋„ˆ(ํฌ๋“œ)๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ผ๋ถ€๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ(ํฌ๋“œ)์—์„œ๋งŒ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ํฌ๋“œ๋งˆ๋‹ค ์ฝ”๋“œ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ , ์‚ฌ์ดํŠธ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ, ์‚ฌ์ดํŠธ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์‚ด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์…‹์งธ - ๋ฐฐํฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์ผ์ฒด์™€ ํ•˜๋‚˜์˜ "ํด๋ž˜์‹" ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์ด ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ์„ ์ƒˆ ๋ฒ„์ „์˜ ์ฝ”๋“œ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ™˜์ด ์ฆ‰์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Kubernetes์— ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ๊ณ  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ๋œ ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์˜ ์ฝ”๋“œ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ์ด์ „ ์ฝ”๋“œ ๋Œ€์‹  ์ด๋ฅผ ๋กค์•„์›ƒํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ , ์ด์ƒ์ ์œผ๋กœ๋Š” ๋ฐฉ๋ฌธ์ž๊ฐ€ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ Kubernetes๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•˜์—ฌ ์ด๋ฅผ ๋„์™€์ค๋‹ˆ๋‹ค.

๋„ท์งธ - ์ •์  ์ €์žฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ๊ฐ€ 10GB์— ๋ถˆ๊ณผํ•˜๊ณ  ์ „์ฒด๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” 10GB ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์ดํŠธ์˜ "๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด" ๋ถ€๋ถ„์„ ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์— ์ €์žฅํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์ƒ๊น๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์†”๋ฃจ์…˜์—์„œ ๋ฌด์—‡์ด ๋น ์กŒ๋‚˜์š”?

์ „์ฒด Bitrix ์ฝ”๋“œ๋Š” ๋งˆ์ดํฌ๋กœ ๊ธฐ๋Šฅ/๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋กœ ๊ตฌ๋ถ„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋“ฑ๋ก์ด ๋ณ„๋„, ์˜จ๋ผ์ธ ์ƒ์  ๋ชจ๋“ˆ์ด ๋ณ„๋„ ๋“ฑ). ์šฐ๋ฆฌ๋Š” ์ „์ฒด ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๊ฐ ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์šฐ๋ฆฌ๋Š” Kubernetes์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ €๋Š” ์—ฌ์ „ํžˆ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์œ„ํ•ด Kubernetes์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ๋Š” ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ํ”„๋กœ๋•์…˜์šฉ์€ ์•„๋‹™๋‹ˆ๋‹ค).

์‚ฌ์ดํŠธ๊ฐ€ Kubernetes์—์„œ ์‹คํ–‰๋œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์—ฌ์ „ํžˆ ๋ˆˆ์— ๋•๋‹ˆ๋‹ค. "์‹œ์Šคํ…œ ํ™•์ธ" ๊ธฐ๋Šฅ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ์‚ฌ์ดํŠธ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•˜๋ ค๋ฉด ๋จผ์ € "์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜์—ˆ๊ณ , ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌํ˜„์˜ ํ•„์š”์„ฑ์ด ๊ฒฐ์ •๋˜์—ˆ์œผ๋ฉฐ, ๋ชฉํ‘œ๋Š” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. Bitrix์˜ ๊ธฐ๋Šฅ๊ณผ Kubernetes์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์œ ์ง€ํ•˜๋ฉด์„œ Kubernetes์˜ Bitrix์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘๋™ ์‹œ์Šคํ…œ์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ตฌํ˜„์„ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ

์›น ์„œ๋ฒ„(์ž‘์—…์ž)์™€ ํ•จ๊ป˜ "์ž‘๋™ํ•˜๋Š”" ํฌ๋“œ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
cron ์ž‘์—…์ด ์žˆ๋Š” ์•„๋ž˜ ํ•˜๋‚˜(ํ•˜๋‚˜๋งŒ ํ•„์š”ํ•จ)
๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ์‚ฌ์ดํŠธ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•˜๊ธฐ ์œ„ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ XNUMX๊ฐœ(๋˜ํ•œ ํ•˜๋‚˜๋งŒ ํ•„์š”ํ•จ)

Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

์šฐ๋ฆฌ๋Š” ์งˆ๋ฌธ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค:

  • ์„ธ์…˜์„ ์–ด๋””์— ์ €์žฅํ•˜๋‚˜์š”?
  • ์บ์‹œ๋Š” ์–ด๋””์— ์ €์žฅํ•˜๋‚˜์š”?
  • ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ์— ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ์ •์ ์„ ๋ฐฐ์น˜ํ•˜์ง€ ์•Š๊ณ  ์ •์ ์„ ์–ด๋””์— ์ €์žฅํ•  ๊ฒƒ์ธ๊ฐ€?
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

๋„์ปค ์ด๋ฏธ์ง€

Docker ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒ์ ์ธ ์˜ต์…˜์€ ํ•˜๋‚˜์˜ ๋ฒ”์šฉ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ–๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—…์ž ํฌ๋“œ, Crontask๊ฐ€ ์žˆ๋Š” ํฌ๋“œ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ํฌ๋“œ๋ฅผ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฐ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” nginx, apache/php-fpm(๋นŒ๋“œ ์ค‘์— ์„ ํƒ ๊ฐ€๋Šฅ), ๋ฉ”์ผ ์ „์†ก์„ ์œ„ํ•œ msmtp ๋ฐ cron์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ์–ด์…ˆ๋ธ”ํ•  ๋•Œ ์‚ฌ์ดํŠธ์˜ ์ „์ฒด ์ฝ”๋“œ ๋ฒ ์ด์Šค๊ฐ€ /app ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค(๋ณ„๋„์˜ ๊ณต์œ  ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•  ๋ถ€๋ถ„์€ ์ œ์™ธ).

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์„œ๋น„์Šค

์ž‘์—…์ž ํฌ๋“œ:

  • nginx๊ฐ€ ํฌํ•จ๋œ ์ปจํ…Œ์ด๋„ˆ + ์ปจํ…Œ์ด๋„ˆ apache/php-fpm + msmtp
  • msmtp๋ฅผ ๋ณ„๋„์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฑด ์ž˜ ์•ˆ ๋๊ณ , Bitrix๋Š” ์ง์ ‘ ๋ฉ”์ผ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์— ๋ถ„๊ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ์ปจํ…Œ์ด๋„ˆ์—๋Š” ์™„์ „ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ํฌ๋ก :

  • Apache, PHP, Cron์ด ํฌํ•จ๋œ ์ปจํ…Œ์ด๋„ˆ
  • ์™„์ „ํ•œ ์ฝ”๋“œ ๋ฒ ์ด์Šค ํฌํ•จ
  • ์ปจํ…Œ์ด๋„ˆ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ๊ธˆ์ง€

์•„๋ž˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ:

  • nginx ์ปจํ…Œ์ด๋„ˆ + apache/php-fpm ์ปจํ…Œ์ด๋„ˆ + msmtp
  • ์ปจํ…Œ์ด๋„ˆ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๊ธˆ์ง€๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์„ธ์…˜ ์ €์žฅ

Bitrix ์บ์‹œ ์Šคํ† ๋ฆฌ์ง€

๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ถ€ํ„ฐ ๋ฉ”์ผ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ kubernetes ๋น„๋ฐ€์— ์ €์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณด๋„ˆ์Šค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๋น„๋ฐ€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ ์‚ฌ๋žŒ์—๊ฒŒ๋งŒ ํ‘œ์‹œ๋˜๋ฉฐ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ •์ „๊ธฐ ๋ณด๊ด€

ceph, nfs(๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๋•์…˜์—๋Š” nfs๋ฅผ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ), ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์˜ ๋„คํŠธ์›Œํฌ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ ๋ฌด์—‡์ด๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์žฅ์†Œ๋Š” ์‚ฌ์ดํŠธ์˜ /upload/ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ์ •์  ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๋Š” ๊ธฐํƒ€ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ปจํ…Œ์ด๋„ˆ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋‹จ์ˆœํ™”๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Kubernetes ์™ธ๋ถ€๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Kubernetes์˜ ๊ธฐ๋ฐ˜์€ ๋ณ„๋„์˜ ๋ณต์žกํ•œ ์ž‘์—…์ด๋ฏ€๋กœ ๊ตฌ์„ฑํ‘œ๋ฅผ ํ›จ์”ฌ ๋” ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์„ธ์…˜ ์ €์žฅ

์šฐ๋ฆฌ๋Š” memcached๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค :)

์„ธ์…˜ ์ €์žฅ์„ ์ž˜ ์ฒ˜๋ฆฌํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ๋ง๋˜์–ด ์žˆ์œผ๋ฉฐ PHP์—์„œ session.save_path๋กœ "๊ธฐ๋ณธ์ ์œผ๋กœ" ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์€ ๋งŽ์€ ์ˆ˜์˜ ์›น ์„œ๋ฒ„๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ๊ณ ์ „์ ์ธ ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌ์—๋Š” helm์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

$ helm install stable/memcached --name session

php.ini - ์—ฌ๊ธฐ ์ด๋ฏธ์ง€์—๋Š” memcached์— ์„ธ์…˜์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

memcached๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/.
์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ, ๋‹จ๊ณ„, ํ…Œ์ŠคํŠธ, ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(Memcached ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์„ธ์…˜์˜ ๊ณ ์œ ํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).
Bitrix ์บ์‹œ ์Šคํ† ๋ฆฌ์ง€

๋ชจ๋“  ํฌ๋“œ์—์„œ ์“ฐ๊ณ  ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ memcached๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด ์†”๋ฃจ์…˜์€ Bitrix ์ž์ฒด์—์„œ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

$ helm install stable/memcached --name cache

bitrix/.settings_extra.php - ์—ฌ๊ธฐ Bitrix์—์„œ๋Š” ์บ์‹œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์œ„์น˜๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํฌ๋ก ํƒ€์Šคํ‚ค

Kubernetes์—์„œ Crontask๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ๋Š” ๋‹ค์–‘ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Crontask ์‹คํ–‰์„ ์œ„ํ•œ Pod๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ„๋„ ๋ฐฐํฌ
  • crontask ์‹คํ–‰์„ ์œ„ํ•œ cronjob(์›น ์•ฑ์ธ ๊ฒฝ์šฐ - wget ์‚ฌ์šฉ) https://$host$cronjobname๋˜๋Š” ์ž‘์—…์ž Pod ์ค‘ ํ•˜๋‚˜ ๋‚ด๋ถ€์˜ kubectl exec ๋“ฑ)
  • ๋“ฑ

๊ฐ€์žฅ ์ •ํ™•ํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ๋…ผ์Ÿํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” "Crontask์šฉ ํฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ„๋„ ๋ฐฐํฌ" ์˜ต์…˜์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์™„๋ฃŒ ๋ฐฉ๋ฒ•:

  • ConfigMap ๋˜๋Š” config/addcron ํŒŒ์ผ์„ ํ†ตํ•ด cron ์ž‘์—… ์ถ”๊ฐ€
  • ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ์ž‘์—…์ž ํฌ๋“œ์™€ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ํฌ๋ผ์šด ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์ผํ•œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ํ†ตํ•ฉ ๋•๋ถ„์— ์ปจํ…Œ์ด๋„ˆ ์กฐ๋ฆฝ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์–ป๋Š” ์ด์ :

  • ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž ํ™˜๊ฒฝ(docker)๊ณผ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ Crontask๋ฅผ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Crontask๋Š” Kubernetes์šฉ์œผ๋กœ "๋‹ค์‹œ ์ž‘์„ฑ"ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์ด์ „๊ณผ ๋™์ผํ•œ ํ˜•์‹๊ณผ ๋™์ผํ•œ ์ฝ”๋“œ ๋ฒ ์ด์Šค์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๋•์…˜ ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์ปค๋ฐ‹ ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ชจ๋“  ํŒ€ ๊ตฌ์„ฑ์›์ด cron ์ž‘์—…์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Southbridge K8SDeploy ๋ชจ๋“ˆ ๋ฐ ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ์ฝ”๋“œ ํŽธ์ง‘

์šฐ๋ฆฌ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๊ณณ์œผ๋กœ ๊ตํ†ต์„ ์•ˆ๋‚ดํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋งŒ์„ธ, ์šฐ๋ฆฌ๋Š” PHP์—์„œ ์ด์— ๋Œ€ํ•œ ๋ชจ๋“ˆ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. :) ์ด๊ฒƒ์€ Bitrix๋ฅผ ์œ„ํ•œ ์ž‘์€ ํด๋ž˜์‹ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์•„์ง ๊ณต๊ฐœ๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๊ณต๊ฐœํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
๋ชจ๋“ˆ์€ Bitrix์˜ ์ผ๋ฐ˜ ๋ชจ๋“ˆ์ฒ˜๋Ÿผ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  Kubernetes๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ ํฌ๋“œ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฟ ํ‚ค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ์ด ์™„๋ฃŒ๋˜๋ฉด git push๋ฅผ ํด๋ฆญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด git์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹œ์Šคํ…œ์€ ์ƒˆ ๋ฒ„์ „์˜ ์ฝ”๋“œ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์— "๋กค์•„์›ƒ"ํ•˜์—ฌ ์ด์ „ ํฌ๋“œ๋ฅผ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค. .

์˜ˆ, ์•ฝ๊ฐ„์˜ ๋ฒ„ํŒ€๋ชฉ์ด์ง€๋งŒ ๋™์‹œ์— ์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ ์ง€ํ•˜๊ณ  Bitrix ์‚ฌ์šฉ์ž๊ฐ€ ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ธฐํšŒ๋ฅผ ๋นผ์•—์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ด๊ฒƒ์€ ์˜ต์…˜์ด๋ฉฐ ์ฝ”๋“œ ํŽธ์ง‘ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํˆฌ๊ตฌ ์ฐจํŠธ

Kubernetes์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ Helm ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Kubernetes์˜ Bitrix ์†”๋ฃจ์…˜์„ ์œ„ํ•ด ์ตœ๊ณ ์˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์ธ Sergey Bondarev๊ฐ€ ํŠน๋ณ„ํ•œ Helm ์ฐจํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—…์ž, ์—…๊ทธ๋ ˆ์ด๋“œ, ํฌ๋ก  ํฌ๋“œ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์ˆ˜์‹ , ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  Kubernetes ๋น„๋ฐ€์—์„œ ํฌ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

Gitlab์— ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ  Gitlab์—์„œ Helm ๋นŒ๋“œ๋„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

$ helm upgrade --install project .helm --set image=registrygitlab.local/k8s/bitrix -f .helm/values.yaml --wait --timeout 300 --debug --tiller-namespace=production

๋˜ํ•œ Helm์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ ์ค‘์— ๊ฐ‘์ž๊ธฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ "์›ํ™œํ•œ" ๋กค๋ฐฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "ํ”„๋กœ๋“œ๊ฐ€ ๋–จ์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ftp๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •"ํ•˜๋Š” ๋‹นํ™ฉํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ์ข‹์ง€๋งŒ Kubernetes๋Š” ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„ ์—†์ด ์ž๋™์œผ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ

์˜ˆ, ์šฐ๋ฆฌ๋Š” Gitlab ๋ฐ Gitlab CI์˜ ํŒฌ์ด๋ฉฐ ์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. :)
Gitlab์—์„œ ํ”„๋กœ์ ํŠธ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹ํ•˜๋ฉด Gitlab์€ ์ƒˆ ๋ฒ„์ „์˜ ํ™˜๊ฒฝ์„ ๋ฐฐํฌํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๊ณ„ :

  • ๋นŒ๋“œ(์ƒˆ Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ)
  • ํ…Œ์ŠคํŠธ (ํ…Œ์ŠคํŠธ)
  • ์ •๋ฆฌ(ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ œ๊ฑฐ)
  • ํ‘ธ์‹œ(Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค)
  • ๋ฐฐํฌ(Helm์„ ํ†ตํ•ด Kubernetes์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค).

Chelyabinsk์˜ Southbridge์™€ Kubernetes์˜ Bitrix

๋งŒ์„ธ, ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•ด ๋ด…์‹œ๋‹ค!
๊ธ€์Ž„์š”, ์•„๋‹ˆ๋ฉด ์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ๋ฌผ์–ด๋ณด์„ธ์š”.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ํ–ˆ๋‚˜์š”?

๊ธฐ์ˆ ์ ์ธ ๊ด€์ ์—์„œ ๋ณด๋ฉด:

  • ๋„์ปคํ™”๋œ Bitrix;
  • Bitrix๋ฅผ ๊ฐ๊ฐ ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ "์ ˆ๋‹จ"ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํƒœ ์—†๋Š” ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ๋ฅผ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Kubernetes์—์„œ Bitrix ์—…๋ฐ์ดํŠธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  Bitrix ๊ธฐ๋Šฅ์€ ๊ณ„์† ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค(๊ฑฐ์˜ ๋ชจ๋‘).
  • ์šฐ๋ฆฌ๋Š” Kubernetes์— ๋ฐฐํฌํ•˜๊ณ  ๋ฒ„์ „ ๊ฐ„ ๋กค๋ฐฑ ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๊ด€์ ์—์„œ ๋ณด๋ฉด:

  • ๊ฒฐํ•จ ํ—ˆ์šฉ;
  • Kubernetes ๋„๊ตฌ(Gitlab CI์™€์˜ ์†์‰ฌ์šด ํ†ตํ•ฉ, ์›ํ™œํ•œ ๋ฐฐํฌ ๋“ฑ)
  • ๋น„๋ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ(๋น„๋ฐ€๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์ง์ ‘ ๋ถ€์—ฌ๋œ ์‚ฌ๋žŒ์—๊ฒŒ๋งŒ ํ‘œ์‹œ๋จ)
  • ๋‹จ์ผ ์ธํ”„๋ผ ๋‚ด์—์„œ ์ถ”๊ฐ€ ํ™˜๊ฒฝ(๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ ๋“ฑ)์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€