728x90
<Kubernetes 쿠버네티스 실습 :: NFS 서버 구축>
1. NFS 서버 설치
- k8s-node1가 NFS 서버이고 k8s-node2 / k8s-node3가 NFS 클라이언트
- k8s-node1에 SSH를 이용해 접속하여 NFS 서버 설정 진행
ubuntu@k8s-master:~$ ssh ubuntu@k8s-node1
- NFS 서버를 설치 및 활성화
- 서비스를 다시 시작하여 상태 확인
ubuntu@k8s-node1:~$ sudo apt -y install nfs-kernel-server
ubuntu@k8s-node1:~$ sudo systemctl enable --now nfs-server
ubuntu@k8s-node1:~$ sudo systemctl restart nfs-server
ubuntu@k8s-node1:~$ sudo systemctl status nfs-server
2. /etc/exports 파일 편집 및 적용
- NFS 서버에서 공유할 디렉터리를 설정
ubuntu@k8s-node1:~$ sudo vi /etc/exports
<exports 파일 내용 추가>
- *: 모든 클라이언트에게 접근 허용
- rw: 읽기/쓰기 권한 허용
- sync: 클라이언트에서의 파일 작업이 서버에 즉시 반영
- no_root_squash: 클라이언트가 root로 접근해도 해당 권한 제한하지 않음
- no_subtree_check: 서브트리 검사 비활성화
- insecure: 클라이언트가 포트 미리 지정을 통해 접근
맨 마지막에
/DATA1 *(rw,sync,no_root_squash,no_subtree_check,insecure)
<적용>
ubuntu@k8s-node1:~$ sudo systemctl restart nfs-server
ubuntu@k8s-node1:~$ sudo systemctl status nfs-server
3. NFS 클라이언트 설정 (k8s-node2 / k8s-node3)
- 각 서버를 ssh ubuntu@k8s-node(숫자)를 이용해 원격 접속
- NFS 클라이언트 설치: NFS 서버로부터 파일 시스템 마운트 가능
ubuntu@k8s-node2:~$ sudo apt -y install nfs-common
- k8s-node1 서버의 /DATA1 디렉토리를 k8s-node2 서버의 /DATA1 디렉토리에 마운트
ubuntu@k8s-node2:~$ sudo mount -t nfs k8s-node1:/DATA1 /DATA1
ubuntu@k8s-node2:~$ df -h
<결과 확인>
- k8s-node1: /DATA1가 나타나있는 것을 볼 수 있음
- k8s-node2와 동일 과정
ubuntu@k8s-master:~$ ssh ubuntu@k8s-node3
ubuntu@k8s-node3:~$ sudo apt -y install nfs-common
ubuntu@k8s-node3:~$ sudo mount -t k8s-node1:/DATA1 /DATA1
4. NFS 포드 생성
<nfs-pod.yaml>
- Pod 이름: nfs-nginx
- 하나의 컨테이너 (nfs-container) 존재 / Nginx의 Alpine 기반 이미지 사용
- nfs-vol이라는 이름의 볼륨 마운트 (/usr/share/nginx/html 디렉토리에 마운트)
apiVersion: v1
kind: Pod
metadata:
name: nfs-nginx
spec:
containers:
- name: nfs-container
image: nginx:1.25.3-alpine
volumeMounts:
- name: nfs-vol
mountPath: /usr/share/nginx/html
volumes:
- name: nfs-vol
nfs:
path: /DATA1
server: 192.168.56.101
<적용>
[PS C:\\Users\\admin\\Desktop\\k8s-pods> kubectl apply -f nfs-pod.yaml
pod/nfs-nginx created
<생성 확인>
A. kubectl po -o wide | grep nfs
B. curl
- kubectl po로 확인한 IP 주소 사용
ubuntu@k8s-master:~$ curl 10.111.218.95
'클라우드 + DevOps > Kubernetes (k8s)' 카테고리의 다른 글
Kubernestes 쿠버네티스 포드 관련 이론 및 유형 정리 (0) | 2024.04.17 |
---|---|
Kubernetes 쿠버네티스 실습 :: MySQL 서버 구축 (0) | 2024.04.17 |
Kubernetes 실습 :: Helm 서비스 이용 (0) | 2024.04.16 |
Kubernetes :: Application Pod 배포 실습 (0) | 2024.04.15 |
쿠버네티스 아키텍처 - 오브젝트 이론 (0) | 2024.04.15 |