[k8s] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ StatefulSet, Ingress, Autoscaler

StatefulSet

Stateless Application: 

Web Server๊ฐ€ ์—ฌ๊ธฐ ํ•ด๋‹น๋œ๋‹ค. (APACHE HTTP Server, Nginx, IIS app์ด ์—ฌ๋Ÿฌ๊ฐœ ๋ฐฐํฌ๋˜๋”๋ผ๋„ ๋ชจ๋‘ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰

 

๊ทธ๋ž˜์„œ app์ด ์ฃฝ์œผ๋ฉด ๋‹จ์ˆœํžˆ ๋™์ผํ•œ app์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.

 

๋ฐ˜๋“œ์‹œ ๋ณผ๋ฅจ์ด ํ•„์š”ํ•˜์ง„ ์•Š์Œ. ๋งŒ์•ฝ app์˜ ๋กœ๊ทธ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ ๋ณผ๋ฅจ์ด ์•„๋‹Œ ๋‹จ์ผ ๋ณผ๋ฅจ์œผ๋กœ ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.

 

๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ์•ฑ์— ๋™์ผํ•˜๊ฒŒ ๋ถ„์‚ฐ์‹œ์ผœ์•ผ ํ•จ. (๋„คํŠธ์›Œํฌ์˜ ์—ฐ๊ฒฐ์€ ๋‹จ์ˆœ ๋ถ„์‚ฐ ์šฉ๋„)

 

์ฆ‰, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ReplicaSet์— ํ•ด๋‹นํ•จ

 

 

 

Stateful Application:

Database ๋“ฑ์ด ์—ฌ๊ธฐ ํ•ด๋‹น๋œ๋‹ค. (mongoDB, MariaDB, redis app์ด ์—ฌ๋Ÿฌ๊ฐœ ๋ฐฐํฌ๋˜๋”๋ผ๋„ ๊ฐ๊ฐ์˜ ์—ญํ• ์ด ์žˆ์Œ)

 

๋”ฐ๋ผ์„œ app์ด ์ฃฝ์œผ๋ฉด ์ƒํ™ฉ์— ๋งž๊ฒŒ ํŠน์ •ํ•œ app์„ ๋ณต๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์—ญํ• ์ด ๋‹ค๋ฅธ ๋งŒํผ ๋ณผ๋ฅจ๋„ ๊ฐ๊ฐ์— ๋งž๊ฒŒ ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ž˜์•ผ ํŠน์ • app์ด ์ฃฝ์–ด๋„ ์ƒˆ app์ด ๊ฐ๊ฐ์˜ ๋ณผ๋ฅจ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด์„œ ํ•ด๋‹น ์—ญํ• ์„ ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

์•ฑ๋“ค์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐ๋˜์–ด์•ผ ํ•œ๋‹ค. stateless Application๊ณผ ๋‹ฌ๋ฆฌ ๋„คํŠธ์›Œํฌ์˜ ์—ฐ๊ฒฐ์— ์˜๋„๊ฐ€ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

 

์ฆ‰, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ StatefulSet์— ํ•ด๋‹นํ•จ.

 

 

 

StatefulSet  vs  ReplicaSet

StatefulSet์™€ ReplicaSet์˜ ์ฐจ์ด๋Š” ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™๋‹ค.

 

replicas๋ฅผ n์œผ๋กœ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ ReplicaSet์€ Pod์˜ ์ด๋ฆ„์ด ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑ ๋˜๊ณ , StatefulSet์—๋Š” Ordinal Index ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

 

Pod๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ReplicaSet์€ ๋™์‹œ์—, StatefulSet์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

 

Pod๊ฐ€ ์žฌ์ƒ์„ฑ ๋˜๋Š” ๊ฒฝ์šฐ ReplicaSet์€ ๋žœ๋ค์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ์ด๋ฆ„์„ ์ƒ์„ฑํ•˜๊ณ , StatefulSet์€ ๊ธฐ์กด๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ Pod๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

 

๋งŒ์•ฝ Replicas๊ฐ€ 0์œผ๋กœ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ ReplicaSet์€ Pod๋“ค์ด ๋™์‹œ์— ์‚ญ์ œ๋˜๋Š” ๋ฐ˜๋ฉด StatefulSet์€ index๊ฐ€ ๋†’์€ Pod๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค. 

 

 

 

๋‘˜์˜ ์ฐจ์ด๋Š” PVC๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋„ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. 

 

ReplicaSet์„ ์ƒ์„ฑํ•  ๋•Œ Pod์— PV๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์ง์ ‘ PVC๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋ฉด StatefulSet์€ volumeClaimTemplate์„ ์‚ฌ์šฉํ•˜์—ฌ PVC๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  Pod์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋”ฐ๋ผ์„œ ReplicaSet์€ ์ƒ์„ฑ๋˜๋Š” Pod๋“ค์ด ๋ชจ๋‘ ๊ฐ™์€ PVC๋ฅผ ์—ฐ๊ฒฐํ•˜์ง€๋งŒ, StatefulSet์˜ ๊ฒฝ์šฐ Pod๋งˆ๋‹ค PVC๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

StatefulSet์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ Pod2๊ฐ€ ์‚ญ์ œ๋˜๊ณ  ๋‹ค์‹œ ๋งŒ๋“ค์–ด์ง€๋ฉด ๊ธฐ์กด์— ์žˆ๋˜ PVC-2์™€ ๋‹ค์‹œ ์—ฐ๊ฒฐ๋œ๋‹ค. ์ฆ‰, Pod๊ฐ€ ์‚ญ์ œ๋˜๋„ PVC๋Š” ๋‚จ์•„์žˆ๋Š”๋‹ค๋Š” ๋ง์ด๋‹ค.

 

 

 

ReplicaSet์€ ๊ฐ ๋…ธ๋“œ๋“ค๊ณผ PVC๊ฐ€ ๊ฐ™์€ ๋…ธ๋“œ์— ์žˆ์–ด์•ผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ Pod-913jg๊ฐ€ PVC1๊ณผ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์กด์žฌํ•œ๋‹ค๋ฉด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ํ…œํ”Œ๋ฆฟ ์•ˆ์— nodeSelector: ๋ฅผ ์ง€์ •ํ•ด์„œ ๋…ธ๋“œ๋ฅผ ์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 

๋ฐ˜๋ฉด StatefulSet์€ ์•Œ์•„์„œ ๋…ธ๋“œ์™€ ๋™์ผํ•œ ์œ„์น˜์— PVC๋“ค์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ReplicaSet์—์„œ nodeSelector๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ Pod๋“ค์„ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ PVC์™€ ๋‹ค๋ฅธ node์— ์ƒ์„ฑ๋œ Pod์—” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

StatefulSet ๋งŒ๋“ค ๋•Œ ServiceName์ด๋ผ๋Š” ์†์„ฑ์œผ๋กœ ์„œ๋น„์Šค ์ด๋ฆ„์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ์ด๋ฆ„๊ณผ ๋งค์นญ๋˜๋Š” Headless ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๋งŒ๋“ค์–ด์ง„ Pod์˜ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด ๋งŒ๋“ค์–ด์ง€๊ฒŒ๋œ๋‹ค.

๋”ฐ๋ผ์„œ InternalServer์˜ ํŠน์ • pod์—์„œ ์›ํ•˜๋Š” pod๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.  

 

 

 

 

 

 

 

Ingress

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” Ingress Controller๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ ์„œ๋น„์Šค์— ๋งž๋Š” Pod๋กœ ๋ถ„์‚ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

Ingress ๋ฅผ ์ด์šฉํ•˜๋ฉด Canary Upgrade๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

Ingress Controller๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ผ๋ถ€๋งŒ ํŠน์ • Service๋กœ ๋ถ„์‚ฐ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‹ ๊ทœ ์„œ๋น„์Šค๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์šฐ๋ฆฌ๋Š” Ingress ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฃฐ๋“ค์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ด๋Ÿฐ Ingress๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด Ingress Controller๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ ์šฉ์‹œ์ผœ์•ผ ํ•œ๋‹ค.

๋™์ž‘์„ ์œ„ํ•ด์„  ๋ณ„๋„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ธ nginx, kong๋“ฑ์„ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค. ๋งŒ์•ฝ Nginx๋ฅผ ์„ค์น˜ํ•œ๋‹ค๋ฉด deployment์™€ replicaset์ด ์ƒ์„ฑ๋˜๊ณ  ์‹ค์ œ ingress์˜ ๊ตฌํ˜„์ฒด์ธ ingress pod๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. 

 

์ด ingress pod๊ฐ€ ingress rule์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  rule๋Œ€๋กœ service๋“ค์— ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

๋˜ํ•œ ์™ธ๋ถ€์—์„œ ingress pod์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก service๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ง์ ‘ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด NodePort๋ฅผ ์‚ฌ์šฉ, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด LoadBalancer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. 

 

Ingress๋Š” ์—ฌ๋Ÿฌ ๊ฐœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

Ingress ๊ธฐ๋Šฅ 3๊ฐ€์ง€

 

1. Service Loadbalancing

Ingress rule์„ ์ •์˜ํ•˜์—ฌ ์š”์ฒญํ•œ path์— ์•Œ๋งž์€ ์„œ๋น„์Šค๋กœ LoadBalancing์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2. Canary Upgrade

๊ธฐ์กด๊ณผ ๋™์ผํ•œ host๋กœ serviceName๋งŒ ๋‹ค๋ฅด๊ฒŒ Ingress๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์˜ ์ผ๋ถ€๋งŒ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ Service๋กœ ๋ถ„์‚ฐ์‹œ์ผœ Canary Upgrade๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ด๋•Œ weight๋ฅผ ์ง€์ •ํ•˜์—ฌ ์–ผ๋งˆ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ svc-v2๋กœ ๋ณด๋‚ผ๊ฑด์ง€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ํŠน์ • ๋‚˜๋ผ๋ณ„๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ—ค๋” ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Language: kr์ธ ์š”์ฒญ์ด ์˜ค๋ฉด svc-v2๋กœ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค. 

 

 

3. ์ธ์ฆ์„œ ๊ด€๋ฆฌ

Ingress๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, tls๋ผ๋Š” ์˜ต์…˜์œผ๋กœ secret name์œผ๋กœ ์‹ค์ œ secret ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ด secret ์•ˆ์— ์ธ์ฆ์„œ๋ฅผ ๋‹ด์•„์„œ ๊ตฌ์„ฑํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋„๋ฉ”์ธ ์•ž์— https://๋ฅผ ๋ถ™์—ฌ์•ผ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค. 

 

์ด secret์•ˆ์—๋Š” data๊ฐ’์œผ๋กœ ์ธ์ฆ์„œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. 

 

 

 

 

Autoscaler

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ Autoscaler์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. Pod์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” HPA(Horizontal Pod Autoscaler), Pod์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” VPA(Vertical Pod Autoscaler), ํด๋Ÿฌ์Šคํ„ฐ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” CA(Cluster AutoScaler)๊ฐ€ ์žˆ๋‹ค. 

 

3๊ฐœ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” HPA์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

HPA (Horizontal Pod Autoscaler)

Pod์˜ ๊ฐœ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๋Š” Autoscaler ์ด๋‹ค.

ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•˜์—ฌ ํ˜„์žฌ ๋™์ž‘์ค‘์ธ Pod์˜ ๋ฆฌ์†Œ์Šค ์ž์›์ด ๋ชจ๋‘ ์‚ฌ์šฉ๋˜๋Š” ์ƒํ™ฉ์— ๋„๋‹ฌํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ, ์‚ฌ์ „์— ์ •์˜ํ•œ HPA๊ฐ€ Controller์˜ replicas๋ฅผ ์กฐ์ ˆํ•˜์—ฌ Pod์˜ ๊ฐœ์ˆ˜๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.

 

Pod์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ˆ˜ํ‰์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ Scale Out / ์ค„์–ด๋“œ๋Š” ๊ฒƒ์„ Scale In์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (์ˆ˜์ง์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ Scale up์ด๋ผ๊ณ  ํ•จ)

 

์žฅ์•  ๋ณต๊ตฌ๊ฐ€ ์‹ ์†ํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ ธ์•ผํ•˜๋ฏ€๋กœ App์—์„œ ๊ถŒ์žฅ์„ ํ•œ๋‹ค.  ์ž์ฒด์˜ ๊ธฐ๋™ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” App์—๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ. Pod์˜ ์ˆ˜ํ‰์  ์ฆ๊ฐ€๋งŒ์ด ์ผ์–ด๋‚˜๋ฏ€๋กœ ๋ชจ๋“  pod์˜ ์—ญํ• ์ด ๊ฐ™์€ stateless app์—์„œ๋งŒ ๊ฐ€๋Šฅ.

 

์˜ˆ๋ฅผ๋“ค์–ด stateful app ์ค‘ master, slave Pod๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. HPA๋Š” master, slave Pod์ค‘ ์–ด๋–ค๊ฑธ scale up ํ•ด์•ผํ•  ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.  

 

 

 

HPA์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

Master Node์—๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ค‘์š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค์ด Podํ˜•ํƒœ๋กœ ๋„์›Œ์ ธ์žˆ๊ณ  ์—ฌ๊ธฐ์—” Deployment, ReplicaSet, HPA ๋“ฑ๋“ฑ์ด ์žˆ๋‹ค. 

 

 

HPA๊ฐ€ Pod์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋™์ž‘ ํ”„๋กœ์„ธ์Šค๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„ค์น˜ ์‹œ kubelet์ด๋ผ๋Š” ๊ฒƒ์ด ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๋งˆ๋‹ค ์„ค์น˜๋˜๊ณ , ๋…ธ๋“œ ์ž์‹ ์—๊ฒŒ ์žˆ๋Š” ํŒŒ๋“œ๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค. 

 

์‚ฌ์šฉ์ž๊ฐ€ ReplicaSet์„ ์ƒ์„ฑํ•˜๋ฉด kube-apiserver๋ฅผ ํ†ตํ•ด pod ์ƒ์„ฑ ์š”์ฒญ์ด kubelet์—๊ฒŒ ์ „๋‹ฌ๋˜๊ณ  ์ „๋‹ฌ๋œ ์š”์ฒญ์€ ๊ฐ ๋…ธ๋“œ์—์„œ Container๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. 

 

HPA๊ฐ€ ๊ฐ Pod์˜ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Resource Estimator์ธ cAdvisor๊ฐ€ kubelet์— ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ทธ๋Ÿผ metrics-server๊ฐ€ ๊ฐ๊ฐ์˜ ๋…ธ๋“œ์— ์žˆ๋Š” kubelet์„ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก kube-apiserver์— ๋“ฑ๋กํ•œ๋‹ค. HPA๋Š” ์—ฌ๊ธฐ ๋“ฑ๋ก๋œ ์ •๋ณด๋ฅผ ๋ฐ›์•„๊ฐˆ ์ˆ˜ ์žˆ๊ณ , 15์ดˆ๋งˆ๋‹ค ์ฒดํฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ ์ ˆํžˆ Scale Out, Scale In์„ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.