[MacOS 환경 #13] 볼륨3. nfs 볼륨

도람·2025년 11월 17일
post-thumbnail

볼륨

이번에는 네트워크로 연결할 수 있는 공유 파일 시스템같은 역할인 nfs 볼륨에 대해 적어보려 한다.
다음 pv와 pvc를 실습하기 위한 사전 준비과정으로서, nfs 볼륨은 필수로 생성해야 한다.

nfs 볼륨(network file system)

nfs 볼륨을 사용하면 기존 NFS(네트워크 파일 시스템) 볼륨을 파드에 마운트할 수 있다.

  • NFS는 여러 작성자가 동시에 마운트할 수 있다.
  • emptyDir와 달리 파드가 지워져도 nfs 볼륨의 내용은 유지가 되고, 마운트 해제만 된다.
    -> NFS볼륨에 미리 데이터를 채울 수 있으며, 파드 간에 데이터를 공유할 수 있다는 의미.

nfs 예시 코드

apiVersion: v1
kind: Pod
metadata:
  name: nfs-demo-pod
spec:
  containers:
  - name: app
    image: alpine
    command: ["sh", "-c", "sleep 3600"]
    volumeMounts:
    - name: nfs-vol
      mountPath: /shared-data
  volumes:
  - name: nfs-vol
    nfs:
      server: <NFS_SERVER_IP>
      path: /exported/path
  • server와 path는 실제 NFS 서버 주소 및 공유 경로로 바꿔야 한다.

실습1. 공유 폴더 생성

mkdir -p ~/nfs_shared/pv-data
chmod -R 777 ~/nfs_shared

이 명령어는

  • mkdir -p ~/nfs_shared/pv-data
    : 홈 디렉토리(~) 아래에 nfs_shared/pv-data 폴더를 생성한다.
    (-p 옵션은 상위 폴더가 없을 경우 자동으로 함께 만든다는 뜻이다.)

  • chmod -R 777 ~/nfs_shared
    :해당 폴더와 내부 모든 하위 파일·폴더의 권한을 읽기/쓰기/실행 가능(777) 으로 변경한다.
    NFS 서버에서 클라이언트(쿠버네티스)가 접근할 수 있도록 모든 사용자에게 권한을 부여하는 과정이다.

이제 /Users/goorm/nfs_shared/pv-data 경로가
쿠버네티스가 마운트해서 쓸 수 있는 공유 디렉토리로 준비된 상태이다.

이렇게 권한이 모두 열려있는 것을 확인할 수 있다.


실습2. /etc/exports 파일 수정

/Users/사용자이름/nfs_shared -alldirs -mapall=0 -network 192.168.0.0 -mask 255.255.255.0

이 명령어는
ex)
/Users/lee/nfs_shared -alldirs -mapall=0 -network 192.168.0.0 -mask 255.255.255.0

  • alldirs: 하위 폴더 모두 접근 가능
  • mapall=0: root 권한으로 접근 허용
  • network/-mask: 접근 허용할 네트워크 대역 (보통 내부 LAN)

실제 경로와 ip 주소확인 명령어

  • echo $HOME -> 경로가 나오는데 여기에서 /nfs-shared 를 붙인 것이 공유 폴더의 전체 경로이다.
  • ipconfig getifaddr en0 -> 하면 ip 주소가 나온다.

+permission denied 가 나올 경우

sudo vi /etc/exports

위 명령어를 입력한다.

그리고

/Users/<사용자이름>/nfs_shared -alldirs -mapall=0 -network <사용자 ip> -mask 255.255.255.0

이를 추가하고 !wq하여 저장한다.

그리고나서 NFS 서버를 재시작해준다.

sudo nfsd enable
sudo nfsd restart

위 명령어를 실행하여 재시작할 수 있다.

그런 다음 다음 명령어를 활용해 설정을 확인해준다.

showmount -e

정상이라면 다음과 같이 출력된다.
Exports list on localhost:
/Users/<사용자이름>/nfs_shared <사용자 IP>


실습3. NFS 서버 실행

sudo nfsd enable
sudo nfsd restart

후,

sudo nfsd status

명령어를 실행한다.


위처럼 "NFS server is running"이라고 뜨면 성공이다.


다음 게시물

다음 포스팅에서는, 이렇게 설정한 NFS 서버를 기반으로
PV(Persistent Volume) 과 PVC(Persistent Volume Claim) 를 생성하여
실제 파드에 NFS 스토리지를 연결하는 과정을 실습한다.



참고자료:
[쿠버네티스 공식 홈페이지 - Volumes]
https://kubernetes.io/ko/docs/concepts/storage/volumes/

profile
정도를 걷는 엔지니어

0개의 댓글