[CKA] volume
persistent volume and persistent volume claim
pod์์ ์คํ์ค์ธ ์ปจํ ์ด๋๊ฐ /log/app.log ํ์ผ์ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ๋ง์ฝ pod๊ฐ ์ฌ์์ ๋ ๊ฒฝ์ฐ, ํด๋น log ํ์ผ์ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์, host pc์ volume์ mount ํ์ฌ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
์ด๋ ๊ฒ ์ง์ ํ๊ฒ ๋๋ฉด, ์ด๋ pod๊ฐ ์ด๋ค volume์ ๋ง์ดํธํ๋์ง ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์์ง๋ฏ๋ก, ์ฟ ๋ฒ๋คํฐ์ค์์๋ ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ ์์คํ ์ธ persistent volume ๊ณผ pv์ ์ถ์ํ ๋ ๋ฒจ์ธ persistent volume claim์ ์ง์ํ๋ค.
persistent volume์ ์ค์ ์คํ ๋ฆฌ์ง๋ฅผ ์๋ฏธํ๊ณ , pvc๋ pod๊ฐ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์คํ ๋ฆฌ์ง๋ฅผ ์์ฒญํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
|
|
์์ ๊ฐ์ด pv, pvc๋ฅผ ์ ์ํ๊ฒ ๋๋ฉด, pv ๋ ๋ ธ๋ ๋ด์ ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ๊ณ , pvc๋ 10gi๋ฅผ ๋ง์กฑํ ์ ์๋ pv ๋ฆฌ์์ค๋ฅผ ์ฐพ๊ฒ ๋๋ค. pvc๋ pod ์์ฑ ์ volume mount ๋ก ์ฐ๊ฒฐ๋๋ค. ์ด ๋ ์ ๋ช ์ธ์๋ฅผ ๋ณด๋ฉด, pv๋ 1gi ๋ฅผ ์์ฑํ๊ณ , pvc๋ 10gi๋ฅผ ์์ฒญํ๋ฏ๋ก ์ ์ ํ pv ๋ฅผ ์ฐพ์ ์ ์์ด pod๋ pending ์ํ๋ก ๋จ์์์ ๊ฒ์ด๋ค.
๋ํ ์์ ์ ์๋์๋ฏ์ด, pv์ pvc์ accessMode
๋ ์๋ก ์ผ์นํด์ผ ํ๋ค.
reclaim policy ์ ๋ช ์ธ์๋ฅผ ๋ณด๋ฉด pv์ reclaim policy๋
retain
์ผ๋ก ํ ๋น๋์ด ์๋ค. ๋ง์ฝ pvc๊ฐ ์ญ์ ๋์ด๋ pv์ ๊ทธ ์์ ๋ฐ์ดํฐ๋ ๋ณด์กด๋จ์ ์๋ฏธํ๋ค. ์ด๋ pv๋released
์ํ๋ก ๋ณ๊ฒฝ๋๊ณ pv๋ฅผ ๋ค์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด์ , pv ๋ด๋ถ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์๋์ผ๋ก pvc๋ฅผ ๋ฐ์ธ๋ฉํด์ค์ผ ํ๋ค.๋ง์ฝ pvc๊ฐ pod์ ํ ๋น๋์ด ์๋ ์ํ๋ผ๋ฉด, kubectl delete pvc ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ, hang์ด ๊ฑธ๋ฆด ์ ์๋ค.
storage classes
์คํ ๋ฆฌ์ง๋ฅผ ๋์ ์ผ๋ก provisioning ํ ๋ ์ฌ์ฉํ๋ ๋ฆฌ์์ค์ด๋ค. ์๋ฅผ ๋ค์ด AWS EBS๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ GCE ๋ฅผ ์ฌ์ฉํ ๋ ์ฌ์ฉํ๋ค.
pvc๋ฅผ ์ด์ฉํด์๋ ๋์ provision์ ํ ์ ์๋๋ฐ storageClassName
์ ํน์ ์ด๋ฆ์ ์ ๊ฒ ๋๋ฉด, kubernetes ๊ด๋ฆฌ์๋ ์๋์ผ๋ก pv๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํ ๋นํ๋ค.
- provisioner: kubernetes.io/no-provisioner : local storage๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋์ ์ผ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ์ง ์๊ณ ์๋์ผ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ๋ค. ์ด ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
volumeBindingMode: WaitForFirstConsumer
๋ก ์ค์ ๋๋๋ฐ ์ด๋ PVC๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋๊ธฐ ์ ๊น์ง PV์ ํ ๋นํ๋ ๊ฒ์ ์ง์ฐํ๋ ๊ฒ์ ์๋ฏธํ๋ค.