๐ Kubernetes Persistent Volumes (PV)
1. ๊ธฐ์กด Volume ๋ฐฉ์์ ํ๊ณ
- ์ง๋ ๊ฐ์์์ ํ์ตํ Volume์ Pod ์ ์ ํ์ผ์ ์ง์ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์ ํฌํจํด์ผ ํ์.
- ๋ฌธ์ ์ :
- ๋ง์ ์ฌ์ฉ์๊ฐ ๋ค์์ Pod๋ฅผ ๋ฐฐํฌํ ๋ ๋งค๋ฒ ์คํ ๋ฆฌ์ง ์ค์ ์ ๋ฐ๋ณตํด์ผ ํจ.
- ์คํ ๋ฆฌ์ง ๋ณ๊ฒฝ ์ ๋ชจ๋ Pod ์ ์ ํ์ผ์ ์์ ํด์ผ ํจ.
- ๊ด๋ฆฌ๊ฐ ๋นํจ์จ์ ์ด๊ณ ์ด์์๊ฐ ์ผ์ผ์ด ๊ฐ์
ํด์ผ ํจ.
2. Persistent Volume ๊ฐ๋
- Persistent Volume (PV):
- ํด๋ฌ์คํฐ ์ ์ญ์์ ์ฌ์ฉํ ์ ์๋ ์คํ ๋ฆฌ์ง ํ(pool)์ ๊ด๋ฆฌ์๊ฐ ๋ฏธ๋ฆฌ ์์ฑ.
- ์ฌ์ฉ์๋ ์ด ํ์์ ํ์ํ ์คํ ๋ฆฌ์ง๋ฅผ Persistent Volume Claim (PVC) ์ผ๋ก ์์ฒญํด์ ์ฌ์ฉ.
- ์ฅ์ :
- ์คํ ๋ฆฌ์ง ์ค์ ์ง์ค ๊ด๋ฆฌ ๊ฐ๋ฅ.
- ์ฌ์ฉ์๋ ์ธ๋ถ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ๋ ๋จ.
- ๊ด๋ฆฌ์๋ ๋ค์ํ ์คํ ๋ฆฌ์ง ์๋ฃจ์
์ ๋ฏธ๋ฆฌ ๋ฑ๋กํด๋๊ณ ์ ๊ณต ๊ฐ๋ฅ.
3. Persistent Volume ์ ์ ๋ฐฉ๋ฒ
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-vol1
spec:
accessModes:
- ReadWriteOnce # ์ ๊ทผ ๋ชจ๋: ReadOnlyMany, ReadWriteOnce, ReadWriteMany ๋ฑ
capacity:
storage: 1Gi # ์คํ ๋ฆฌ์ง ์ฉ๋
hostPath: # ์คํ ๋ฆฌ์ง ํ์
(์์: HostPath)
path: /tmp/data
4. ์ฃผ์ ์์ฑ
- Access Modes (์ ๊ทผ ๋ชจ๋)
ReadOnlyMany : ์ฌ๋ฌ ๋
ธ๋์์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ๊ทผ
ReadWriteOnce : ํ ๋
ธ๋์์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ฐ๋ฅ
ReadWriteMany : ์ฌ๋ฌ ๋
ธ๋์์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ฐ๋ฅ
- Capacity (์ฉ๋)
- ๊ด๋ฆฌ์๊ฐ PV์ ํ ๋นํ ์คํ ๋ฆฌ์ง ํฌ๊ธฐ ์ง์ (์: 1Gi)
- Volume Type (์คํ ๋ฆฌ์ง ์ข
๋ฅ)
-
์์ : hostPath โ ๋
ธ๋ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ ์ฌ์ฉ
โ ๏ธ ๋จ, hostPath๋ Production ํ๊ฒฝ์ ์ ํฉํ์ง ์์ (ํ
์คํธ์ฉ)
-
์ค์ ์ด์ ํ๊ฒฝ์์๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฃจ์
์ฌ์ฉ:
- AWS Elastic Block Store (EBS)
- GCP Persistent Disk
- Azure Disk
- NFS, Ceph, GlusterFS ๋ฑ
5. ๋ช
๋ น์ด