Kubernetes, PVC

Jeonghak Choยท2025๋…„ 6์›” 8์ผ

Kubernetes

๋ชฉ๋ก ๋ณด๊ธฐ
14/20

๐Ÿ“— ๊ฐœ์š” - PVC - K8S

๐Ÿณ๏ธโ€๐ŸŒˆ [๊ถ๊ธˆํ•œ์ ]

  • PVC ์šฉ๋„

๐Ÿ”—[๋ชฉ์ฐจ]

1๏ธโƒฃ ๊ฐœ์š” / ๊ธฐ๋Šฅ

Kubernetes์—์„œ PVC (PersistentVolumeClaim) ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ์ž์›์„ ์š”์ฒญํ•˜๋Š” ๊ฐ์ฒด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ์‚ฌ์šฉ์ž๊ฐ€ "๋‚˜ 5Gi ํฌ๊ธฐ์˜ ๋ณผ๋ฅจ์ด ํ•„์š”ํ•ด!"๋ผ๊ณ  Kubernetes์— ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

2๏ธโƒฃ ์ •์˜

PVC ์ •์˜

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
์ƒํƒœ์„ค๋ช…
PendingPVC๋Š” ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ PV๊ฐ€ ์•„์ง ๋ฐ”์ธ๋”ฉ๋˜์ง€ ์•Š์Œ
BoundPVC๊ฐ€ PV์™€ ์—ฐ๊ฒฐ๋˜์–ด ์‚ฌ์šฉ ์ค€๋น„ ์™„๋ฃŒ
LostPVC๊ฐ€ ์ฐธ์กฐํ•˜๋˜ PV๊ฐ€ ์‚ญ์ œ๋˜์—ˆ๊ฑฐ๋‚˜ ์ ‘๊ทผ ๋ถˆ๊ฐ€

3๏ธโƒฃ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

PVC์™€ StorageClass ์—ฐ๊ณ„

PVC์—์„œ storageClassName์„ ์ง€์ •ํ•˜๋ฉด, ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด PV๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

spec:
  storageClassName: local-stoarge
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

Pod์—์„œ์˜ PVC ์‚ฌ์šฉ ์˜ˆ์‹œ

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: app
      image: busybox
      command: ["/bin/sh", "-c", "sleep 3600"]
      volumeMounts:
        - name: my-storage
          mountPath: /data
  volumes:
    - name: my-storage
      persistentVolumeClaim:
        claimName: my-pvc

4๏ธโƒฃ ํ™œ์šฉ

  • ์‚ฌ์šฉ์ž๊ฐ€ PVC๋ฅผ ์ƒ์„ฑ
  • Kubernetes๋Š” ํ•ด๋‹น PVC์— ๋งž๋Š” PV๋ฅผ ์ฐพ์•„ ๋ฐ”์ธ๋”ฉํ•จ (Binding)
  • Pod๋Š” PVC๋ฅผ ์ฐธ์กฐํ•ด ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•จ
  • Pod๊ฐ€ ์‚ญ์ œ๋˜์–ด๋„ PVC์™€ PV๋Š” ์‚ด์•„์žˆ์–ด์„œ ๋ฐ์ดํ„ฐ๋Š” ์œ ์ง€๋จ

์ฐธ๊ณ  ๋ฌธ์„œ

[^1]: ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค ๊ฐœ์š”
[^2]: PV ๊ฐœ์š”

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