๋ฉ๋ชจ. ๋ฒ์ญ: ์ด ๊ธฐ์ฌ์ ์ ์๋ pipetail์ด๋ผ๋ ์ฒด์ฝ์ ์๊ท๋ชจ ํ์ฌ์ ์์ง๋์ด์ ๋๋ค. ๊ทธ๋ค์ Kubernetes ํด๋ฌ์คํฐ ์ด์๊ณผ ๊ด๋ จ๋ [๋๋ก๋ ์ฌ์ํ์ง๋ง ์ฌ์ ํ] ๋งค์ฐ ๊ด๋ จ์ฑ ์๋ ๋ฌธ์ ์ ์คํด์ ๋ํ ํ๋ฅญํ ๋ชฉ๋ก์ ์์ฑํ์ต๋๋ค.

์๋
๊ฐ Kubernetes๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ฐ๋ฆฌ๋ ๋ง์ ์์ ํด๋ฌ์คํฐ(GCP, AWS, Azure์์ ๊ด๋ฆฌํ ๋ฐ ๋น๊ด๋ฆฌํ ๋ชจ๋)๋ฅผ ๋ค๋ฃจ์์ต๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด์ ์ฐ๋ฆฌ๋ ์ผ๋ถ ์ค์๊ฐ ๋์์์ด ๋ฐ๋ณต๋๋ค๋ ๊ฒ์ ์์์ฐจ๋ฆฌ๊ธฐ ์์ํ์ต๋๋ค. ํ์ง๋ง ์ด๋ ๋ถ๋๋ฌ์ด ์ผ์ด ์๋๋๋ค. ์ฐ๋ฆฌ ์ค์ค๋ก๊ฐ ๋๋ถ๋ถ์ ์ฃ๋ฅผ ์ง์๊ธฐ ๋๋ฌธ์
๋๋ค!
์ด ๊ธฐ์ฌ์์๋ ๊ฐ์ฅ ํํ ์ค๋ฅ์ ๋ํด ์ค๋ช ํ๊ณ ์ด๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ๋ ์ค๋ช ํฉ๋๋ค.
1. ๋ฆฌ์์ค: ์์ฒญ ๋ฐ ์ ํ
์ด ์ง์ ์ ํ์คํ ๊ฐ์ฅ ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ๋ชฉ๋ก์ ์ฒซ ๋ฒ์งธ ์๋ฆฌ๋ฅผ ์ฐจ์งํ ๋งํฉ๋๋ค.
CPU ์์ฒญ์ ์ผ๋ฐ์ ์ผ๋ก ์ ํ ์ค์ ๋์ง ์์๊ฑฐ๋ ๊ฐ์ด ๋งค์ฐ ๋ฎ์ (๊ฐ ๋ ธ๋์ ๊ฐ๋ฅํ ํ ๋ง์ ํฌ๋๋ฅผ ์์ฉํ๊ธฐ ์ํด). ๋ฐ๋ผ์ ๋ ธ๋๊ฐ ๊ณผ๋ถํ ์ํ๊ฐ ๋ฉ๋๋ค. ๋์ ๋ถํ ๋์ ๋ ธ๋์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด ์์ ํ ํ์ฉ๋๊ณ ํน์ ์์ ๋ถํ๊ฐ "์์ฒญ"ํ ๊ฒ๋ง ์์ ํฉ๋๋ค. CPU ์กฐ์ . ์ด๋ก ์ธํด ์ ํ๋ฆฌ์ผ์ด์ ์ง์ฐ, ์๊ฐ ์ด๊ณผ ๋ฐ ๊ธฐํ ๋ถ์พํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค. (์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค๋ฅธ ์ต๊ทผ ๋ฒ์ญ๋ณธ์ ์ฝ์ด๋ณด์ธ์: โ" - ์ฝ. ๋ฒ์ญ)
์ต๊ณ ์ ๋ ธ๋ ฅ (๊ทน๋๋ก ์๋ ๊ถ์ฅ):
resources: {}๋งค์ฐ ๋ฎ์ CPU ์์(๋งค์ฐ ์๋ ๊ถ์ฅ):
resources:
Requests:
cpu: "1m"๋ฐ๋ฉด, CPU ์ ํ์ด ์์ผ๋ฉด ๋ ธ๋์ CPU๊ฐ ์์ ํ ๋ก๋๋์ง ์์๋๋ผ๋ ํฌ๋๊ฐ ๋ถํ์ํ๊ฒ ์ฌ์ดํด์ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ง์ฐ ์๊ฐ์ด ๋์ด๋ ์ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์๋ฅผ ๋๋ฌ์ผ ๋ ผ๋์ ๊ณ์๋๊ณ ์๋ค CPU CFS ํ ๋น๋ ํต์ฌ์ Linux ์ค์ ๋ ์ ํ์ ๋ฐ๋ผ CPU ์ฌ์ฉ๋์ด ์ ํ๋๊ฑฐ๋ CFS ํ ๋น๋์ด ๋นํ์ฑํ๋ ์ ์์ง๋ง, ์ํ๊น๊ฒ๋ CPU ์ ํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ๋ณด๋ค๋ ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ์์ ํ์ธํ์ธ์.
๊ณผ๋ํ ๋ถ๋น (๊ณผ๋ํ ์ฝ์) ๊ธฐ์ต์ ๋ ๊ด๋ฒ์ํ ๋ฌธ์ ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. CPU ํ๊ณ์ ๋๋ฌํ๋ฉด ์ฌ์ดํด์ด ๊ฑด๋๋ฐ์ด์ง๊ณ , ๋ฉ๋ชจ๋ฆฌ ํ๊ณ์ ๋๋ฌํ๋ฉด ํฌ๋๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ๋น์ ์ ๊ทธ๊ฒ์ ๊ด์ฐฐํ ์ ์ด ์๋์? ์ํฌ? ๋ค, ๋ฐ๋ก ๊ทธ๊ฑฐ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ด์.
์ด๋ฐ ์ผ์ด ์ผ์ด๋ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๊ณ ์ถ์ผ์ ๊ฐ์? ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณผ๋ํ๊ฒ ํ ๋นํ์ง ๋ง๊ณ , ๋ฉ๋ชจ๋ฆฌ ์์ฒญ์ ํ๋์ ๊ฐ๊ฒ ์ค์ ํ์ฌ ๋ณด์ฅ๋ QoS(์๋น์ค ํ์ง)๋ฅผ ์ฌ์ฉํ์ธ์(์๋ ์์ ์ฐธ์กฐ). ์ด์ ๋ํด ์์ธํ ์์๋ณด์ธ์ (Zalando์ ์์ ์์ง๋์ด)
๋ฒ์คํธ ๊ฐ๋ฅ (OOMkilled๋ฅผ ๋ฐ์ ํ๋ฅ ์ด ๋ ๋์):
resources:
requests:
memory: "128Mi"
cpu: "500m"
limits:
memory: "256Mi"
cpu: 2๋ณด์ฅ:
resources:
requests:
memory: "128Mi"
cpu: 2
limits:
memory: "128Mi"
cpu: 2๋ฆฌ์์ค๋ฅผ ์ค์ ํ ๋ ๋ฌด์์ด โโ๋์์ด ๋ ์ ์๋์?
๊ณผ ๋ฉํธ๋ฆญ ์๋ฒ ํฌ๋(๋ฐ ํฌ๋ ๋ด ์ปจํ ์ด๋)์ ํ์ฌ CPU ์๋น๋๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ณผ ์ ์์ต๋๋ค. ์๋ง๋ ์ฌ๋ฌ๋ถ์ ์ด๋ฏธ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์์ ๊ฒ๋๋ค. ๋ค์ ๋ช ๋ น์ ์คํํ์ธ์.
kubectl top pods
kubectl top pods --containers
kubectl top nodesํ์ง๋ง ํ์ฌ ์ฌ์ฉ๋๋ง ๋ณด์ฌ์ค๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ๋๋ต์ ์ธ ๊ท๋ชจ์ ๋ํ ์์ด๋์ด๋ฅผ ์ค ์ ์์ง๋ง ๊ถ๊ทน์ ์ผ๋ก ๋น์ ์๊ฒ ํ์ํ ๊ฒ์ ๋๋ค ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ฉํธ๋ฆญ ๋ณ๊ฒฝ ๋ด์ญ ("์ต๋ CPU ๋ถํ๊ฐ ์ผ๋ง์๋์?", "์ด์ ์์นจ ๋ถํ๊ฐ ์ผ๋ง์๋์?" ๋ฑ๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ตํ๊ธฐ ์ํด) ์ด๋ฅผ ์ํด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ก ๋ฉํ ์ฐ์ค, ๋ฐ์ดํฐ ๋๊ทธ ๋ฐ ๊ธฐํ ๋๊ตฌ. ๊ทธ๋ค์ ๋จ์ํ metrics-server์์ ์งํ๋ฅผ ๊ฐ์ ธ์ ์ ์ฅํ๊ณ , ์ฌ์ฉ์๋ ์ด๋ฅผ ์ฟผ๋ฆฌํ์ฌ ํด๋น ๊ทธ๋ํ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์ ์์ต๋๋ค ์๋ํํ๋ค ์ด ๊ณผ์ . CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๋ด์ญ์ ์ถ์ ํ๊ณ ์ด ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ์์ฒญ๊ณผ ์ ํ์ ๊ตฌ์ฑํฉ๋๋ค.
์ปดํจํ ๋ฅ๋ ฅ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์ฌ์ด ์ผ์ด ์๋๋ค. ๋ง์น ํญ์ ํ ํธ๋ฆฌ์ค๋ฅผ ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ํ๊ท ์๋น๋์ด ๋ฎ์(์: ์ฝ 10%) ์ปดํจํ ์ฑ๋ฅ์ ๋๋ฌด ๋ง์ ๋น์ฉ์ ์ง๋ถํ๊ณ ์๋ค๋ฉด AWS Fargate ๋๋ Virtual Kubelet ๊ธฐ๋ฐ ์ ํ์ ์ดํด๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ฌํ ์๋น์ค๋ ์๋ฒ๋ฆฌ์ค/์ฌ์ฉ๋์ ๋ฐ๋ฅธ ์๊ธ ์ฒญ๊ตฌ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์ด ์์ด ์ด๋ฌํ ์กฐ๊ฑด์์๋ ๋น์ฉ์ด ๋ ์ ๋ ดํ ์ ์์ต๋๋ค.
2. ํ์ฑ๋ ๋ฐ ์ค๋น๋ ํ๋ก๋ธ
๊ธฐ๋ณธ์ ์ผ๋ก Kubernetes์์๋ ํ์ฑ ์ํ ๋ฐ ์ค๋น ์ํ ๊ฒ์ฌ๊ฐ ํ์ฑํ๋์ด ์์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋์ ์ผ๋ ๊ฒ์ ์์ด๋ฒ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค...
ํ์ง๋ง ๋ณต๊ตฌํ ์ ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์๋น์ค๋ฅผ ๋ค์ ์์ํ ์ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น์? ๊ทธ๋ฌ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์๋ ํน์ ํฌ๋๊ฐ ํธ๋ํฝ์ ์์ ํ ์ค๋น๊ฐ ๋์๋์ง ์ด๋ป๊ฒ ์ ์ ์์๊น์? ์๋๋ฉด ๋ ๋ง์ ๊ตํต๋์ ์ฒ๋ฆฌํ ์ ์์๊น?
์ด๋ฌํ ํ ์คํธ๋ ์ข ์ข ์๋ก ํผ๋๋ฉ๋๋ค.
- ์๋๊ฐ - ์คํจํ ๊ฒฝ์ฐ ํฌ๋๋ฅผ ๋ค์ ์์ํ๋ "ํ์ฑ" ๊ฒ์ฌ
- ์ค๋น โ ์ค๋น ํ์ธ์ด ์คํจํ๋ฉด Kubernetes ์๋น์ค์์ Pod ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค(๋ค์์ ์ฌ์ฉํ์ฌ ํ์ธํ ์ ์์).
kubectl get endpoints) ๊ทธ๋ฆฌ๊ณ ๋ค์ ์ ๊ฒ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ๋๊น์ง ๊ตํต๋์ด ๋์ฐฉํ์ง ์์ต๋๋ค.
๋ ํ ์คํธ ๋ชจ๋ POD์ ์ ์ฒด ์๋ช ์ฃผ๊ธฐ ๋์ ์ํ๋ฉ๋๋ค.. ์ด๊ฑด ๋งค์ฐ ์ค์ํด์.
์ค๋น ํ๋ก๋ธ๋ ๋ก๋ ๋ฐธ๋ฐ์์ ํฌ๋๊ฐ ์ค๋น๋์์์ ์๋ฆฌ๊ธฐ ์ํด ์์ ์์๋ง ์คํ๋๋ค๋ ๊ฒ์ ์ผ๋ฐ์ ์ธ ์คํด์
๋๋ค.Ready) ํธ๋ํฝ ์ฒ๋ฆฌ๋ฅผ ์์ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๊ทธ ์ฌ์ฉ ๋ฐฉ๋ฒ ์ค ํ๋์ผ ๋ฟ์
๋๋ค.
๋ ๋ค๋ฅธ ํ๋๋ ํฌ๋์ ํธ๋ํฝ์ด ์ง๋์น๊ฒ ๋์ ๋๋ฅผ ์ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ๊ทธ๊ฒ์ ๊ณผ๋ถํ์ํจ๋ค (๋๋ ํฌ๋๊ฐ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ณ์ฐ์ ์ํํ๊ณ ์๋ ๊ฒฝ์ฐ). ์ด ๊ฒฝ์ฐ ์ค๋น์ฑ ํ์ธ์ด ๋์์ด ๋ฉ๋๋ค. ํฌ๋์ ๋ถํ๋ฅผ ์ค์ด๊ณ "๋๊ฐ"ํ์ธ์. ํฅํ ์ค๋น์ฑ ์ ๊ฒ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ฉด ํฌ๋์ ๋ค์ ๋ถํ๋ฅผ ์ฆ๊ฐ์ํค๋ค. ์ด ๊ฒฝ์ฐ(์ค๋น ํ ์คํธ๊ฐ ์คํจํ๋ฉด) ํ์ฑ ํ ์คํธ์ ์คํจํ๋ ๊ฒ์ ๋งค์ฐ ์ญํจ๊ณผ๊ฐ ์์ ๊ฒ์ ๋๋ค. ๊ฑด๊ฐํ๊ณ ์ด์ฌํ ์๋ํ๋ ํฌ๋๋ฅผ ์ ๋ค์ ์์ํด์ผ ํฉ๋๊น?
๋ฐ๋ผ์ ์ด๋ค ๊ฒฝ์ฐ์๋ ์๋ชป ๊ตฌ์ฑ๋ ๋งค๊ฐ๋ณ์๋ก ๊ฒ์ฌ๋ฅผ ํ์ฑํํ๋ ๊ฒ๋ณด๋ค ๊ฒ์ฌ๋ฅผ ์ ํ ํ์ง ์๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด, ํ์ฑ ์ฌ๋ถ ํ์ธ ์ฌ๋ณธ ์ค๋น ์ํ ํ์ธ, ๊ทธ๋ฌ๋ฉด ๋น์ ์ ํฐ ๊ณค๊ฒฝ์ ์ฒํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ฐ๋ฅํ ์ต์ ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค ๊ณผ ๋ฐ๋ก ๋์ธ์.
๊ณตํต ์ข ์์ฑ์ด ์คํจํ ๊ฒฝ์ฐ ๋ ๊ฐ์ง ์ ํ์ ๊ฒ์ฌ๊ฐ ๋ชจ๋ ์คํจํด์๋ ์ ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ํฌ๋๊ฐ ์ฐ์์ ์ผ๋ก ์คํจํ๊ฒ ๋ฉ๋๋ค. ๋ค์ ๋งํด์, .
3. ๊ฐ HTTP ์๋น์ค์ ๋ํ LoadBalancer
ํด๋ฌ์คํฐ์ ์ธ๋ถ ์ธ๊ณ์ ๊ณต๊ฐํ๊ณ ์ถ์ HTTP ์๋น์ค๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.
์๋น์ค๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฉด type: LoadBalancer, ํด๋น ์ปจํธ๋กค๋ฌ(์๋น์ค ์ ๊ณต์์ ๋ฐ๋ผ ๋ค๋ฆ)๋ ์ธ๋ถ LoadBalancer(๋ฐ๋์ L7์์ ์คํ๋ ํ์๋ ์๊ณ , ์๋ง๋ L4์์ ์คํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์)๋ฅผ ์ ๊ณตํ๊ณ ํ์ํ๋ฉฐ, ์ด๋ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ๋๋์ผ๋ก ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋น์ฉ(์ธ๋ถ ์ ์ IPv4 ์ฃผ์, ์ปดํจํ
์ฑ๋ฅ, ์ด๋น ์ฒญ๊ตฌ)์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ํ๋์ ์ธ๋ถ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ์ฌ๋ ๊ฒ์ด ํจ์ฌ ๋ ํฉ๋ฆฌ์ ์
๋๋ค. type: NodePort. ๋๋ ๋ ๋์ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ๋ฐฐํฌํฉ๋๋ค. nginx-ingress-controller (๋๋ Traefik), ์ ์ผํ๊ฒ ๊ณต์ฐํ ์ฌ๋์ด ๋ ์ฌ๋ ๋
ธ๋ํฌํธ ์ธ๋ถ ๋ก๋ ๋ฐธ๋ฐ์์ ์ฐ๊ฒฐ๋ ์๋ํฌ์ธํธ์ด๋ฉฐ ํด๋ฌ์คํฐ ๋ด์์ ํธ๋ํฝ์ ๋ผ์ฐํ
ํฉ๋๋ค. ์
๊ตฌ-์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค.
์๋ก ์ํธ ์์ฉํ๋ ๋ค๋ฅธ ํด๋ฌ์คํฐ ๋ด(๋ง์ดํฌ๋ก) ์๋น์ค๋ ๋ค์ ์ ํ์ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ "ํต์ "ํ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐIP ๊ทธ๋ฆฌ๊ณ ๋ด์ฅ๋ DNS ์๋น์ค ๊ฒ์ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค. ํ์ง๋ง ๊ณต์ฉ DNS/IP๋ ์ฌ์ฉํ์ง ๋ง์ธ์. ์ง์ฐ ์๊ฐ์ ์ํฅ์ ๋ฏธ์น๊ณ ํด๋ผ์ฐ๋ ์๋น์ค ๋น์ฉ์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค.
4. ํด๋ฌ์คํฐ์ ๊ธฐ๋ฅ์ ๊ณ ๋ คํ์ง ์๊ณ ํด๋ฌ์คํฐ์ ์๋ ํ์ฅ
ํด๋ฌ์คํฐ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ๋ ํด๋น ๋ ธ๋์ CPU ์ฌ์ฉ๋๊ณผ ๊ฐ์ ์ผ๋ถ ๊ธฐ๋ณธ ์งํ์ ์์กดํด์๋ ์ ๋ฉ๋๋ค. Pod ์ค์ผ์ค๋ง์ ๋ค์ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ์ํ๋์ด์ผ ํฉ๋๋ค. ์ ํ์๋ฅผ ๋ค์ด, ํฌ๋/๋ ธ๋ ์นํ์ฑ, ์ค์ผ ๋ฐ ํ์ฉ, ๋ฆฌ์์ค ์์ฒญ, QoS ๋ฑ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ์ง ์๋ ์ธ๋ถ ์๋ ํ์ฅ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
ํฌ๋๋ฅผ ์์ฝํด์ผ ํ์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅํ CPU ์ฉ๋์ด ๋ชจ๋ ์์ฒญ/์ ์ ๋๊ณ ํฌ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ํ์ ๊ฐํ๋ค Pending. ์ธ๋ถ ์๋ ํ์ฅ๊ธฐ๋ ํ๊ท ํ์ฌ CPU ๋ถํ(์์ฒญ๋ ๋ถํ ์๋)๋ฅผ ํ์ธํ๊ณ ํ์ฅ์ ์์ํ์ง ์์ต๋๋ค. (์ค์ผ์ผ ์์) - ๋ค๋ฅธ ๋
ธ๋๋ฅผ ์ถ๊ฐํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ํฌ๋๋ ์์ฝ๋์ง ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์ญ๋ฐฉํฅ ์ค์ผ์ผ๋ง (์ค์ผ์ผ ์ธ) - ํด๋ฌ์คํฐ์์ ๋
ธ๋๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ํญ์ ๊ตฌํํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค. ์ํ ์ ์ฅํ ํฌ๋(์๊ตฌ ์ ์ฅ์๊ฐ ์ฐ๊ฒฐ๋จ)๊ฐ ์๋ค๊ณ ์์ํด๋ณด์ธ์. ์๊ตฌ ๋ณผ๋ฅจ ๋ณดํต ~์ ์ํ๋ค ํน์ ๊ฐ์ฉ์ฑ ์์ญ ํด๋น ์ง์ญ์์๋ ๋ณต์ ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ธ๋ถ ์๋ ํ์ฅ๊ธฐ๊ฐ ์ด Pod๊ฐ ์๋ ๋
ธ๋๋ฅผ ์ ๊ฑฐํ๋ฉด ์ค์ผ์ค๋ฌ๋ ์ด Pod๋ฅผ ๋ค๋ฅธ ๋
ธ๋์ ์ค์ผ์ค๋งํ ์ ์์ต๋๋ค. ์ด๋ ์๊ตฌ ์ ์ฅ์๊ฐ ์๋ ๊ฐ์ฉ์ฑ ์์ญ์์๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ค. ํฌ๋๋ ์ํ์ ๊ฐํ๊ฒ ๋ฉ๋๋ค Pending.
์ฟ ๋ฒ๋คํฐ์ค ์ปค๋ฎค๋ํฐ์์ ๋งค์ฐ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค . ํด๋ฌ์คํฐ์์ ์คํ๋๊ณ , ์ฃผ์ ํด๋ผ์ฐ๋ ์๋น์ค ๊ณต๊ธ์ ์ฒด์ API๋ฅผ ์ง์ํ๋ฉฐ, ๋ชจ๋ ์ ํ ์ฌํญ์ ๊ณ ๋ คํ๊ณ ์์ ๊ฒฝ์ฐ์ ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ ์ค์ ๋ ํ๋๋ฅผ ๋ชจ๋ ์ ์งํ๋ฉด์ ํ์ฅ์ด ๊ฐ๋ฅํ๋ฏ๋ก ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค(๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ๋์ง ์๋ ์ฉ๋์ ๋น์ฉ์ด ์ง์ถ๋ ๊ฒ์ ๋๋ค).
5. IAM/RBAC ๊ธฐ๋ฅ ๋ฌด์
์๊ตฌ ๋น๋ฐ์ ๊ฐ์ง IAM ์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์ฃผ์ํ์ธ์. ๊ธฐ๊ณ ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ. ์ญํ ๋ฐ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์์ ์ก์ธ์ค ์ ๊ณต (์๋น์ค ๊ณ์ ).
์ฐ๋ฆฌ๋ ์ข ์ข ์ก์ธ์ค ํค(๋ฐ ๋น๋ฐ)๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์ 'ํ๋์ฝ๋ฉ'๋์ด ์๋ ๊ฒ์ ๋ณด๊ฑฐ๋, Cloud IAM์ ์ก์ธ์คํ ์ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋น๋ฐ ์ํ์ด ๋ฌด์๋๋ ๊ฒ์ ๋ด ๋๋ค. ์ ์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๋์ IAM ์ญํ ๊ณผ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ์ธ์.

