Kubernetes ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค PaaS ํ”Œ๋žซํผ Cozystack 1.2 ์ถœ์‹œ

Kubernetes ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค PaaS ํ”Œ๋žซํผ์ธ Cozystack 1.2์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด๋ฅผ ์œ„ํ•œ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žซํผ๊ณผ ํ”„๋ผ์ด๋น— ๋ฐ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Cozystack ํ”Œ๋žซํผ์€ ์„œ๋ฒ„์— ์ง์ ‘ ์„ค์น˜๋˜๋ฉฐ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค ์ œ๊ณต์„ ์œ„ํ•œ ์ธํ”„๋ผ ์ค€๋น„์˜ ๋ชจ๋“  ์ธก๋ฉด์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Cozystack์„ ์‚ฌ์šฉํ•˜๋ฉด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์„ ์‹œ์ž‘ํ•˜๊ณ  ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๊ธฐ๊ธฐํ•ด๋‹น ํ”Œ๋žซํผ ์ฝ”๋“œ๋Š” GitHub์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Apache-2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋žซํผ์€ Kube-OVN ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ ์†Œ์Šค ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ(ํŒจ๋ธŒ๋ฆญ) ๊ตฌํ˜„์„ ํฌํ•จํ•˜๋ฉฐ, ์„œ๋น„์Šค ๋ฉ”์‹œ ๊ตฌ์„ฑ์—๋Š” Cilium์„, ์„œ๋น„์Šค ๊ณต์ง€์—๋Š” MetalLB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ์ง€๋Š” LINSTOR์— ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฉฐ, LINSTOR๋Š” ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต์œผ๋กœ ZFS๋ฅผ, ๋ณต์ œ์—๋Š” DRBD๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. VictoriaMetrics์™€ Grafana ๊ธฐ๋ฐ˜์˜ ์‚ฌ์ „ ๊ตฌ์„ฑ๋œ ๋ชจ๋‹ˆํ„ฐ๋ง ์Šคํƒ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”. ๊ฐ€์ƒ ๊ธฐ๊ธฐ ์ด ํ”Œ๋žซํผ์€ KubeVirt ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ๊ฐ€์ƒ ๋จธ์‹ ์„ Kubernetes ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋ฉฐ, ๋ฒ ์–ด๋ฉ”ํƒˆ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ๊ด€๋ฆฌํ˜• Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ Cluster API์™€์˜ ํ•„์š”ํ•œ ๋ชจ๋“  ํ†ตํ•ฉ ๊ธฐ๋Šฅ์„ ์ด๋ฏธ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ ๋‚ด์—์„œ Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics ๋“ฑ์˜ ์„œ๋น„์Šค๋ฅผ ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cozystack 1.2.0์˜ ์ฃผ์š” ๊ธฐ๋Šฅ:

  • "๊ด€๋ฆฌํ˜• OpenSearch" ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋Œ€์‹œ๋ณด๋“œ์— ์ถ”๊ฐ€๋˜์–ด OpenSearch ํ”Œ๋žซํผ์˜ ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์—ญํ•  ํ† ํด๋กœ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, TLS๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ , HTTP ๊ธฐ๋ณธ ์ธ์ฆ์ด ๋ฐ”๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ OpenSearch ๋Œ€์‹œ๋ณด๋“œ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—”์ง„๊ณผ ํ•จ๊ป˜ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • VPC ์•ฑ์ด ์ด์ œ VPC ํ”ผ์–ด๋ง์„ ์ง€์›ํ•˜์—ฌ ๊ณต์šฉ ์•ก์„ธ์Šค ํฌ์ธํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ํ…Œ๋„ŒํŠธ ๊ฐœ์ธ ๋„คํŠธ์›Œํฌ๋ฅผ ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ ํ™˜๊ฒฝ์—์„œ ์šด์˜์ž๋Š” ๋”์šฑ ๊น”๋”ํ•œ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ๋งŒ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์ •์  ํ”„๋กœ๋น„์ €๋‹ ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. IP ์ฃผ์†Œ ํ”ผ์–ด๋ง ๋ฐ ์ •์  ๊ฒฝ๋กœ ์ง€์›์„ ์œ„ํ•ด.
  • SchedulingClass ์‹œ์Šคํ…œ์ด ๊ตฌํ˜„๋˜์–ด ์šด์˜์ž๋Š” ํ…Œ๋„ŒํŠธ์˜ ์›Œํฌ๋กœ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์œ„์น˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ…Œ๋„ŒํŠธ๋Š” Kubernetes ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋ณต์žกํ•œ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•  ํ•„์š” ์—†์ด ์›Œํฌ๋กœ๋“œ๋ฅผ ํŠน์ • ๋ฐ์ดํ„ฐ ์„ผํ„ฐ, ํ•˜๋“œ์›จ์–ด ํด๋ž˜์Šค ๋˜๋Š” ๋…ธ๋“œ ๊ทธ๋ฃน์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cozystack-scheduler๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด SchedulingClass๋Š” ํ‘œ์ค€ ํ”Œ๋žซํผ ์„ค์น˜์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • VictoriaLogs๋Š” ๋กœ๊น… ์Šคํƒ์˜ ํ™•์žฅ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด VLCluster ๊ธฐ๋ฐ˜์˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • LINSTOR๋Š” ์ด์ œ ํด๋ก  ์ƒ์„ฑ ๋ฐ ๋ณต์› ํ›„ ๋ณผ๋ฅจ ์žฌ๋ฐฐ์น˜๋ฅผ ์ง€์›ํ•˜์—ฌ ํด๋ก  ์ƒ์„ฑ ๋ฐ ๋ณต์› ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋ฐ์ดํ„ฐ ๋ฐฐ์น˜๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • external-dns๋Š” ๋ณ„๋„์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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