์ฟ ๋ฒ๋คํฐ์ค์์ ์คํ ์ค์ธ ํ๋์ ๋ด์ฉ์ ์์ ํ๋ ค๋ฉด kubectl exec -it pod -- ... ๋ฅผ ํตํด ์์ ํฉ๋๋ค.
๋ง์ฝ nginx ๋ฅผ ์คํ ์ค์ธ ํ๋๊ฐ ์๊ณ , nginx ์ index.html ์ ์์ ํ๊ณ ์ถ๋ค๋ฉด, ์๋์ ๊ฐ์ด ์งํ์ ํ ๊ฒ์ ๋๋ค.
# pod ๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํ๋๋ฅผ nginx ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด์ ์์ฑ
kubectl run pod --image nginx
# bash ๋ฅผ ํตํด ์ปจํ
์ด๋ ๋ด๋ถ ์ ์
kubectl exec -it pod -- bash
# index.html ์ ๊ฒ์
find ./ -type f -iname "*.html"
# ์์น๋ฅผ ์ฐพ์ ํ vim ์ ํตํด ์์
vim ./usr/share/nginx/html/index.html
index.html ์ I'm kingbj0429 ๋ฅผ ์ถ๊ฐํด์ฃผ์๊ณ , ํด๋น ํ๋ ๋ด์์ nginx ์ ์ ๊ทผํ ๊ฒฐ๊ณผ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ๋ ๊ฑธ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ํ๋ ๋ด๋ถ์ ์ง์ ์ ๊ทผํ์ง ์์๋(kubectl exec -it) index.html ๋ฅผ ์์ ํ ์ ์๋ ์ฌ์ค์ ์๊ณ ๊ณ์ ๊ฐ์?
๊ทธ๋ผ ์ด๋ป๊ฒ ๊ทธ๊ฒ ๊ฐ๋ฅํ์ง ๋ฐ๋ก ์์๋ณด์ฃ !
๋ ์ธ ๋๋์ฝ๋~
์ฟ ๋ฒ๋คํฐ์ค์์ ๋ ธ๋๋ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ง์คํฐ ๋ ธ๋(์ปจํธ๋กค ํ๋ ์ธ) ์ ๋ง์คํฐ ๋ ธ๋ ๋ด์ ์๋ API Server ๋ฅผ ํตํด ์ค์ง์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ฅผ ์คํ์์ผ์ฃผ๋ ์ญํ ์ ์์ปค ๋ ธ๋(๋ฐ์ดํฐ ํ๋ ์ธ) ๊ฐ ์์ต๋๋ค.
๋ง์คํฐ ๋ ธ๋๋ผ๊ณ ํด์ ๊ทธ ์์ ํ๋๋ฅผ ์คํ์ํค์ง ๋ชปํ๋ ๊ฒ์ ์๋๋๋ค. ๋ค๋ง ๋ง์คํฐ ๋ ธ๋์๋ node-role.kubernetes.io/control-plane ๋ผ๋ Taint key ๋ฅผ ๊ฐ์ ธ์ ๋ฐฐํฌ๊ฐ ์๋๋ ๊ฒ์ผ๋ฟ Toleration ์ ํตํด ๋ง์คํฐ ๋ ธ๋์๋ ํ๋๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ค๋ง, ๋ง์คํฐ ๋ ธ๋์ ํ๋๋ฅผ ์คํํ๋ ๊ฑด ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ์๋๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ธ ํ๋๋ฅผ ๋ชจ๋ ์์ปค ๋
ธ๋ ์์์ ๋์ํฉ๋๋ค.
crictl ps ๋ช
๋ น์ด๋ฅผ ๋ ๋ ค์ฃผ๋ฉด ์ด๋ค ํ๋๊ฐ ์คํ ์ค์ธ์ง ์ ์ ์์ต๋๋ค. ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ณด์๋ฉด ์๊น ์์ฑํ nginx ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ pod ๋ํ ๋ณด์ค ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ํ๋ ํํธ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
"์ ~ ๊ฒฐ๊ตญ ํ๋๋ ํ๋๋ฅผ ์คํ์์ผ์ฃผ๋ ๋ ธ๋๊ฐ ์๊ณ , ์ค์ง์ ์ธ ๋ฐ์ดํฐ๋ ๊ทธ ๋ ธ๋ ์์ ์ ๋ถ ์กด์ฌํ๊ฒ ๊ตฌ๋!"
ํ๋ ๋ํ ์๋ฒ ์์์ ํ๋ก์ธ์ค๋ก ๋์ํฉ๋๋ค. ๋ฐ๋ผ์ PID ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ๋ฒ pod ์ PID ๋ฅผ ํ์ธํด๋ณด์ฃ .
systemctl | grep 27a84c12f53c8 ๊ณผ journalctl | grep 27a84c12f53c8 ๋ฅผ ํตํด์๋ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ๋ผ๋ ๊ฒ์ ์ฆ์จ, /proc/<pid> ์ nginx ํ๋ ๊ด๋ จ๋ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ๋ป์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ๊ฒฝ๋ก๋ก ์ด๋ํด๋ณด๋ฉด ์ค์ ๋ก ํ๋ ๊ด๋ จ๋ ๋ชจ๋ ํ์ผ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ์ค ์์ปค ๋ ธ๋์ ๊ด๋ฆฌ์๊ฐ ์๋๋ผ๋ฉด, ์ ์ด๋ฏธ์ง์ฒ๋ผ ํ๋ก์ธ์ค์ ์ ๊ทผ์ ํ๊ฒ ํ๋ฉด ์๋ฉ๋๋ค.
ํ๊ฐ์ง ์๋ฅผ ๋ค๋ฉด, ์ ์ด๋ฏธ์ง์ fd ๋ผ๋ ํด๋๊ฐ ์๋๋ฐ ํด๋น fd ์ ์ ๊ทผํ๋ฉด ํ๋ ๋ด์์ ์ฌ์ฉ ์ค์ธ ์ํฌ๋ฆฟ ๊ฐ์ ํ์ธ ํ ์ ์์ต๋๋ค. ๋ฌผ๋ก etcd ์ํธํ๋ฅผ ํ๋ฉด ์ํฌ๋ฆฟ์ด ์ํธํ ๋์ ์์๋ผ ์ ์์ง๋ง, ์์ปค ๋ ธ๋์ ์ ๊ทผํ๋ค๋ ๊ฒ๋ง์ผ๋ก๋ ์ํํ ์์๋ค์ด ๊ฝค ์กด์ฌํฉ๋๋ค.
fd ์ ์ ๊ทผํด์ ์ํฌ๋ฆฟ ์ ์์๋ด๋ ๋ฐฉ๋ฒ๊ณผ etcd ์ํธํ ์ ๋ํด์ ๋์ค์ ์์๋ณด๋๋ก ํ์ฃ !
๋ค์ ๋ณธ๋ก ์ผ๋ก ๋ค์ด์ ์ฐ๋ฆฌ๊ฐ ํฅํ ๊ณณ์ root ๋ผ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ๊ฑธ๋ฆฐ ๊ณณ์ ๋๋ค.
์๋ ์ด๋ฏธ์ง์์ ๋ณด์ด๋ ํ์ผ์ ์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ kubectl exec -it pod -- ls -l ํ์ ๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ๋๋ค.
/proc/30221 ์์ index.html ์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ด ๊ฐ์ ์์ ํ๋ฉด kubectl exec -it ๋ฅผ ํตํด ์์ ํ์ ๋์ ์์ ํ ๊ฐ์ ํ์๋ฅผ ํ ์ ์์ต๋๋ค.
ํ๊ฐ์ง ์ฌ๋ด์ผ๋ก ์์ปค ๋ ธ๋์์ df -h ๋ฅผ ํ๋ฉด ์ค์ ๋ก ์ปจํ ์ด๋๋ค๊ณผ ๋ง์ดํธ ๋ ๊ฑธ ํ์ธ ํ ์ ์์ต๋๋ค.
์ฆ, ์ปจํ ์ด๋๋ ๊ฒฐ๊ตญ ๋ ธ๋์ ๋ง์ดํธ ๋๋ค๋ ๊ฒ์ด์ฃ .
์ค๋์ kubectl exec -it ์์ด๋ ๋ ธ๋ ์์ฒด์์๋ ํ๋์ ๋ด์ฉ์ ์์ ํ ์ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
๋๋ถ์ด ์์ปค ๋ ธ๋์ ๋ณด์์ด ์ผ๋ง๋ ์ค์ํ์ง ์ ์ ์์์ฃ .
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง!