본문 바로가기
Kubernetes

[온프레미스 프로젝트] NFS + PV

by Nirah 2023. 3. 15.

 

중간 온프레미스 프로젝트 할 때 썼던 nfs 리소스 마운트 코드다.

디플로이먼트인 was쪽이 pv를 써서 리소스들을 가져다 쓰는데

pv용 디렉토리는 따로 nfs 리소스용 스토리지와 마운트 되어있는 형식이다. 

 

 nfs 설정
    
    yum install -y nfs-utils
    
    mkdir /web /was
    
    vi /etc/exports
    
    ```yaml
    /web   192.168.108.0/24(rw,sync,no_subtree_check,no_root_squash)
    /was   192.168.108.0/24(rw,sync,no_subtree_check,no_root_squash)
    ```
    
    systemctl enable nfs —now

 

pv, pvc 설정

- pv, pvc 설정
    
    ```yaml
    # pv.yml
    
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: nfs-pv-web
      labels:
        data: web
    spec:
      capacity:
        storage: 5Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
      storageClassName: manual
      persistentVolumeReclaimPolicy: Delete
      nfs:
       server: 192.168.108.20
       path: /web
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: nfs-pv-was
      labels:
        data: was
    spec:
      capacity:
        storage: 5Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
      storageClassName: manual
      persistentVolumeReclaimPolicy: Delete
      nfs:
       server: 192.168.108.20
       path: /was
    ```
    
    ```yaml
    # pvc.yml
    
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pv-claim-web
      labels:
        app: web
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      storageClassName: manual
      selector:
        matchLabels:
          data: web
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pv-claim-was
      labels:
        app: was
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      storageClassName: manual
      selector:
        matchLabels:
          data: was
    ```​

 

# pvc.yml

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim-web
  labels:
    app: web
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: manual
  selector:
    matchLabels:
      data: web
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim-was
  labels:
    app: was
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: manual
  selector:
    matchLabels:
      data: was