CKA-7์ผ์ฐจ

YeJi Kimยท2023๋…„ 2์›” 21์ผ
0

CKA

๋ชฉ๋ก ๋ณด๊ธฐ
7/15

๐Ÿ“ CKA 7์ผ์ฐจ
๐Ÿ“ Udemy-Certified Kubernetes Administrator (CKA) with Practice Tests 76-93




76. Multiple Schedulers

์•ž์—์„œ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋…ธ๋“œ์— ๊ฑธ์ณ ํŒŒ๋“œ๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋ถ„๋ฐฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค.
์Šค์ผ€์ค„๋Ÿฌ๋Š” Taints, Toleration, nodeAffinity ๋“ฑ์„ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ ์ง€์ •ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์กฐ๊ฑด๋“ค์„ ๊ณ ๋ คํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ํ™•์žฅ์ด ์•„์ฃผ ์‰ฝ๋‹ค. ๊ทธ๋ž˜์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์Šค์ผ€์ค„๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๊ธฐ๋ณธ ์Šค์ผ€์ค„๋Ÿฌ๋กœ ํŒจํ‚ค์ง€ํ•˜๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ถ”๊ฐ€ ์Šค์ผ€์ค„๋Ÿฌ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ž˜์•ผ ๋‹ค๋ฅธ ๋ชจ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ธฐ๋ณธ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ผ๋ถ€ ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
ํŒŒ๋“œ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ฐฐ์น˜ํ•  ๋•Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๊ฒŒ ํŠน์ • ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ํŒŒ๋“œ๋ฅผ ์ง€์ •ํ•˜๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ์ด๋ฆ„์ด ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ๊ฐ๊ฐ์˜ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
์Šค์ผ€์ค„๋Ÿฌ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ์Šค์ผ€์ค„๋Ÿฌ์˜ ์ด๋ฆ„์„ ์„ค์ •ํ•œ๋‹ค.
์ด๋•Œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด default-scheduler์ด๋‹ค.


์ถ”๊ฐ€์ ์ธ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
kube-scheduler ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์„œ ์—ฌ๋Ÿฌ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ kube-scheduler.service๋กœ ์‹คํ–‰ํ•œ๋‹ค.
์ถ”๊ฐ€์ ์ธ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋™์ผํ•œ kube-scheduler ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜น์€ ์šฐ๋ฆฌ๊ฐ€ ๊ตฌ์ถ•ํ•œ ๊ฒƒ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜ ์‚ฌ์ง„์—์„œ๋Š” ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ถ”๊ฐ€์ ์ธ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค.

๊ฐ ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋ณ„๋„์˜ config ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ํŒŒ์ผ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ์Šค์ผ€์ค„๋Ÿฌ ์ด๋ฆ„์„ ๊ฐ–๋Š”๋‹ค.


99%์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ง€์ • ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์ด๋ ‡๊ฒŒ ๋ฐฐํฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
kubeadm์—์„  ๋ชจ๋“  ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์—์„œ pod ๋˜๋Š” deployment๋กœ ๋ฐฐํฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํŒŒ๋“œ๋กœ ๋ฐฐํฌํ•  ๊ฒฝ์šฐ ํŒŒ๋“œ ์ •์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  --kubeconfig ์†์„ฑ์„ ๋ช…์‹œํ•œ๋‹ค.
์ด๋Š” ์Šค์ผ€์ค„๋Ÿฌ์˜ conf ํŒŒ์ผ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋กœ์„œ kube-api server์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์ด๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ config ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ --config ์†์„ฑ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค. config ํŒŒ์ผ์—๋Š” ์Šค์ผ€์ค„๋Ÿฌ ์ด๋ฆ„์ด ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค.


๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์˜ต์…˜์€ config ํŒŒ์ผ์— ๋ช…์‹œ๋˜๋Š”leaderElection ์˜ต์…˜์ด๋‹ค.
leaderElection ์˜ต์…˜์€ ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋ณต์‚ฌ๋ณธ ์—ฌ๋Ÿฟ์ด ๋‹ค๋ฅธ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์Šค์ผ€์ค„๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–‘์ชฝ์—์„œ ์‹คํ–‰๋œ๋‹ค.
๋™์ผํ•œ ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋ณต์‚ฌ๋ณธ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋‹ค๋ฅธ ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋  ๊ฒฝ์šฐ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜๋งŒ ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ๋‹ค.
leaderElection ์˜ต์…˜์€ ์Šค์บ์ค„ ํ™œ๋™์„ ์ด๋Œ ๋ฆฌ๋”๋ฅผ ์„ ํƒํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค.


