1) Introduction to Redis Redis Operator - jangjaelee/tutorials-redis-operator GitHub Wiki


2022.06. ์ด์žฅ์žฌ ๐Ÿ“ง [email protected] ๐Ÿ“‚ https://github.com/jangjaelee ๐Ÿ“’ http://www.awx.kr


ย 

What is Redis?

Redis(Remote Dictionary System)๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฉ”๋ชจ๋ฆฌ(in-memory)๋กœ ๋ถˆ๋Ÿฌ์™€์„œ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ key-value ๊ตฌ์กฐ์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ(unstructured data)๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ๋น„๊ตฌ์กฐํ™” ์ฟผ๋ฆฌ ์–ธ์–ด(NoSQL)์„ ์ง€์›ํ•˜๋Š” ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(non-RDBMS)์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ, Redis๋Š” in-memory ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋Š” database, cache, message broker ๊ทธ๋ฆฌ๊ณ  streaming engie์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2009๋…„ Salvatore Sanfilippo(์‚ด๋ฐ”ํ† ๋ฅด ์‚ฐํ•„๋ฆฌํฌ)์— ์˜ํ•ด ANSI C๋กœ ์ž‘์„ฑ ๋˜์—ˆ์œผ๋ฉฐ, Linux, BSD ๊ทธ๋ฆฌ๊ณ  MacOS์™€ ๊ฐ™์€ ๋Œ€๋ถ€๋ถ„์˜ POSIX ์‹œ์Šคํ…œ์—์„œ ์™ธ๋ถ€ ์ข…์†์„ฑ ์—†์ด ์ž‘๋™ ํ•ฉ๋‹ˆ๋‹ค.

2015๋…„ ๋ถ€ํ„ฐ Redis Labs์—์„œ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, BSD License๋ฅผ ๋”ฐ๋ฆ„

Redis Overview

Redis๋Š” replication, Lua scripting, LRU eviction, transactions ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์˜ on-disk persistence ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Redis Sentinel์„ ํ†ตํ•œ ๊ณ ๊ฐ€์šฉ์„ฑ(High Availability) ๋ฐ Redis Cluster๋ฅผ ํ†ตํ•œ ์ž๋™ ํŒŒํ‹ฐ์…”๋‹์„ ์ œ๊ณต

Redis Data Structures

Redis_Data_Structures.png

[์ถœ์ฒ˜] https://askmiddlewareexpert.com/redis-introduction/

ย 

Redis Replication vs Sharding

