๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค ํ™•์žฅ ๋ฐ ์ž๋™ ํ™•์žฅ

Kubernetes์—์„œ ์‹คํ–‰๋˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค๋Š” ๋ช…๋ น์ค„ ๋˜๋Š” ๊ตฌ์„ฑ ์žฌ์ •์˜์—์„œ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. overrides.yaml ํŒŒ์ผ์—์„œ Apigee Hybrid ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ™•์žฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ์„œ๋น„์Šค๋ฅผ ํ™•์žฅ ๋ฐ ์ž๋™ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์„œ๋น„์Šค ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ™•์žฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Kubernetes ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์™€ ์ด๋ฅผ ๊ตฌ์„ฑ ๋˜๋Š” ๋ช…๋ น์ค„์—์„œ ํ™•์žฅ ๋ฐ ์ž๋™ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์š”์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ตฌํ˜„ ๋ฐฉ์‹ ํ™•์žฅ
Cassandra StatefulSet

(์ˆ˜์ง ํ™•์žฅ๋งŒ)

๋ช…๋ น์ค„์—์„œ ํ™•์žฅํ•˜๋ ค๋ฉด kubectl scale ๋˜๋Š” patch ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์„ ํ†ตํ•ด ํ™•์žฅํ•˜๋ ค๋ฉด overrides.yaml ํŒŒ์ผ์—์„œ cassandra ๊ฐ์ฒด์˜ replicaCount ๊ตฌ์„ฑ ์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์†์„ฑ ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

StatefulSet๋Š” ์ž๋™ ํ™•์žฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Cassandra๋Š” 3๊ฐœ์˜ ๋ณต์ œ๋ณธ ์ง‘ํ•ฉ์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. 3๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๋Œ€๊ธฐ ์›Œ์ปค ๋…ธ๋“œ๋กœ Cassandra ๋…ธ๋“œ ํ’€์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Cassandra ๋…ธ๋“œ์˜ ์ˆ˜๋ฅผ ์ถ•์†Œํ•˜๋ ค๋ฉด Cassandra ์ถ•์†Œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ธ๊ทธ๋ ˆ์Šค/LoadBalancer ์ œ3์ž ํ”„๋ก์‹œ ์ธ๊ทธ๋ ˆ์Šค ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
Logger DaemonSet DaemonSets๋Š” ๋ชจ๋“  ๋…ธ๋“œ์—์„œ pod์˜ ๋ณต์ œ๋ณธ์„ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ pod ์ž์ฒด๋ฅผ ํ™•์žฅํ•  ๋•Œ pod๊ฐ€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
MART
Synchronizer
Metrics
MPs
ApigeeDeployment(์ปค์Šคํ…€ CRD) ๋ช…๋ น์ค„์—์„œ ํ™•์žฅํ•˜๋ ค๋ฉด kubectl scale ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์„ ํ†ตํ•ด ํ™•์žฅํ•˜๋ ค๋ฉด mart, synchronizer, metrics ๋˜๋Š” mp ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฐฐํฌ์˜ replicaCountMin ๊ตฌ์„ฑ ์†์„ฑ ๊ฐ’์„ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

๋ฐฐํฌ๋Š” ์ž๋™ ํ™•์žฅ์— ์ˆ˜ํ‰ํ˜• ํฌ๋“œ ์ž๋™ ํ™•์žฅ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ ๊ฐ์ฒด์˜ targetCPUUtilizationPercentage ์†์„ฑ์„ ์ˆ˜์ง ํ™•์žฅ์„ ์œ„ํ•œ ๊ธฐ์ค€์ ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด Kubernetes๊ฐ€ ์ตœ๋Œ€ replicaCountMax ๊ฐ’๊นŒ์ง€ ํฌ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์†์„ฑ ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

UDCA ApigeeDeployment(์ปค์Šคํ…€ CRD) ๊ตฌ์„ฑ์„ ํ†ตํ•ด ํ™•์žฅํ•˜๋ ค๋ฉด overrides.yaml ํŒŒ์ผ์—์„œ udca ๊ฐ์ฒด์˜ replicaCountMin ์†์„ฑ ๊ฐ’์„ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

UDCA ์„œ๋น„์Šค๋Š” ์ž๋™ ํ™•์žฅ์„ ์œ„ํ•ด ์ˆ˜ํ‰ํ˜• ํฌ๋“œ ์ž๋™ ํ™•์žฅ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. udca ๊ฐ์ฒด์˜ targetCPUUtilizationPercentage ์†์„ฑ์„ ์ˆ˜์ง ํ™•์žฅ์„ ์œ„ํ•œ ์ž„๊ณ—๊ฐ’์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด Kubernetes๊ฐ€ ์ตœ๋Œ€ replicaCountMax ๊ฐ’๊นŒ์ง€ pod๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์†์„ฑ ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.