Joo's
반응형

1) 준비 사항 (체크리스트)

  • HAProxy VM에 충분한 디스크/네트워크 I/O 여유가 있는지 확인 (NFS가 I/O 병목을 만들 수 있음).
  • NFS 서버(HAProxy)에서 공유할 디스크/경로 결정 (예: /srv/nfs_share).
  • 접근 허용할 클라이언트 IP 대역(예: Kubernetes 마스터 3대 IP 또는 클러스터 CIDR).
  • 방화벽/보안그룹에 포트 열기 가능 (NFSv4는 주로 TCP 2049 사용).
  • (선택) SELinux 사용시 필요한 설정 고려.

2) 설치 (Ubuntu 예시)

# 패키지 설치
sudo apt update
sudo apt install -y nfs-kernel-server

# 공유 디렉토리 생성 및 권한
sudo mkdir -p /srv/nfs_share
sudo chown nobody:nogroup /srv/nfs_share
sudo chmod 0777 /srv/nfs_share   # 테스트용.

3) /etc/exports 작성 — 옵션 상세 설명

# /etc/exports 내용을 수정한다.
sudo vim /etc/exports
# 예시
# /srv/nfs_share  10.0.0.0/24(rw,sync,no_subtree_check,fsid=0,root_squash)

# /etc/hosts에 호스트명 등록되어 있으면 이렇게 하면 됨.
/srv/nfs_share   master1(rw,sync,no_subtree_check,root_squash)
/srv/nfs_share   master2(rw,sync,no_subtree_check,root_squash)
/srv/nfs_share   master3(rw,sync,no_subtree_check,root_squash)

각 옵션 의미:

  • rw : 읽기/쓰기 허용 (ro = 읽기만)
  • sync : 서버가 요청을 디스크에 동기식으로 기록. 안전하지만 속도 느림.
  • async : 비동기(성능 ↑, 장애 시 데이터 손상 위험 ↑). 성능 테스트시 필요하면 사용.
  • no_subtree_check : 하위 디렉토리 검사 비활성화(성능상 권장).
  • root_squash : 클라이언트 root 계정을 nobody로 매핑(보안).
  • no_root_squash : root 권한 그대로 허용(보안 위험).
  • fsid : NFSv4에서 루트 export 지정할 때 사용.
  • 접근 제어: IP 또는 CIDR로 제한 (10.0.0.10(rw,...) 또는 10.0.0.0/24(rw,...))

권장: 프로덕션에선 root_squash 사용, 접근은 반드시 k8s 마스터 IP(또는 클러스터 CIDR)로 제한.

# /etc/exports 수정 후 적용
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
# 반영된 설정 확인
sudo exportfs -v

4) NFS 클라이언트(master 노드) 설정

각 master 노드에서 패키지 설치:

sudo apt update
sudo apt install -y nfs-common

5) 마운트 테스트

예: master1에서

sudo mkdir -p /mnt/nfs_test
sudo mount -t nfs haproxy:/srv/nfs_share /mnt/nfs_test

# 테스트용 파일 생성
touch /mnt/nfs_test/hello_from_master1.txt
ls -l /mnt/nfs_test

👉 master2, master3에서도 /mnt/nfs_test 마운트 후 같은 파일이 보이면 성공 🎉

# 마운트할 폴더 생성 후 마운트
sudo mkdir -p /mnt/nfs_test
sudo mount -t nfs haproxy:/srv/nfs_share /mnt/nfs_test

# master1에서 만든 파일이 보여야 한다.
ls -l /mnt/nfs_test

6) 영구 마운트

sudo vim /etc/fstab

# 마운트 할 디렉토리 있어야 함.
sudo mkdir -p /mnt/nfs_test 

# 아래 내용을 추가
haproxy:/srv/nfs_share   /mnt/nfs_test   nfs   defaults   0   0

# 마운트 적용
sudo mount -a

# 마운트 확인
df -h /mnt/nfs_test

 

반응형

'배운 내용 > Kubernetes' 카테고리의 다른 글

(5) Tekton 설치 + cephFS PVC 캐싱  (0) 2025.09.29
(4) CephFS VS NFS 성능 테스트  (0) 2025.09.29
[Kubernetes]Metrics Server 설치  (0) 2025.09.26
실무과제5 tekton 설치  (0) 2025.09.24
실무과제4 Rook-Ceph 설치  (0) 2025.09.24
profile

Joo's

@JooJY

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!