Redis๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ๊ณต์œ  ์œ ํ˜• replicaiton(mirroring ์ด๋ผ๊ณ ๋„ ํ•จ)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ณต์ œ์™€ sharding(partitioning ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ถ„ํ• ์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Redis Cluster๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋™์‹œ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Replication

ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šฌ๋ ˆ์ด๋ธŒ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๊ณ  ํ•ด๋‹น ๋…ธ๋“œ ์ค‘ ์ผ๋ถ€๊ฐ€ ๋‹ค์šด๋  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ง€์†์„ฑ์„ ์œ ์ง€ํ•˜์—ฌ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ „์ฒด Redis ๋…ธ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ๊ธฐ ์š”์ฒญ์ด ๋” ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

Sharding

๋ฐ์ดํ„ฐ ๋ถ„ํ• ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ• ๋˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋งŒ ์ €์žฅํ•˜๊ณ  ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ ๋…ธ๋“œ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์“ฐ๊ธฐ ์š”์ฒญ์ด ๋” ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

ย 

Redis Sentinel vs Cluster

Sentinel

Redis v2.4๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ master์™€ replicas์— ๋Œ€ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ, ์•Œ๋ฆผ(notification)์„ ๋ณด๋‚ด๊ณ  master๊ฐ€ ๋‹ค์šด๋œ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ master์™€ replica์˜ ์—ญํ• ์„ ์ „ํ™œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Redis Cluster ์—†์ด master-replica replication ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉ๋  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, sentinel binary ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” redis-server์˜ sentinel mode์—์„œ dedicated daemon์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋งˆ์Šคํ„ฐ ์„ ์ถœ์„ ์œ„ํ•œ ์ฟผ๋Ÿผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ Redis node ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‹ค์šด๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ์œ„ํ•ด ์ตœ์†Œ 3๊ฐœ์˜ Sentinel instance๊ฐ€ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

Cluster

Redis v3.0๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๋ถ„ํ• , ๋ณต์ œ ๋ฐ ๋…ธ๋“œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Redis Cluster ์†”๋ฃจ์…˜ ์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Redis node์— ๋ถ„ํ• ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ nodes์˜ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ผ๋ถ€ ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ํ†ต์‹ ์ง€ ๋‹จ์ ˆ๋˜๋”๋ผ๋„ ์ž‘์—…์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์šฉ์„ฑ ๋ฐ ์ ‘๊ทผ ์ง€์†์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹จ ๊ณผ๋ฐ˜์ˆ˜์˜ master node๊ฐ€ ์ฃฝ๋Š” ๊ฒฝ์šฐ๋Š” Cluster ๋™์ž‘์ด ์ค‘๋‹จ ๋ฉ๋‹ˆ๋‹ค.

ย 

Redis Operation Mode

Redis_Topology.png

[์ถœ์ฒ˜] https://loosie.tistory.com/820

Redis Standalone(One Redis instance)

๋ง ๊ทธ๋Œ€๋กœ Redis๋ฅผ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋กœ ๋™์ž‘์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Redis_Standalone.png

  • ์žฅ์ 
    • ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ  ๊ธฐ๋ณธ์ ์ธ ์„ค์ •์ด๋ฉฐ ์‹คํ–‰ ๋ฐ ๊ตฌ์„ฑ์ด ๊ฐ„๋‹จํ•จ
  • ๋‹จ์ 
    • ๋‹จ์ผ Redis instance๊ฐ€ ๋‹ค์šด๋˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ์ข…์† ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋ฉฐ ๊ฐ€์šฉ์„ฑ ๋˜๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ์ด ์ œ๊ณต๋˜์ง€ ์•Š์Œ
    • ์ˆ˜์ง์œผ๋กœ๋งŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜์—ฌ ํ˜ธ์ŠคํŠธ์˜ ๋ฆฌ์†Œ์Šค(CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ)์— ์˜ํ•ด ์ œํ•œ์ด ๋ฐœ์ƒ

Redis Replication(master-replica)

์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ Cache ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋งŒ ๋‘๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ master-replica ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ์ˆœํžˆ ๋ณต์ œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Master์—์„œ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋น„๋™๊ธฐ(asynchronous) ๋ฐฉ์‹์œผ๋กœ replica์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜๋ฉฐ, ๋ณต์ œ๋ณธ์€ ์„œ๋กœ ํ†ต์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Redis_Replication.png

  • ์žฅ์ 
    • ์„ค์ • ๋ฐ ๊ตฌ์„ค์ด ๊ฐ„๋‹จํ•จ
    • ํ•ญ์ƒ ์ตœ์‹  ๋ฐ์ดํ„ฐ ์Šค๋ƒ…์ƒท์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Œ
  • ๋‹จ์ 
    • ์“ฐ๊ธฐ(write) ์ž‘์—…์€ master์— ์˜ํ•ด ์ œํ•œ๋จ
    • master๊ฐ€ ๋‹ค์šด๋˜๋Š” ๊ฒฝ์šฐ ๋ณต์›์„ ์œ„ํ•ด์„œ๋Š” ์ˆ˜๋™์œผ๋กœ replica๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  replica๋ฅผ master ์—ญํ• ๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•จ
    • replica(๋ณต์ œ๋ณธ)์˜ ํ™œ์šฉ์„ฑ์ด ๋–จ์–ด์ง

Redis Sentinel

Replication(master-replica)์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ Sentinel mode๋Š” master node๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด replica๊ฐ€ ์ž๋™์œผ๋กœ master๋กœ ์„ ์ถœํ•˜์—ฌ node๋ฅผ ์Šน๊ฒฉ์‹œํ‚ค๊ณ  ์ž๋™ Failover๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Redis_Sentinel.png

  • ์žฅ์ 
    • Redis-Sentinel์€ Redis binary์— ๋‚ด์žฅ๋˜์–ด ์„ค์ •์ด ์‰ฌ์›€
    • ๋งค์šฐ ์•ˆ์ •์ ์ด๋ฉฐ ์ž๋™ ๋ณต์›๋ ฅ ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ ์ œ๊ณต
  • ๋‹จ์ 
    • ์ตœ์†Œ 3๊ฐœ์˜ Sentinel instances๊ฐ€ ํ•„์š”(master ์„ ์ถœํ•  ๋•Œ ๋‹ค์ˆ˜๊ฒฐ ํˆฌํ‘œ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•จ)
    • ๋ฐฉํ™”๋ฒฝ ์‚ฌ์šฉ์‹œ Sentinels ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•ด ๋ฐฉํ™”๋ฒฝ์„ ๊ตฌ์„ฑ์„ ํ•ด์•ผํ•จ
    • client๊ฐ€ Redis-Sentinel์„ ๋ฐ˜๋“œ์‹œ ์ง€์›ํ•ด์•ผ sentinel ์ƒํƒœ์™€ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋งˆ์Šคํ„ฐ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Œ

Redis Cluster

Redis Cluster๋Š” Redis๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ง ์‹œ์Šคํ…œ์œผ๋กœ ์—ฌ๋Ÿฌ Redis node์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ sharding ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

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

Redis_Cluster.png

  • ์žฅ์ 
    • ํด๋Ÿฌ์Šคํ„ฐ ๋‹จ์œ„์˜ ๊ณ ๊ฐ€์šฉ์„ฑ(HA) ๊ตฌ์„ฑ (Master Cluster / Replica Cluster)
    • ์ตœ๋Œ€ 1,000๋Œ€ ๊นŒ์ง€ ํ™•์žฅ์„ฑ์„ ์ œ๊ณต
    • ๋ฐ์ดํ„ฐ๋Š” ์Šฌ๋กฏ ์ €์žฅ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋…ธ๋“œ ์ค‘ ๋ฐ์ดํ„ฐ ๊ณต์œ  ๋ฐ ๋ถ„ํฌ๋Š” ๋™์ ์œผ๋กœ ์กฐ์ • ๊ฐ€๋Šฅ
    • ์šด์˜ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ๋น„์šฉ์„ ์ค„์ด๊ณ  ์‹œ์Šคํ…œ ํ™•์žฅ์„ฑ๊ณผ ๊ฐ€์šฉ์„ฑ์ด ํ–ฅ์ƒ๋จ
  • ๋‹จ์ 
    • ์•ˆ์ •์ ์ธ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œ 6๊ฐœ์˜ nodes๊ฐ€ ํ•„์š” (3๊ฐœ ์ด์ƒ์˜ master, 3๊ฐœ ์ด์ƒ์˜ replica)
    • ๊ท ์ผํ•œ ๋ณต์›๋ ฅ์„ ๊ฐ€์ง€๋ ค๋ฉด ๋งˆ์Šคํ„ฐ๋‹น ๋™์ผํ•œ ์ˆ˜์˜ ๋ณต์ œ๋ณธ์ด ํ•„์š”
    • ๋ฐ์ดํ„ฐ๋Š” ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ณต์ œ๋˜๋ฉฐ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Œ
    • Redis Cluster๋ฅผ ์ง€์›ํ•˜๋Š” client๋ฅผ ์‚ฌ์šฉํ•ด์•ผ shard์— ๋งž๋Š” ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ
    • Redis Cluster๋Š” ์˜ค์ง 0๋ฒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋‹จ์ผ ์ธ์Šคํ„ด์Šค ์ฒ˜๋Ÿผ 0~15์˜ ๋ณต์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ๋ถˆ๊ฐ€)