์–ด๋ ค์›Œ์„œ ์ผ๋‹จ ์ƒ๋žต... ๋ญ„์ƒค๋“œ ์Œค์ด ์•„์ง์€ ๋ชฐ๋ผ๋„ ๋œ๋‹ค๊ณ  ํ•˜์‹ฌ..

์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ config ํŒŒ์ผ์„ ์Šค์ผ€์ค„๋Ÿฌ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋‚˜ ConfigMap์„ ์‚ฌ์šฉํ•œ๋‹ค.


์ƒˆ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด schdulerName ํ•„๋“œ๋ฅผ ํŒŒ๋“œ ์ •์˜ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์Šค์ผ€์ค„๋Ÿฌ ์ด๋ฆ„์„ ๋ช…์‹œํ•˜๋ฉด ๋œ๋‹ค.


์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ์ด๋ฒคํŠธ๋ฅผ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.
kubectl get events -o wide ๋ช…๋ น์œผ๋กœ ํ˜„์žฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ์—ด๊ฑฐํ•˜๊ณ  ์˜ˆ์ •๋œ ์ด๋ฒคํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜ ์‚ฌ์ง„์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ nginx๋ฅผ node01์— ํ• ๋‹นํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค๋ฉด kubectl logs {์Šค์ผ€์ค„๋Ÿฌ ์ด๋ฆ„} ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ๋œ๋‹ค.




78. Solution - Multiple Schedulers

์ƒˆ๋กœ์šด ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ๋“œ ์ •์˜ ํŒŒ์ผ์— schedulerName์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.




79. Configuring Scheduler Profiles

ํŒŒ๋“œ๋“ค์€ Scheduling Queue์—์„œ ์Šค์ผ€์ค„๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ด๋•Œ ํŒŒ๋“œ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ธฐ์ค€์€ ์šฐ์„ ์ˆœ์œ„์ด๋‹ค. ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” PriorityClass๋ฅผ ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค.

์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ํŒŒ๋“œ๋“ค์ด ์ •๋ ฌ๋˜์–ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ํŒŒ๋“œ๋Š” ์ด๋ ‡๊ฒŒ ๊ฐ€์žฅ ๋จผ์ € ๋Œ€๊ธฐ์ž ๋ช…๋‹จ์— ์˜ค๋ฅด๊ฒŒ ๋œ๋‹ค.

๊ทธ ๋‹ค์Œ ํ•„ํ„ฐ๋ง ๋‹จ๊ณ„์— ๋Œ์ž…ํ•œ๋‹ค. ํŒŒ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๋…ธ๋“œ๋Š” ์—ฌ๊ธฐ์„œ ๊ฑธ๋Ÿฌ์ง„๋‹ค.
ํŒŒ๋“œ์˜ requests๊ฐ€ CPU 10์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ์œผ๋กœ ๊ฑธ๋Ÿฌ์ง„๋‹ค.

๊ทธ ๋‹ค์Œ์€ ์ ์ˆ˜ ๋งค๊ธฐ๋Š” ๋‹จ๊ณ„์ด๋‹ค. ์Šค์ผ€์ค„๋Ÿฌ๋Š” ํ•ด๋‹น ํŒŒ๋“œ์— ํ•„์š”ํ•œ CPU๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‚จ์€ ๊ณต๊ฐ„์„ ๊ทผ๊ฑฐ๋กœ ๊ฐ ๋…ธ๋“œ์— ์ ์ˆ˜๋ฅผ ๋งค๊ธด๋‹ค.
์ด ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋Š” 2๊ฐœ, ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ๋Š” 6๊ฐœ ๋‚จ๋Š”๋‹ค.
๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ๊ฐ€ ๋” ๋†’์€ ์ ์ˆ˜๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒ๋œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ”์ธ๋”ฉ ๋‹จ๊ณ„์—์„œ ํŒŒ๋“œ๊ฐ€ ๋งˆ์นจ๋‚ด ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ์— ๋ฐ”์ธ๋”ฉ๋œ๋‹ค.


