- NFS 서버가 공유하고 있는 데이터 디렉토리를 worker node의 pod들이 access할 수 있도록 지원
- 사전준비
- NFS 서버는 application이 사용할 공유 디렉토리를 지원하고 있어야 함.
- Worker node는 NFS 클라이언트가 되어서 NFS Server가 지원하는 공유 폴더에 접근할 수 있어야 함.
- definition
volumes:
- name: webdata
nfs:
server: nfs.server.name
path: /share/dir/path
<이미지 출처 : https://www.youtube.com/watch?v=yFqeoeR3l6Q&list=PLApuRlvrZKohLYdvfX-UEFYTE7kfnnY36&index=5 >
[Hands - on]
- NFS 서버 설치 및 설정
- 별도의 nfs 서버에서 진행
apt-get install -y nfs-common nfs-kernel-server rpcbind portmap
- 공유할 디렉터리 설정
mkdir -p /sharedir/k8s
chmod 0777 /sharedir/k8s/
- NFS 서버 설정 및 확인
- ro - 읽기 전용
- rw - 읽기와 쓰기 모두 가능
- no_root_squash - 기본적으로 NFS 클라이언트에서 루트 사용자가 공유된 디렉토리를 사용한다 하여도 접근 사용자는 nfsnobody 권한을 갖는다. 이때 이 옵션 사용시 클라이언트의 루트와 서버의 루트 권한을 갖게 된다.(클라이언트에게 root 권한 부여)
- root_squash - 클라이언트에게 nfsnobody 권한을 갖도록 설정
- sync - 클라이언트가 파일 쓰기 완료 후 디스크 동기화를 진행
- noaccess - 디렉토리를 접근하지 못하게 막음
- insecure : 암호 인증을 하지 않음
vi /etc/exports
/sharedir/k8s *(rw,sync,no_root_squash,insecure)
exportfs -a
systemctl restart nfs-kernel-server
exportfs
/sharedir/k8s <world>
- index.html 파일 생성
cat > /sharedir/k8s/index.html << EOF
hello world
EOF
- control-plane에 nfs client 설정
apt-get install -y nfs-common
- nfs 사용할 pod 생성 및 확인
- control-plane에서 진행
vi nfs.yaml
apiVersion: v1
kind: Pod
metadata:
name: web-nfs
spec:
containers:
- image: nginx:1.14
name: nginx
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
volumes:
- name: html
nfs:
server: 10.100.0.4 #nfs ip
path: /sharedir/k8s
kubectl apply -f nfs.yaml
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
web-nfs 1/1 Running 0 14m 10.47.0.1 node3.example.com <none> <none>
curl 10.47.0.1
hello world
참고 :
https://www.youtube.com/watch?v=yFqeoeR3l6Q&list=PLApuRlvrZKohLYdvfX-UEFYTE7kfnnY36&index=5
'INFRA > DevOps' 카테고리의 다른 글
[K8s] Network (0) | 2023.04.10 |
---|---|
[k8s] Persistent Volume & Persistent Volume Claim (0) | 2023.04.03 |
[k8s] Storage emptyDir 및 share volume (0) | 2023.03.20 |
[K8s] Storage 개념 및 hostPath (0) | 2023.03.14 |
[k8s] 인증과 권한 관리 - 권한편 (0) | 2023.03.06 |
댓글