kube2iam์ ์๊ณ ์๋น์ค ๊ณ์ ์ ๋ํ IAM ์ญํ ๋ก ๋ฐ๋ก ์ด๋ํ์ธ์(๋ค์์์ ์ค๋ช
). ์คํ
ํ ๋ธ๋ผ๋):
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
name: my-serviceaccount
namespace: default์ฃผ์ ํ๋. ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์ฃ ?
๋ํ ์๋น์ค ๊ณ์ ๊ณผ ์ธ์คํด์ค ํ๋กํ์ ๊ถํ์ ๋ถ์ฌํ์ง ๋ง์ธ์. admin ะธ cluster-admin, ํ์ํ์ง ์๋ค๋ฉด์. ํนํ K8s RBAC์์๋ ์ด๋ฅผ ๊ตฌํํ๊ธฐ๊ฐ ์กฐ๊ธ ๋ ์ด๋ ต์ง๋ง, ๊ทธ๋งํ ๋
ธ๋ ฅ์ ์ถฉ๋ถํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
6. ํฌ๋์ ๋ํ ์๋ ์ํฐ ์นํ์ฑ์ ์์กดํ์ง ๋ง์ญ์์ค.
๋ ธ๋์ ๋ฐฐํฌ์ ๋ณต์ ๋ณธ์ด 3๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ ธ๋๊ฐ ์ฌ๋ผ์ง๊ณ ๋ชจ๋ ๋ณต์ ๋ณธ๋ ์ฌ๋ผ์ง๋๋ค. ๋ถ์พํ ์ํฉ์ด์ฃ ? ํ์ง๋ง ์ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ๊ฐ์ ๋ ธ๋์ ์์์๊น์? ์ฟ ๋ฒ๋คํฐ์ค๋ ๊ณ ๊ฐ์ฉ์ฑ(HA)์ ์ ๊ณตํด์ผ ํ๋ ๊ฒ ์๋๊ฐ์?!
์ํ๊น๊ฒ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ค์ผ์ค๋ฌ๋ ๊ทธ ์์ฒด๋ก ๋ณ๋๋ก ์กด์ฌํ๋ ๊ท์น์ ๋ฐ๋ฅด์ง ์์ต๋๋ค. (๋ฐ์นํ์ฑ) ํฌ๋์ฉ. ๋ค์ ์ฌํญ์ ๋ช ํํ๊ฒ ๋ช ์ํด์ผ ํฉ๋๋ค.
// ะพะฟััะตะฝะพ ะดะปั ะบัะฐัะบะพััะธ
labels:
app: zk
// ะพะฟััะตะฝะพ ะดะปั ะบัะฐัะบะพััะธ
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- zk
topologyKey: "kubernetes.io/hostname" ๊ทธ๊ฒ ์ ๋ถ์
๋๋ค. ์ด์ ํฌ๋๋ ๋ค๋ฅธ ๋
ธ๋์ ์์ฝ๋ฉ๋๋ค(์ด ์กฐ๊ฑด์ ์์ฝ ์ค์๋ง ํ์ธ๋๊ณ ์๋ ์ค์๋ ํ์ธ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ requiredDuringSchedulingIgnoredDuringExecution).
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ~์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค podAntiAffinity ๋ค๋ฅธ ๋
ธ๋์์: topologyKey: "kubernetes.io/hostname", โ ๋ค์ํ ๊ฐ์ฉ์ฑ ์์ญ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๋ณธ๊ฒฉ์ ์ธ HA๋ฅผ ๊ตฌํํ๋ ค๋ฉด ์ด ์ฃผ์ ๋ฅผ ๋ ๊น์ด ํ๊ณ ๋ค์ด์ผ ํฉ๋๋ค.
7. PodDisruptionBudget ๋ฌด์
Kubernetes ํด๋ฌ์คํฐ์ ํ๋ก๋์ ๋ถํ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฃผ๊ธฐ์ ์ผ๋ก ๋ ธ๋์ ํด๋ฌ์คํฐ ์์ฒด๋ฅผ ์ ๋ฐ์ดํธ(๋๋ ํด์ )ํด์ผ ํฉ๋๋ค. PodDisruptionBudget(PDB)์ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์์ ์ฌ์ฉ์ ๊ฐ์ ์ผ์ข ์ ์๋น์ค ๋ณด์ฅ ๊ณ์ฝ์ ๋๋ค.
PDB๋ ๋ ธ๋ ๋ถ์กฑ์ผ๋ก ์ธํ ์๋น์ค ์ค๋จ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: zk-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: zookeeper์ด ์์์ ํด๋ฌ์คํฐ ์ฌ์ฉ์๋ ๊ด๋ฆฌ์์๊ฒ "์ ๋ Zookeeper ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ๋ฌด์์ ํ๋ ์ด ์๋น์ค์ ๋ณต์ ๋ณธ์ ์ต์ 2๊ฐ ์ด์ ํญ์ ์ฌ์ฉํ ์ ์๋๋ก ํด์ฃผ์ธ์."๋ผ๊ณ ๋งํฉ๋๋ค.
์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ์ฝ์ ์ ์์ต๋๋ค. .
8. ๊ณตํต ํด๋ฌ์คํฐ์ ์ฌ๋ฌ ์ฌ์ฉ์ ๋๋ ํ๊ฒฝ
์ฟ ๋ฒ๋คํฐ์ค ๋ค์์คํ์ด์ค (๋ค์์คํ์ด์ค) ๊ฐ๋ ฅํ ์ ์ฐ์ ์ ๊ณตํ์ง ๋ง์ญ์์ค.
๋นํ๋ก๋์ ๋ก๋๋ฅผ ํ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ๊ณ ํ๋ก๋์ ๋ก๋๋ฅผ ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์คํด๊ฐ ํํ ์์ต๋๋ค. ์ด๋ค ์์ผ๋ก๋ ์๋ก ์ํฅ์ ๋ฏธ์น์ง ์์ ๊ฒ์ ๋๋ค... ๊ทธ๋ฌ๋ ๋ฆฌ์์ค ์์ฒญ/์ ํ์ ์ฌ์ฉํ๊ณ , ํ ๋น๋์ ์ค์ ํ๊ณ , ์ฐ์ ์์ ํด๋์ค๋ฅผ ์ง์ ํ๋ฉด ์ผ์ ์์ค์ ๊ฒฉ๋ฆฌ๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ํ๋ฉด์ ์ผ๋ถ "๋ฌผ๋ฆฌ์ " ๊ฒฉ๋ฆฌ๋ ์นํ์ฑ, ํ์ฉ, ์ค์ผ(๋๋ ๋ ธ๋ ์ ํ๊ธฐ)์ ์ํด ์ ๊ณต๋์ง๋ง ์ด๋ฌํ ๋ถ๋ฆฌ๋ ๋งค์ฐ ์ด๋ ค์ด ๊ตฌํํ๋ค.
๋์ผํ ํด๋ฌ์คํฐ์์ ๋ ๊ฐ์ง ์ ํ์ ์ํฌ๋ก๋๋ฅผ ํผํฉํด์ผ ํ๋ ์ฌ๋๋ค์ ๋ณต์ก์ฑ์ ๊ฐ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌํ ํ์๊ฐ ์๊ณ ๊ตฌ๋งคํ ์ฌ์ ๊ฐ ์๋ค๋ฉด ๋ ๋ค๋ฅธ ํด๋ฌ์คํฐ (์๋ฅผ ๋ค์ด, ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์) ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. ์ด๋ฅผ ํตํด ํจ์ฌ ๋ ๋์ ์์ค์ ๋จ์ด์ด ๊ฐ๋ฅํด์ง๋๋ค.
9. externalTrafficPolicy: ํด๋ฌ์คํฐ
ํด๋ฌ์คํฐ ๋ด๋ถ์ ๋ชจ๋ ํธ๋ํฝ์ด ๊ธฐ๋ณธ ์ ์ฑ
์ด ์ค์ ๋ NodePort ์ ํ์ ์๋น์ค๋ฅผ ํตํด ๋ค์ด์ค๋ ๊ฒ์ ์์ฃผ ๋ณผ ์ ์์ต๋๋ค. externalTrafficPolicy: Cluster. ์ฆ, ๋
ธ๋ํฌํธ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋
ธ๋์์ ์ด๋ ค ์์ผ๋ฉฐ, ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ์๋น์ค(ํฌ๋ ์ธํธ)์ ์ํธ ์์ฉํ ์ ์์ต๋๋ค.