์ด ๋ชจ๋“  ์ž‘์—…์˜ ํŠน์ง•์€ ํ”Œ๋Ÿฌ๊ทธ ์ธ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ์ ์ด๋‹ค.

  • Scheduling Queue

    • PrioritySort: ํŒŒ๋“œ์—์„œ ์šฐ์„ ์ˆœ์œ„๋กœ ์„ค์ •๋œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ๋‹ค.
  • Filtering

    • NodeResourcesFit: ํŒŒ๋“œ์—์„œ ์š”๊ตฌํ•˜๋Š” ์ž์›์ด ์ถฉ๋ถ„ํ•œ ๋…ธ๋“œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋ถ€์กฑํ•œ ๋…ธ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

    • NodeName: ํŒŒ๋“œ ์ •์˜ ํŒŒ์ผ์—์„œ ์ง€์ •๋œ nodeName์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ฑฐ๋ฅธ๋‹ค.

    • NodeUnschedulable: Unschedulable์ด true๋กœ ์„ค์ •๋œ ๋…ธ๋“œ๋“ค์„ ๊ฑฐ๋ฅธ๋‹ค.

  • Scoring: ์ด ๋‹จ๊ณ„์—์„œ ํŠน์ • ๋…ธ๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์กฐ๋ฆฝ๋งŒ ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

    • NodeResourcesFit: ํŒŒ๋“œ๊ฐ€ ํ• ๋‹น๋œ ํ›„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์ˆ˜๋ฅผ ๋งค๊ธด๋‹ค.
    • ImageLocality: ํŒŒ๋“œ์˜ ์ด๋ฏธ์ง€๊ฐ€ ๋…ธ๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋กœ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ๋†’์€ ์ ์ˆ˜๋ฅผ ์ค€๋‹ค.
  • Binding

    • DefaultBinder: ๋ฐ”์ธ๋”ฉ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•œ๋‹ค.


์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ œํ’ˆ์€ ํ™•์žฅ์„ฑ์ด ๋งค์šฐ ๋›ฐ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์–ด๋””์— ๋‘˜์ง€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ๊ณ  ์ž์‹ ๋งŒ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ž‘์„ฑํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ์ง€์ ์ด ์žˆ๋‹ค.
ํ™•์žฅ ์ง€์ ์— ์ƒ์„ฑํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์—ฐ๊ฒฐํ•˜๋ฉด ๋œ๋‹ค.

์ถ”๊ฐ€์ ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์— ๋Œ€ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
๋ณด๋‹ค์‹œํ”ผ ์ผ๋ถ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์—ฌ๋Ÿฌ ํ™•์žฅ ์ง€์ ์— ๊ฑธ์ณ ์žˆ๋‹ค.


์ด์ œ ์–ด๋–ป๊ฒŒ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ˜ธ์ถœํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์šฐ๋ฆฌ๋งŒ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž.

๋‹จ์ผ ์Šค์ผ€์ค„๋Ÿฌ์—๊ฒŒ ๋‹ค์ค‘ ํ”„๋กœํ•„์„ ์ง€์›ํ•œ๋‹ค.
config ํŒŒ์ผ์„ ํ†ตํ•ด ๋‹จ์ผ ์Šค์ผ€์ค„๋Ÿฌ์—๊ฒŒ ๋‹ค์ค‘ ํ”„๋กœํ•„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ฐ๊ฐ์˜ ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋ถ„๋ฆฌ๋œ ๊ฐœ๋ณ„ ํ”„๋กœํ•„์„ ๊ฐ–๋Š”๋‹ค.
๊ฐ๊ฐ์˜ ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋ถ„๋ฆฌ๋œ ์Šค์ผ€์ค„๋Ÿฌ์ฒ˜๋Ÿผ ์ž‘๋™ํ•œ๋‹ค. ๋‹จ์ง€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ ๋ฟ์ด๋‹ค.


