kubernetes_volume

๋ณผ๋ฅจ: ์ปจํ…Œ์ด๋„ˆ์— ๋””์Šคํฌ ์Šคํ† ๋ฆฌ์ง€ ์—ฐ๊ฒฐ

  • ์Šคํ† ๋ฆฌ์ง€ ๋ณผ๋ฅจ์€ ํŒŒ๋“œ์™€ ๊ฐ™์€ ์ตœ์ƒ์œ„ ๋ฆฌ์†Œ์Šค๋Š” ์•„๋‹ˆ์ง€๋งŒ ํŒŒ๋“œ์˜ ์ผ๋ถ€๋ถ„์œผ๋กœ ์ •์˜๋˜๋ฉฐ ํŒŒ๋“œ์™€ ๋™์ผํ•œ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํŒŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋ณผ๋ฅจ์ด ์ƒ์„ฑ๋˜๊ณ , ํŒŒ๋“œ๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ๋ณผ๋ฅจ์ด ์‚ญ์ œ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณผ๋ฅจ

    • image

    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ณผ๋ฅจ์€ ํŒŒ๋“œ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ปจํ…Œ์ด๋„ˆ์™€ ๋™์ผํ•˜๊ฒŒ ํŒŒ๋“œ ์ŠคํŽ™์—์„œ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์€ ๋…๋ฆฝ์ ์ธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ž์ฒด์ ์œผ๋กœ ์ƒ์„ฑ, ์‚ญ์ œ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ Pod ๋‚ด ์ปจํ…Œ์ด๋„ˆ๋“ค์ด ์ ‘๊ทผ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • Pod์— ์†Œ์†๋˜๋Š” ๋™์•ˆ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. Pod ๋‚ด์—์„œ ๊ตฌ๋™๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋“ค๋ณด๋‹ค ์˜ค๋ž˜ ์œ ์ง€๋˜๋ฉฐ, ๊ทธ ๋ฐ์ดํ„ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋”๋ผ๋„ ๊ณ„์† ๋ณด์กด๋ฉ๋‹ˆ๋‹ค.

    • iSCSI๋‚˜ NFS์™€ ๊ฐ™์€ Onpremiss๊ธฐ๋ฐ˜์˜ ์™ธ์žฅ ์Šคํ† ๋ฆฌ์ง€ ์ด์™ธ์— ํด๋ผ์šฐ๋“œ ์™ธ์žฅ ์Šคํ† ๋ฆฌ์ง€์ธ AWS EBS, Google PD ๊ทธ๋ฆฌ๊ณ  github, ๋“ฑ์˜ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜ ์™ธ์žฅ์Šคํ† ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณผ๋ฅจ ์œ ํ˜• ์†Œ๊ฐœ

      • emptyDir : ์ผ์‹œ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ„๋‹จํ•œ ๋นˆ ๋””๋ ‰ํ„ฐ๋ฆฌ

      • hostPath : ์›Œ์ปค ๋…ธ๋“œ์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ํŒŒ๋“œ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋งˆ์šดํŠธ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•จ

      • gitRepo : ๊นƒ ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ฒดํฌ์•„์›ƒํ•ด ์ดˆ๊ธฐํ™”ํ™˜ ๋ณผ๋ฅจ

        • ์ƒ์„ฑ ์‹œ์— ์ง€์ •๋œ git ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์˜ ํŠน์ • ๋ฆฌ๋น„์ „์˜ ๋‚ด์šฉ์„ clone์„ ์ด์šฉํ•ด์„œ ๋‚ด๋ ค๋ฐ›์€ ํ›„์— ๋””์Šคํฌ ๋ณผ๋ฅจ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹

        • ๋ฌผ๋ฆฌ์ ์œผ๋กœ emptyDir์ด ์ƒ์„ฑ๋˜๊ณ , git ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ๋‚ด์šฉ์„ clone์œผ๋กœ ๋‹ค์šด

      • nfs :NFS ๊ณต์œ ๋ฅผ ํŒŒ๋“œ์— ๋งˆ์šดํŠธํ•จ

      • gcePersistentDisk(Google Compute Engine Persistent Disk), awsElasticBlock Store(Amazon Web Services Elastic Block Store Volume), azureDisk(Microsoft Azure Disk Volume): ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์˜ ์ „์šฉ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

      • cinder, cephfs, iscsi, flocker, glusterfs, quobyte, rdb, flexVolume, vsphere Volume, photonPersistentDisk, ScaleIO : ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๋„คํŠธ์›Œํฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋งˆ์šดํŠธ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

      • configMap, secret, downwardAPI : ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด๋ฅผ ํŒŒ๋“œ์— ๋…ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ์œ ํ˜•์˜ ๋ณผ๋ฅจ

      • persistentVolumeClaim : ์‚ฌ์ „์— ํ˜น์€ ๋™์ ์œผ๋กœ ํ”„๋กœ๋น„์ €๋‹ ๋œ ํผ์‹œ์Šคํ„ดํŠธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

        • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์Šคํ† ๋ฆฌ์ง€ ์ผ๋ถ€ ์กฐ๊ฐ์„ ๋‚˜ํƒ€๋‚ด๋Š” API ๊ฐ์ฒด๋กœ ๊ฐœ๋ณ„ Pod์˜ ์ˆ˜๋ช…์ฃผ๊ธฐ๋ฅผ ๋„˜์–ด ๋ณด์กด๋˜๋Š” ๋ฒ”์šฉ, ํ”Œ๋Ÿฌ๊ทธ๊ฐ€๋Šฅ ์ž์›์œผ๋กœ์„œ ๊ฐ€์šฉํ•ฉ๋‹ˆ๋‹ค.

        • ๋ณผ๋ฅจ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” PV๋“ค์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ๊ทธ ์ œ๊ณต๋ฐฉ์‹์˜ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์„ ์ถ”์ƒํ™”ํ•˜๋Š” API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

        • ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์‚ฌ์ „์— ์ƒ์„ฑ๋˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค(์ •์  ํ”„๋กœ๋น„์ €๋‹)์—์„œ๋Š” PV๋“ค์ด ์ง์ ‘ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ์˜จ๋””๋ฉ˜ํŠธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค(๋™์  ํ”„๋กœ๋น„์ €๋‹)์—์„œ๋Š” PV ๋Œ€์‹  PVC๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

        • PV๋Š” ํŒŒ๋“œํ•˜๊ณ ๋Š” ๋ณ„๊ฐœ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ๋ณ„๋„์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, PVC๋Š” ์‚ฌ์šฉ์ž๊ฐ€ PV์— ํ•˜๋Š” ์š”์ฒญ

  • ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ 

    • emptyDir ๋ณผ๋ฅจ ์‚ฌ์šฉ

      • apiVersion: v1
        kind: Pod
        metadata:
          name: fortune
        spec:
          containers:
          - image: luksa/fortune
            name: html-generator
            volumeMounts:
            - name: html
              mountPath: /var/htdocs
          - image: nginx:alpine
            name: web-server
            volumeMounts:
            - name: html
              mountPath: /usr/share/nginx/html
              readOnly: true
            ports:
            - containerPort: 80
              protocol: TCP
          volumes:
          - name: html
            emptyDir: {}
      • Pod๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ƒ์„ฑ๋˜๊ณ , Pod๊ฐ€ ์‚ญ์ œ๋  ๋•Œ ๊ฐ™์ด ์‚ญ์ œ๋˜๋Š” ์ž„์‹œ ๋ณผ๋ฅจ์œผ๋กœ ์ƒ์„ฑ ๋‹น์‹œ์—๋Š” ๋””์Šคํฌ์— ์•„๋ฌด ๋‚ด์šฉ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— emptyDir, ๋‹จ Pod ๋‚ด์˜ ์ปจํ…Œ์ด๋„ˆ ํฌ๋ž˜์‰ฌ ๋˜์–ด ์‚ญ์ œ๋˜๊ฑฐ๋‚˜ ์žฌ์‹œ์ž‘๋˜๋”๋ผ๋„ emptyDir์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ Pod ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— emptyDir์€ ์‚ญ์ œ๋˜์ง€ ์•Š๊ณ  ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

      • ๋ณผ๋ฅจ์ด ๋นˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ํŒŒ๋“œ์— ์‹คํ–‰์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์–ด๋–ค ํŒŒ์ผ์ด๋“  ๋ณผ๋ฅจ์— ์“ธ ์ˆ˜ ์žˆ๊ณ  ๋ณผ๋ฅจ์˜ ๋ผ์ดํ”Œ์‚ฌ์ดํด์ด ํŒŒ๋“œ์— ๋ฌถ์—ฌ ์žˆ์œผ๋ฏ€๋กœ ํŒŒ๋“œ๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ๋ณผ๋ฅจ์˜ ์ฝ˜ํ…์ธ ๋Š” ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

      • emptyDir ๋ณผ๋ฅจ์€ ๋™์ผ ํŒŒ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํŒŒ์ผ์„ ๊ณต์œ ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

      • ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ

        • image

          • https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-patterns.html#sidecar-pattern-example

        • ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ๋Š” ํŒŒ๋“œ์˜ ์ฃผ ์ปจํ…Œ์ด๋„ˆ์˜ ๋™์ž‘์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.

        • ์ƒˆ๋กœ์šด ๋กœ์ง์„ ๋ฉ”์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์— ๋ฐ€์–ด ๋„ฃ์–ด ๋ณต์žก์„ฑ์„ ๋”ํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๋Œ€์‹ ์— ํŒŒ๋“œ์— ์‚ฌ์ด๋“œ์นด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์›Œ์ปค ๋…ธ๋“œ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ ์ ‘๊ทผ

    • hostPath ๋ณผ๋ฅจ

      • image

      • hostPath ๋ณผ๋ฅจ์€ ๋…ธ๋“œ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๋™์ผ ๋…ธ๋“œ์— ์‹คํ–‰ ์ค‘์ธ ํŒŒ๋“œ๊ฐ€ hostPath ๋ณผ๋ฅจ์˜ ๋™์ผ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ฉฐ ๋™์ผํ•œ ํŒŒ์ผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

      • gitRepo๋‚˜ emptyDir ๋ณผ๋ฅจ์˜ ์ฝ˜ํ…์ธ ๋Š” ํŒŒ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์‚ญ์ œ๋˜๋Š” ๋ฐ˜๋ฉด, hostPath ๋ณผ๋ฅจ์˜ ์ฝ˜ํ…์ธ ๋Š” ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ๋“œ๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ๋‹ค์Œ ํŒŒ๋“œ๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ๋™์ผ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” hostPath ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•˜๊ณ , ์ด์ „ ํŒŒ๋“œ์™€ ๋™์ผํ•œ ๋…ธ๋“œ์— ์Šค์ผ€์ค„๋ง๋œ๋‹ค๋Š” ์กฐ๊ฑด์—์„œ ์ƒˆ๋กœ์šด ํŒŒ๋“œ๋Š” ์ด์ „ ํŒŒ๋“œ๊ฐ€ ๋‚จ๊ธด ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๋…ธ๋“œ์˜ ๋กœ์ปฌ ๋””์Šคํฌ์˜ ๊ฒฝ๋กœ๋ฅผ Pod์—์„œ ๋งˆ์šดํŠธ ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ hostPath์— ์žˆ๋Š” ๋ณผ๋ฅจ์€ ์—ฌ๋Ÿฌ Pod ์‚ฌ์ด์—์„œ ๊ณต์œ ๋˜์–ด ์‚ฌ์šฉ

  • ๊ธฐ๋ฐ˜ ์Šคํ† ๋ฆฌ์ง€ ๊ธฐ์ˆ ๊ณผ ํŒŒ๋“œ ๋ถ„๋ฆฌ - ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ๊ณผ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจํด๋ ˆ์ž„

    • ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค ๋‘ ๊ฐœ๊ฐ€ ๋„์ž…๋๋‹ˆ๋‹ค. ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ(PV, PersistentVolume)๊ณผ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจํด๋ ˆ์ž„(PVC, PersistentVolumeClaim)

    • ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ ์ƒ์„ฑ

      • image

        • PersistentVolume์€ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๊ฐ€ ํ”„๋กœ๋น„์ €๋‹ ํ•˜๊ณ  PersistentVolumeClaim์„ ํ†ตํ•ด ํฌ๋“œ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

      • apiVersion: v1
        kind: PersistentVolume
        metadata:
          name: mongodb-pv
        spec:
          capacity:
            storage: 1Gi
          accessModes:
          - ReadWriteOnce
          - ReadOnlyMany
          persistentVolumeReclaimPolicy: Retain
          gcePersistentDisk:
            pdName: mongodb
            fsType: ext4
      • ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ์„ ์ƒ์„ฑํ•  ๋•Œ ๊ด€๋ฆฌ์ž๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๊ฒŒ ์šฉ๋Ÿ‰์ด ์–ผ๋งˆ๊ฐ€ ๋˜๋Š”์ง€ ๋‹จ์ผ ๋…ธ๋“œ๋‚˜ ๋™์‹œ์— ๋‹ค์ˆ˜ ๋…ธ๋“œ์— ์ฝ๊ธฐ๋‚˜ ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๊ฒŒ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ์ด ํ•ด์ œ๋˜๋ฉด ์–ด๋–ค ๋™์ž‘์„ ํ•ด์•ผ ํ• ์ง€ ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.(๋ฐ”์ธ๋”ฉ๋œ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจํด๋ ˆ์ž„์ด ์‚ญ์ œ๋˜๋Š” ๊ฒฝ์šฐ)

      • ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ์„ ์ง€์›ํ•˜๋Š” ์‹ค์ œ ์Šคํ† ๋ฆฌ์ง€์˜ ์œ ํ˜•, ์œ„์น˜, ๊ทธ ๋ฐ–์˜ ์†์„ฑ ์ •๋ณด๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      • image

        • PersistentVolume์€ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํฌ๋“œ ๋ฐ PersistentVolumeClaim๊ณผ ๋‹ฌ๋ฆฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์†ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

    • ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจํด๋ ˆ์ž„ ์ƒ์„ฑ์„ ํ†ตํ•œ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ ์š”์ฒญ

      • apiVersion: v1
        kind: Pod
        metadata:
          name: mongodb
        spec:
          containers:
          - image: mongo
            name: mongodb
            volumeMounts:
            - name: mongodb-data
              mountPath: /data/db
            ports:
            - containerPort: 27017
              protocol: TCP
          volumes:
          - name: mongodb-data
            persistentVolumeClaim:
              claimName: mongodb-pvc
      • ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจํด๋ ˆ์ž„์ด ์ƒ์„ฑ๋˜์ž๋งˆ์ž ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ ์ ˆํ•œ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ์„ ์ฐพ๊ณ  ํด๋ ˆ์ž„์— ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ์˜ ์šฉ๋Ÿ‰์€ ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจํด๋ ˆ์ž„์˜ ์š”์ฒญ์„ ์ˆ˜์šฉํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

        • RWO(ReadWriteOnce) : ๋‹จ์ผ ๋…ธ๋“œ๋งŒ์ด ์ฝ๊ธฐ/์“ฐ๊ธฐ์šฉ์œผ๋กœ ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        • ROX(ReadOnlyMany) : ๋‹ค์ˆ˜ ๋…ธ๋“œ๊ฐ€ ์ฝ๊ธฐ์šฉ์œผ๋กœ ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        • RWX(ReadWriteMany) : ๋‹ค์ˆ˜ ๋…ธ๋“œ๊ฐ€ ์ฝ๊ธฐ/์“ฐ๊ธฐ์šฉ์œผ๋กœ ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Reference

  • https://www.oreilly.com/library/view/kubernetes-in-action/9781617293726/

  • https://www.oreilly.com/library/view/cloud-native-devops/9781492040750/

Last updated