๋์์, ์์ ์ธ๊ธ๋ NodePort ์๋น์ค์ ์ฐ๊ด๋ ์ค์ ํฌ๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ผ๋ถ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฌํ ๋
ธ๋์ ํ์ ์งํฉ. ์ฆ, ํ์ํ Pod๊ฐ ์๋ ๋
ธ๋์ ์ฐ๊ฒฐํ๋ฉด ํธ๋ํฝ์ด ๋ค๋ฅธ ๋
ธ๋๋ก ์ ๋ฌ๋ฉ๋๋ค. ํ ์ถ๊ฐ ๊ทธ๋ฆฌ๊ณ ์ง์ฐ ์๊ฐ์ด ์ฆ๊ฐํฉ๋๋ค(๋
ธ๋๊ฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ฉ์ฑ ์์ญ/๋ฐ์ดํฐ ์ผํฐ์ ์๋ ๊ฒฝ์ฐ ์ง์ฐ ์๊ฐ์ด ๋งค์ฐ ๊ธธ์ด์ง ์ ์์ต๋๋ค. ๋ํ, ์ดํ ํธ๋ํฝ ๋น์ฉ๋ ์ฆ๊ฐํฉ๋๋ค).
๋ฐ๋ฉด, ํน์ Kubernetes ์๋น์ค์ ๋ํ ์ ์ฑ
์ด ์ ์๋ ๊ฒฝ์ฐ externalTrafficPolicy: Local๊ทธ๋ฌ๋ฉด NodePort๋ ํ์ํ ํฌ๋๊ฐ ์ค์ ๋ก ์คํ ์ค์ธ ๋
ธ๋์์๋ง ์ด๋ฆฝ๋๋ค. ์ํ๋ฅผ ํ์ธํ๋ ์ธ๋ถ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ (๊ฑด๊ฐ๊ฒ์ง) ์๋ํฌ์ธํธ(์ด๋ป๊ฒ ํ๋์? AWS ELB), ๊ทธ ํ์ํ ๋
ธ๋์๋ง ํธ๋ํฝ์ ๋ณด๋
๋๋ค.์ด๋ ์ง์ฐ ์๊ฐ, ์ปดํจํ
์๊ตฌ ์ฌํญ, ํด์ฅ ๋น์ฉ์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค(์์์ ์ผ๋ก๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค).
๋น์ ์ ์ด๋ฏธ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. Traefik ๋๋ nginx-ingress-controller HTTP ์์ ํธ๋ํฝ์ ๋ผ์ฐํ ํ๊ธฐ ์ํ NodePort ์๋ํฌ์ธํธ(๋๋ NodePort๋ฅผ ์ฌ์ฉํ๋ LoadBalancer)๋ก ์ฌ์ฉํ๊ณ ์ด ์ต์ ์ ์ค์ ํ๋ฉด ์ด๋ฌํ ์์ฒญ์ ๋ํ ์ง์ฐ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
ะ externalTrafficPolicy์ ๋ํด ์์ธํ ์์๋ณด๊ณ , ์ฅ์ ๊ณผ ๋จ์ ์ ์์๋ณด์ธ์.
10. ํด๋ฌ์คํฐ์ ์ง์ฐฉํ์ง ๋ง๊ณ ์ ์ด ํ๋ฉด์ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
์ด์ ์๋ ์๋ฒ๋ฅผ ์ ์ ํ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์์ต๋๋ค. , HAL9000 ๋ฐ Colossusโฆ ์ค๋๋ ์๋ ๋ฌด์์๋ก ์์ฑ๋ ์๋ณ์๋ก ๋์ฒด๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๊ด์ต์ ์ฌ์ ํ โโ๋จ์ ์์๊ณ , ์ง๊ธ์ ํด๋ฌ์คํฐ์ ๊ณ ์ ๋ช ์ฌ๊ฐ ๋ถ์ต๋๋ค.
์ ํ์ ์ธ ์ด์ผ๊ธฐ(์ค์ ์ฌ๊ฑด ๊ธฐ๋ฐ): ๋ชจ๋ ๊ฒ์ ๊ฐ๋ ์ฆ๋ช ์ผ๋ก ์์๋์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ๋ ์๋์ค๋ฌ์ด ์ด๋ฆ์ ๊ฐ๊ฒ ๋์์ต๋๋ค. ํ ์คํธโฆ์ฌ๋ฌ ํด๊ฐ ์ง๋ฌ์ง๋ง ์ฌ์ ํ ์์ฐ์ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ, ์๋ฌด๋ ๋ง์ง๊ธฐ๋ฅผ ๋๋ ค์ํฉ๋๋ค.
ํด๋ฌ์คํฐ๊ฐ ์ ์๋๋ฌผ๋ก ๋ณํ๋ ๊ฒ์๋ ์ฌ๋ฏธ์๋ ๊ฒ์ด ์์ผ๋ฏ๋ก ์ฐ์ตํ๋ ๋์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌํด ๋ณต๊ตฌ (์ด๊ฒ์ ๋์์ด ๋ ๊ฒ์ ๋๋ค - ๋๋ต. ๋ฒ์ญ). ๊ฒ๋ค๊ฐ, ์ ์ด ๊ณ์ธต์์ ์์ ํ๋ ๊ฒ๋ ๋์์ง ์์ ๊ฒ๋๋ค. (์ ์ด ํ๋ฉด). ๋ง์ง๋ ๊ฒ์ ๋๋ ค์ํ๋ ๊ฒ์ ๊ทธ๋ค์ง ์ข์ ์ง์กฐ๊ฐ ์๋๋๋ค. ๊ธฐํ ์ฃฝ์? ์ฌ๋ฌ๋ถ, ์ ๋ง ํฐ ๋ฌธ์ ์ ๋น ์ก์ด์!
๋ฐ๋ฉด์, ๊ทธ๊ฒ์ ์กฐ์ํ๋ ๋ฐ ๋๋ฌด ๋น ์ ธ์๋ ์ ๋ฉ๋๋ค. ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ด ๊ณ์ธต์ด ๋๋ ค์ง ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ฒด๋ฅผ ํ์ ์ํค์ง ์๊ณ ๋๋์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ผ ๊ฐ๋ฅ์ฑ์ด ๊ฐ์ฅ ๋์ต๋๋ค(๊ธฐ๋ณธ ์ค์ ์ผ๋ก Helm์ ์ฌ์ฉํ ๋ ํํ ๋ฐ์ํ๋ ์ํฉ์ผ๋ก, configmaps/secrets์ ์ํ๊ฐ ์ ๋ฐ์ดํธ๋์ง ์์ ์ ์ด ๊ณ์ธต์ ์์ฒ ๊ฐ์ ๊ฐ์ฒด๊ฐ ๋์ ๋จ) ๋๋ kube-api ๊ฐ์ฒด๋ฅผ ์ง์์ ์ผ๋ก ํธ์งํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค(์๋ ํ์ฅ, CI/CD, ๋ชจ๋ํฐ๋ง, ์ด๋ฒคํธ ๋ก๊ทธ, ์ปจํธ๋กค๋ฌ ๋ฑ์ ์ํด).
๋ํ, ๊ด๋ฆฌํ Kubernetes ๊ณต๊ธ์์ SLA/SLO ๊ณ์ฝ์ ํ์ธํ๊ณ ๋ณด์ฅ ์ฌํญ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ณต๊ธ์
์ฒด๋ ๋ณด์ฆํ ์ ์์ต๋๋ค ์ ์ด ๊ณ์ธต ๊ฐ์ฉ์ฑ (๋๋ ํ์ ๊ตฌ์ฑ ์์)๋ ์์ง๋ง, ๊ทํ๊ฐ ๋ณด๋ธ ์์ฒญ์ p99 ์ง์ฐ์ ์๋๋๋ค. ์ฆ, ๋ค์์ ์
๋ ฅํ ์ ์์ต๋๋ค. kubectl get nodes, 10๋ถ ํ์๋ง ๋ต๋ณ์ ๋ฐ์ ์ ์์ผ๋ฉฐ, ์ด๋ ์๋น์ค ๊ณ์ฝ ์กฐ๊ฑด์ ์๋ฐํ๋ ๊ฒ์ด ์๋๋๋ค.
11. ๋ณด๋์ค: ์ต์ ํ๊ทธ ์ฌ์ฉ
์ด๊ฑด ์ด๋ฏธ ๊ณ ์ ์ด์์. ์ต๊ทผ์๋ ์ด ๊ธฐ์ ์ ์์ฃผ ๋ณผ ์ ์๊ฒ ๋์๋๋ฐ, ๋ง์ ์ฌ๋๋ค์ด ์ฐ๋ผ๋ฆฐ ๊ฒฝํ์ ํตํด ์ด ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๊ฒ ๋์๊ธฐ ๋๋ฌธ์
๋๋ค. :latest ๊ทธ๋ฆฌ๊ณ ๋ฒ์ ์ ๊ณ ์ ํ๊ธฐ ์์ํ์ต๋๋ค. ๋ง์ธ!
ECR ; ์ด ๋๋ผ์ด ๊ธฐ๋ฅ์ ๋ํด ๋ฏธ๋ฆฌ ์์๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
๊ฐ์
ํ๋ฃป๋ฐค ์ฌ์ด์ ๋ชจ๋ ๊ฒ์ด ์ ๋ ๊ฑฐ๋ผ๊ณ ๊ธฐ๋ํ์ง ๋ง์ธ์. ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ง๋ณํต์น์ฝ์ด ์๋๋๋ค. ๋์ ์ฑ (๊ทธ๋ฆฌ๊ณ ์ํฉ์ด ๋ ๋๋น ์ง ์๋ ์์ต๋๋ค). ๋ถ์ฃผ์๋ก ์ธํด ์ ์ด ๊ณ์ธต์ ์์ ์ด ์ง๋์น๊ฒ ๋ณต์กํด์ง๊ณ , ๋๋ฆฌ๊ณ ์คํธ๋ ์ค๊ฐ ๋ง์์ง๋๋ค. ๊ฒ๋ค๊ฐ ์ฌํด ๋ณต๊ตฌ ์ ๋ต์ด ๋ถ์ฌํ๊ฒ ๋ ์ํ๋ ์์ต๋๋ค. Kubernetes๊ฐ ๋ฐ๋ก ๊ฒฉ๋ฆฌ์ ๊ณ ๊ฐ์ฉ์ฑ์ ์ฒ๋ฆฌํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ๋ง์ธ์. ์๊ฐ์ ๋ด์ด ์ฑ์ ์ง์ ํ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ๋ก ๋ง๋ค์ด๋ณด์ธ์.
๋ค์ํ ํ์ ์คํจ ๊ฒฝํ์ ๋ํด ์ฝ์ด๋ณด์ธ์. ์ ์: ํค๋ ์ ์ด์ฝฅ์ค
์ด ๊ธฐ์ฌ์ ๋์ด๋ ์ค๋ฅ ๋ชฉ๋ก์ ์ถ๊ฐํ๊ณ ์ถ์ ์ฌ๋์ Twitter์์ ์ ํฌ์๊ฒ ์ฐ๋ฝํ ์ ์์ต๋๋ค., ).
๋ฒ์ญ๊ฐ์ ์ถ์
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ";
- ยซ";
- ยซยป (๋ณด๊ณ ์ ๊ฒํ ๋ฐ ๋น๋์ค)
- ยซ".
์ถ์ฒ : habr.com