์–ด๋–ป๊ฒŒ ๊ฐ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๊ฐ ์Šค์ผ€์ค„๋Ÿฌ์˜ ํ”„๋กœํ•„ ์•„๋ž˜์— ํ™•์žฅ ์ง€์ ๊ณผ ๊ฐ€๋Šฅ/๋ถˆ๊ฐ€๋Šฅ ์—ฌ๋ถ€, ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„์„ ๋ช…์‹œํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.




83. Monitor Cluster Components

์˜ค๋Š˜๋‚  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ์†”๋ฃจ์…˜์ด ๋งŽ๋‹ค.

  • Metrics Server
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๋‹น ๋ฉ”ํŠธ๋ฆญ ์„œ๋ฒ„๊ฐ€ 1๊ฐœ์ด๋‹ค.
    • ์„œ๋ฒ„๋Š” ๊ฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋…ธ๋“œ์™€ ํŒŒ๋“œ์—์„œ ๋ฉ”ํŠธ๋ฆญ์„ ํšŒ์ˆ˜ํ•œ๋‹ค.
    • ๋ฉ”ํŠธ๋ฆญ์„ ๋ชจ์•„์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค. ์ฆ‰, IN-MEMORY ๋ชจ๋‹ˆํ„ฐ๋ง ์†”๋ฃจ์…˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ์— ๋ฉ”ํŠธ๋ฆญ์„ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ๊ทธ๋ž˜์„œ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋Š” ๋ณผ ์ˆ˜ ์—†๋‹ค.

์ด ๋…ธ๋“œ์˜ ํŒŒ๋“œ์— ๋Œ€ํ•œ ์ง€ํ‘œ๋Š” ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋ ๊นŒ?

kubelet์€ ๊ฐ ๋…ธ๋“œ์— ์œ„์น˜ํ•˜์—ฌ kube-api server๋กœ๋ถ€ํ„ฐ ์ง€์‹œ๋ฅผ ๋ฐ›๊ณ  ๋…ธ๋“œ์—์„œ ํŒŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
๋˜ํ•œ kubelet์€ CAdvisor๋กœ ์•Œ๋ ค์ง„ ํ•˜์œ„ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.
CAdvisor๋Š” ํŒŒ๋“œ์—์„œ ์„ฑ๋Šฅ ๋ฉ”ํŠธ๋ฆญ์„ ํšŒ์ˆ˜ํ•˜๊ณ  kubelet API๋ฅผ ํ†ตํ•ด ๋ฉ”ํŠธ๋ฆญ์„ ๋…ธ์ถœ์‹œ์ผœ Metric Server์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

minikube ํ™˜๊ฒฝ๊ณผ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ๊ฐ๊ฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Metric Server๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

Metric Server๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ๋…ธ๋“œ์—์„œ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์‹œ๊ฐ„์„ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
kubectl top ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋…ธ๋“œ์™€ ํŒŒ๋“œ์˜ ์„ฑ๋Šฅ ์ง€ํ‘œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


Metric-server๋Š” Kubernetes ๋‚ด์— ์กด์žฌํ•˜๋Š” Pod์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ํ•ด kube-api ์„œ๋ฒ„์— ์•ˆ์ •์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ : https://nangman14.tistory.com/81




84. Solution: Monitor Cluster Components

Metric Server ๋ฐฐํฌํ•˜๊ธฐ (๋‹จ, ๋‹ค๋ฅธ production์— ํ•ด๋‹น ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง ๊ฒƒ! ์‰ฌ์šด ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ผ๋ถ€๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€์Œ)



node์™€ pod์˜ ์„ฑ๋Šฅ ์ง€ํ‘œ ํ™•์ธํ•˜๊ธฐ




86. Managing Applicaion Logs

๋„์ปค์—์„œ docker logs ๋ช…๋ น์–ด๋กœ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. '-f' ์˜ต์…˜์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋„ ๋„์ปค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ kubectl logs ๋ช…๋ น์–ด๋กœ ํŒŒ๋“œ์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ '-f' ์˜ต์…˜์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ํ™•์ธ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•˜๋‚˜์˜ ํŒŒ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹ค์„ ์ˆ˜ ์žˆ๋‹ค.
ํŒŒ๋“œ ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ช…๋ น์— ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.




