CKA ๊ธฐ๋ก. 04

Loggingยท2023๋…„ 1์›” 14์ผ
0

CKA

๋ชฉ๋ก ๋ณด๊ธฐ
4/6

๐Ÿ‘ฉโ€๐Ÿ’ปCKA์ž๊ฒฉ์ฆ ๊ณต๋ถ€ํ•˜๋ฉด์„œ, ๊ธฐ๋ก ์ค‘

โœ” Kubernetes Persistent Volume Claim & Storage Class


โœ๐Ÿป 00. intro

Udemy Labs - Certified Kubernetes Administrator with Practice Tests
Storage : Practice Test Persistent Volume Class & Storage Class


โœ๐Ÿป 01. Persistent Volume Claim & Storage Class


"๋ฐ์ดํ„ฐ ๋ณด์กด์„ ์œ„ํ•ด์„œ!"

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ pod๋กœ ์‹คํ–‰์‹œํ‚ฌ ์‹œ, ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ,

๋ณผ๋ฅจ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผํ•จ

Persistent Volume Claim

์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ <-> PV <-> PVC <-> ํŒŒ๋“œ

  • PV (Persistent Volume) : ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค, ๋ณผ๋ฅจ ์ž์ฒด๋ฅผ ๋œปํ•จ
  • PVC (Persistent Volume Claim) : ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ, ์‚ฌ์šฉ์ž๊ฐ€ pv์— ํ•˜๋Š” ์š”์ฒญ

๊ทธ๋ž˜์„œ ๊ทธ ๋‘˜ ์‚ฌ์ด์— ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ์žˆ๋‹ค๋˜๋ฐ..?

  • ํ”„๋กœ๋น„์ €๋‹(Provisionig) : PV ์ƒ์„ฑํ•˜๋Š” ๋‹จ๊ณ„
  • ๋ฐ”์ธ๋”ฉ(Binding) : PV๋ฅผ PVC์— ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ๋‹จ๊ณ„
  • ์‚ฌ์šฉ(Using) : Pod๊ฐ€ PVC๋ฅผ ๋ณผ๋ฅจ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ๊ณ„
  • ํšŒ์ˆ˜(Reclaiming) : PVC ์‚ญ์ œ์‹œ, ์—ฐ๊ฒฐ๋œ pv๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€์— ๋Œ€ํ•œ ์„ค์ • ๋‹จ๊ณ„
    (Retain, Recycle, Delete 3๊ฐ€์ง€ ์˜ต์…˜ ์กด์žฌ)

Storage Class

storage class๋ฅผ "์‚ฌ์šฉํ•˜๋Š” ์ด์œ !"

  • PV์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ํ• ๋‹น ๋ฌธ์ œ์  ํ•ด๊ฒฐ
    PV ๋Š” ํ•ญ์ƒ ๊ตฌ์„ฑ๋˜์–ด์žˆ์–ด์•ผํ•˜์ง€๋งŒ, pod๊ฐ€ ๋ช‡ ๊ฐœ ์ƒ์„ฑ๋˜๊ณ  ํ•˜๋Š”์ง€๋Š” ์•Œ์ˆ˜ ์—†์Œ
    -> ๊ทธ๋Ÿผ, ์ž์›์„ ๋„‰๋„‰ํ•˜๊ฒŒ ํ•ญ์ƒ ํ• ๋‹นํ•˜๊ณ  ์žˆ์–ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒ

  • ๋™์ ์ธ ๊ตฌ์กฐ๋ฅผ ์œ„ํ•œ ์ ์šฉ
    ๋ณผ๋ฅจ์— ๋Œ€ํ•œ ์ž์›(์‚ฌ์ด์ฆˆ, ssd, disk, type)๋งŒ ์ •์˜ํ•˜๊ณ , ์š”์ฒญ์‹œ์— ์ด ์š”๊ฑด์— ๋งž๋Š” pv๋ฅผ ํ• ๋‹น
    ์šด์˜์ •์ฑ…์— ๋”ฐ๋ž€ Storage class ๋งŒ ์ •์˜๋งŒ ํ•˜๋ฉด, ๊ทธ์— ๋งž๋Š” pv๋ฅผ ๋ฐ”๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅ


โœ๐Ÿป 02. ์‹ค์Šต

1) Persistent Volume yaml ์ž‘์„ฑ

capacity, hostpath ๋ถ€๋ถ„ ํ—ท๊ฐˆ๋ฆผ

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-log
spec:
  persistentVolumeReclaimPolicy: Retain
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 100Mi
  hostPath:
    path: /pv/log

hostpath ์‚ฌ์šฉํ•˜์—ฌ volume ์ƒ์„ฑํ•จ

  • emptyDir : ํŒŒ๋“œ ์•ˆ์— ๋ณผ๋ฅจ ์ƒ์„ฑ
    ํŒŒ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ˜ธ์ŠคํŠธ์˜ ๋””์Šคํฌ๋ฅผ ์ž„์‹œ๋กœ ์ปจํ…Œ์ด๋„ˆ์— ๋ณผ๋ฅจ์œผ๋กœ ํ• ๋‹นํ•ด์„œ ์‚ฌ์šฉ
    ํŒŒ๋“œ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ํ• ๋‹นํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋˜ ๋ณผ๋ฅจ์˜ ๋ฐ์ดํ„ฐ ์‹ค์ข…

  • hostPath : node ์•ˆ path ์‚ฌ์šฉํ•˜์—ฌ ๋ณผ๋ฅจ ์ƒ์„ฑ
    ํ•˜๋“œ๊ฐ€ ์‹คํ–‰๋œ ํ˜ธ๊ทธํŠธ์˜ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํŒŒ๋“œ์— ๋งˆ์šดํŠธ
    ํŒŒ๋“œ ์žฌ์‹œ์ž‘์‹œ, ํ˜ธ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ ๋‚จ์•„์žˆ์Œ

  • NFS
    NFS ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด์„œ ํŒŒ๋“œ์— ๋งˆ์šดํŠธ (์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ ๋ณผ๋ฅจ ์„ค์ •)


2) Persistent Volume Claim ์ž‘์„ฑ
pv์™€ ๋™์ผํ•˜๊ฒŒ ์ž‘์„ฑ ๋จ (๊ทธ๋ ‡๊ฒ ์ง€...๊ฐ™์€ yaml ํŒŒ์ผ์ธ๋ฐ...)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: claim-log-1
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Mi

3) Storage Class

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: delayed-volume-sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

โœ๐Ÿป 03. ๋ฌธ์ œํ’€๋ฉด์„œ...

  • pod ๋‚ด๋ถ€ ์•ˆ์— ์žˆ๋Š” ๋กœ๊ทธ ์‹คํ–‰ํ•ด์„œ ๋ณด๋Š” ๋ฐฉ๋ฒ•
    application์˜ ๋กœ๊ทธ๋“ค์€ /log/app.log ์กด์žฌ
    ๋งŒ์•ฝ์— pod ์‚ญ์ œํ•˜๋ฉด ์—ฌ๊ธฐ ์•ˆ์— ๋กœ๊ทธ ๋‚ ๋ผ๊ฐ€๋Š”๊ฑด ๋‹น์—ฐํ•œ๊ฑด๋ฐ
$ kubectl exec [pod name] -- cat /log/app.log

์ฐธ๊ณ 
[pv] https://kubernetes.io/ko/docs/concepts/storage/persistent-volumes/
[sc] https://kubernetes.io/ko/docs/concepts/storage/storage-classes/
[sc]https://m.blog.naver.com/freepsw/222005161870
https://tech.ktcloud.com/82
https://imjeongwoo.tistory.com/134
https://brunch.co.kr/@topasvga/1711

profile
๊ฐœ๋ฐœ์ƒˆ๋ฐœ์ฟผ์นด๋ฐœ๋กœ ๊ธฐ๋ก์ค‘๐Ÿ’พ

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