๋ฌด๋ฃŒ ์›น ์„ธ๋ฏธ๋‚˜ โ€œKubespray ๊ธฐ๋Šฅ ๊ฐœ์š”โ€

์™œ ํ๋ธŒ์Šคํ”„๋ ˆ์ด์ธ๊ฐ€?

์šฐ๋ฆฌ๋Š” ์•ฝ 8๋…„ ์ „์— Kubernetes๋ฅผ ์ ‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ „์—๋Š” Apache Mesos๋กœ ์ž‘์—…ํ•œ ๊ฒฝํ—˜์ด ์žˆ์—ˆ๊ณ  ์„ฑ๊ณต์ ์œผ๋กœ docker swarm์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ kXNUMXs์˜ ๊ฐœ๋ฐœ์€ ๊ณง๋ฐ”๋กœ ๋ธŒ๋ผ์งˆ ์‹œ์Šคํ…œ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค. Google์˜ ๋ฏธ๋‹ˆํ๋ธŒ๋‚˜ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹น์‹œ Kubeadm์€ etcd ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์กฐ๋ฆฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ž๊ณ  ๋‹ค๋ฅธ ์˜ต์…˜ ์ค‘์—์„œ kubespray๊ฐ€ Google ๊ฒฐ๊ณผ ์ƒ์œ„๊ถŒ์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋ณด๊ณ  ๊ทธ๊ฒƒ์„ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

๋ชจ์Šคํฌ๋ฐ” ์‹œ๊ฐ„์œผ๋กœ 23์›” 20.00์ผ XNUMX:XNUMX์— Sergey Bondarev๊ฐ€ ์ง€ํœ˜ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ์›น ์„ธ๋ฏธ๋‚˜ โ€œKubespray ๊ธฐ๋Šฅ ๊ฐœ์š”โ€, ๊ทธ๋Š” kubespray๊ฐ€ ๋ง›์žˆ๊ณ  ํšจ๊ณผ์ ์ด๋ฉฐ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๊ฐ–๋„๋ก ์ค€๋น„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ "๋ชจ๋“  ์š”๊ตฌ๋ฅดํŠธ๊ฐ€ ๋˜‘๊ฐ™์ด ๊ฑด๊ฐ•ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ƒ๊ฐ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌด๋ฃŒ ์›น ์„ธ๋ฏธ๋‚˜ โ€œKubespray ๊ธฐ๋Šฅ ๊ฐœ์š”โ€

์›จ๋น„๋‚˜์—์„œ Sergey Bondarev๋Š” kubespray์˜ ์ž‘๋™ ๋ฐฉ์‹, kubeadm, kops, rke์™€์˜ ์ฐจ์ด์ ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. kubespray์˜ ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ๊ณผ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์น˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฐ์—…์šด์˜์˜ ํŠน์ง•(๋‹จ์ )์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์šฐ๋ฆฌ๋Š” ์„ธ ์†์œผ๋กœ kubespray๋ฅผ ์žก์„๊นŒ์š”?

  • ์•ค์„œ๋ธ”ํ•˜๊ณ  ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ์–ธ์ œ๋“ ์ง€ ์ž์‹ ๋งŒ์˜ ์ˆœ๊ฐ„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Centos ๋ฐ ๊ธฐํƒ€ ๋ฐฐํฌํŒ์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜‰
  • HA ์„ค์ •. ๋งˆ์Šคํ„ฐ 3๊ฐœ๋กœ ๊ตฌ์„ฑ๋œ ๋‚ด๊ฒฐํ•จ์„ฑ etcd ํด๋Ÿฌ์Šคํ„ฐ.
  • ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ.
  • ๋Œ€์‹œ๋ณด๋“œ, ๋ฉ”ํŠธ๋ฆญ ์„œ๋ฒ„, ์ˆ˜์‹  ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜

ansible ์Šคํฌ๋ฆฝํŠธ๋Š” mitogen์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์€ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜์— ์†Œ๋น„๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ 10-15%์˜ ๊ฐ€์†์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ๊ด€์ ์œผ๋กœ ๋งํ•˜๋ฉด ํ˜„์žฌ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์น˜๋ฅผ ์œ„ํ•ด kubespray๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ XNUMX๋…„ ์ „๋งŒํผ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ...

์˜ˆ๋ฅผ ๋“ค์–ด, kops(cubespray์™€ ์œ ์‚ฌ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ AWS, GCE ๋ฐ OpenStack๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ข…๋ฅ˜์˜ ์งˆ๋ฌธ์ด ์ œ๊ธฐ๋ฉ๋‹ˆ๊นŒ? ์ด๋Ÿฌํ•œ ํด๋ผ์šฐ๋“œ์— selectel ๋˜๋Š” mail.ru์™€ ๊ฐ™์€ ์˜คํ”ˆ ์Šคํƒ์—๋„ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์™œ ํ•„์š”ํ•œ๊ฐ€์š”? rke - ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฅผ ์ข‹์•„ํ•˜์ง€๋งŒ ์ƒ์„ฑ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ž์‹ ๋งŒ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ docker๊ฐ€ ์„ค์น˜๋œ ์ด๋ฏธ ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. kubeadm - ๋˜ํ•œ Kubernetes ๊ฐœ๋ฐœ์ž์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ Docker๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Docker๋Š” ๋งˆ์นจ๋‚ด ๋‚ด๊ฒฐํ•จ์„ฑ ์„ค์ •์„ ์ƒ์„ฑํ•˜๊ณ  ๊ตฌ์„ฑ ๋ฐ ์ธ์ฆ์„œ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์œผ๋ฉฐ ์ด์ œ ๋…ธ๋“œ ๊ฐ„์— ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์ „์†กํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๋„๊ตฌ์ด์ง€๋งŒ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ๋†’์ด๋Š” ๋ฐ๋งŒ ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์น˜ํ•˜์ง€๋„ ์•Š์œผ๋ฉฐ ์„ค๋ช…์„œ์—์„œ๋Š” CNI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

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

๋ฌผ๋ก , ๋™์ผํ•œ Ansible์„ ์‚ฌ์šฉํ•˜์—ฌ rke ๋˜๋Š” kubeadm์„ ์‚ฌ์šฉํ•˜์—ฌ docker ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ท€ํ•˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ „๋ฌธํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Cubespray๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ํ›Œ๋ฅญํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋Šฅ๋ ฅ๊ณผ ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด.

๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๋ง‰ ์นœํ•ด์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด Kubernetes, ๊ทธ๋Ÿฌ๋ฉด ํ๋ธŒ์Šคํ”„๋ ˆ์ด๋ฅผ ๋งˆ์Šคํ„ฐํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ๊ณ  ๋นจ๋ผ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•  ๋‚ด์šฉ์˜ ์ผ๋ถ€์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ง€๋ฃจํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™€์„œ ์›จ๋น„๋‚˜ ๋“ฑ๋ก. ์•„๋‹ˆ๋ฉด ๋“ฑ๋กํ•˜๊ณ  ์†Œ๋“. ๋‹น์‹ ์ด ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ.

์ถœ์ฒ˜ : habr.com

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