88. Solution: Logging

webapp-2๋Š” 2๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง„ ํŒŒ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ๊ฒƒ์ธ์ง€ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.




91. Rolling Updates and Rollbacks

์ƒˆ๋กœ์šด rollout์€ ์ƒˆ๋กœ์šด revision์„ ์ƒ์„ฑํ•œ๋‹ค.
ํ–ฅํ›„ ์ปจํ…Œ์ด๋„ˆ ๋ฒ„์ „์ด ์ƒˆ ๊ฒƒ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ์ƒˆ๋กœ์šด rollout์ด ์ƒ๊ธฐ๊ณ  ์ƒˆ๋กœ์šด revision์ด ์ƒ์„ฑ๋œ๋‹ค.
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ณ€ํ™”๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๊ณ  ํ•„์š”ํ•˜๋‹ค๋ฉด ๋ฐฐํฌ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

kubectl rollout ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด rollout ์ƒํƒœ์™€ rollout ๊ธฐ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ฐฐํฌ ์ „๋žต์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ๋‹ค.

  • Recreate
    • ์ธ์Šคํ„ด์Šค๋“ค์„ ๋ชจ๋‘ ํŒŒ๊ดดํ•˜๊ณ  ์ธ์Šคํ„ด์Šค์˜ ์ƒˆ ๋ฒ„์ „์„ ์ƒ์„ฑํ•œ๋‹ค.
    • ๊ตฌ๋ฒ„์ „์ด ๋‹ค์šด๋˜๊ณ  ์ƒˆ ๋ฒ„์ „์ด ์—…๋˜๊ธฐ ์ „ ๊ธฐ๊ฐ„ ๋™์•ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์šด๋˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
    • ๊ธฐ๋ณธ ์ „๋žต์ด ์•„๋‹ˆ๋‹ค.
  • RollingUpdate
    • ๊ตฌ ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜๊ณ  ์‹  ๋ฒ„์ „์„ ํ•˜๋‚˜์”ฉ ์˜ฌ๋ฆฐ๋‹ค.
    • ์•ฑ์ด ๋‹ค์šด๋˜์ง€ ์•Š๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง„๋‹ค.
    • ๊ธฐ์กด ์ „๋žต์ด๋‹ค.

๋‘ ๋ช…๋ น์–ด๋Š” ๊ฐ๊ฐ deployment๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ƒˆ๋กœ์šด rollout์„ ์ƒ์„ฑํ•˜๊ณ  ์ƒˆ๋กœ์šด revision์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.
ํ›„์ž์˜ ๋ฐฉ๋ฒ•์€ deployment ์ •์˜ ํŒŒ์ผ๊ณผ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์„ ๊ฐ–๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.


์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ž˜๋ชปํ•ด์„œ ์ƒˆ ๋ฒ„์ „ ๋นŒ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด kubectl rollout undo ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด์ „ ๋ฆฌ๋น„์ „์œผ๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ๋‹ค.
์ƒˆ replicaset์˜ ํŒŒ๋“œ๊ฐ€ ํŒŒ๊ดด๋˜๊ณ  ์ด์ „์˜ replicaset์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.


์ด๋ฒˆ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋ช…๋ น์–ด๋ฅผ ์š”์•ฝํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.




93. Solution: Rolling update

deployment์˜ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
kubectl set image deployment {deployment๋ช…} {์ปจํ…Œ์ด๋„ˆ๋ช…}={์ด๋ฏธ์ง€๋ช…}


๋ฐฐํฌ ์ „๋žต ๋ฐ”๊พธ๊ธฐ(RollingUpdate -> Recreate)

kubectl edit deployment ๋ช…๋ น์–ด๋กœ ํŒŒ๋“œ ์ •์˜ ํŒŒ์ผ์— ์ ‘์†ํ•ด์„œ strategy์˜ type์„ 'Recreate'์œผ๋กœ ์ˆ˜์ •ํ•œ๋‹ค.

profile
์ด์ „์˜ ๊ธฐ๋ก๋“ค ๐Ÿ‘‰ https://blog.naver.com/reviewerkyj

0๊ฐœ์˜ ๋Œ“๊ธ€