๐Ÿ“–ย  Redis replication vs sharding, sentinel vs cluster, topology๋Š” ์ด ํฌ์ŠคํŠธ๋งํฌ(https://www.notion.so/Redis-Operator-for-Redis-Sentinel-by-spotahome-b8f56625ac8d497d8908b352f240b170)์˜ ๋‚ด์šฉ์„ ๋ฒˆ์—ญ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ย 

What is Redis Operator for Kubernetes?

Redis Operator๋Š” custom resource์— ๋Œ€ํ•œ custom controller ์—ญํ• ์„ ํ•˜๋ฉฐ, Redis Server๋Š” K8s CRD(custom resource definition)๋ฅผ ํ†ตํ•ด ์ •์˜๋˜๊ณ  YAMLํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

Kubernetes Cluster์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Redis Operator๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉฐ Open Source๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ Redis Community์™€ Redis Labs์˜ Redis Enterprise๋ฅผ ์ง€์›ํ•˜๋Š” Operator๊ฐ€ ๊ฐ๊ฐ ์žˆ์Šต๋‹ˆ๋‹ค.

Redis Community์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Redis Operator๋Š” ๋‘๊ฐœ๊ฐ€ ์žˆ์œผ๋ฉฐ, Spotahome์˜ Redis Sentinel์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ๊ณผ Opstree์˜ Redis Cluster๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ย 

ย 

Kakao์—์„œ๋Š” Kubernetes ์œ„์— Redis Cluster๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ kredis Operator ๊ฐœ๋ฐœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค Redis Operator๋Š” ์‹ค์ œ ๊ฐ ์ œ์ž‘์‚ฌ์—์„œ Production ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์ง€๋งŒ Production ํ™˜๊ฒฝ์—์„œ ๋„์ž…์„ ์œ„ํ•ด์„œ๋Š” ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๋„์ž…์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ฑ…์ž„๊ณผ ๋ฐฐ์ƒ์— ๋Œ€ํ•œ ๊ถŒ๋ฆฌ ๋ฐ ์˜๋ฌด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์žˆ์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

ย 

Reference

ย 

END