반응형
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 |
