NFS

Ryu·2021년 12월 17일
0

CI/CD

목록 보기
1/7

개요

2021.05기준 Gitlab 설치 시 PersistentVoluem 지정 기능 미지원 → 동적 프로비저닝 활성화
온프레미스 환경에서 동적 프로비저닝을 위한 사전 작업으로 NFS 설치 및 동적 프로비저닝 테스트

NFS(Network File System) 공유된 원격 호스트의 파일을 로컬에서 사용할 수 있도록 개발된 파일 시스템

서버 생성

NFS 서버
- 192.168.90.14

Client 서버
- 192.168.90.14
- 192.168.90.17
- 192.168.90.18
- 192.168.90.19

NFS 서버 설정

sudo apt-get update
sudo apt-get upgrade -y
# 라이브러리 설치
sudo apt-get install nfs-common nfs-kernel-server rpcbind -y
# 공유할 디렉토리 생성
sudo mkdir -p /data/nfs

# Client 정보 수정
sudo vi /etc/exports
/data/nfs 192.168.90.14(rw,sync,no_subtree_check,no_root_squash)
/data/nfs 192.168.90.17(rw,sync,no_subtree_check,no_root_squash)
/data/nfs 192.168.90.18(rw,sync,no_subtree_check,no_root_squash)
/data/nfs 192.168.90.19(rw,sync,no_subtree_check,no_root_squash)

# 재시작
sudo service nfs-kernel-server restart
sudo service rpcbind restart
sudo exportfs –a

Client 서버 설정

sudo apt-get install nfs-common -y
# 테스트
sudo mkdir /ttt
sudo mount -t nfs 192.168.90.14:/data/nfs /ttt

동적 프로비저닝 설정

kubectl create ns nfs

sudo mkdir -p /nfsprovider
cd /nfsprovider
sudo git clone https://github.com/kubernetes-incubator/external-storage.git
cd external-storage/nfs-client/deploy

# rbac.yaml 및 deployment.yaml내의 namespace를 모두 ‘nfs’로 변경하고 적용
NAMESPACE=nfs
sudo sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" rbac.yaml
sudo sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" deployment.yaml 
kubectl apply –f rbac.yaml

# service account 'nfs-client-provisioner'에게 hostmount-anyuid SCC적용
kubectl create clusterrolebinding crb_nfs_default --clusterrole=cluster-admin --serviceaccount=nfs:default

StorageClass 및 NFS-Provisioner 수정

아래와 같이 생성된 것을 확인

추가 작업(Master Node)


Dynamic NFS Provisioning에서 오류 발생

KEP-1164: Deprecate and Remove SelfLink로 인한 문제 발생
참고 사이트 (해당 방법으로 오류 해결)


참고
온달의 해피클라우드/NFS서버 설치와 NFS Dynamic Provisioning 설정

Can Do It
brb

profile
Let me start

0개의 댓글