티스토리 뷰
※ Chrome에서 이미지가 깨지면 다른 브라우저를 이용하세요.
위 글에서는 NFS서버로 IBM Cloud의 File storage를 이용했는데, NFS서버를 VM에 설치하여 이용하는 방법도 설명하겠습니다.
NFS서버 만들기
아래 글을 참조하여 OS맞게 설치하십시오.
happycloud-lee.tistory.com/46?category=832247
만약에 NFS서버를 사용할 VM을 telnet으로 접근 못하는 경우(예: IKS, AKS 등 이용 시)는 client설정은 할 필요 없습니다.
PV 만들기
$ mkdir -p ~/voletest
$ cd ~/voltest
$ vi pv.yaml
# metadata.name, metadata.labels, spec.storageClassName, spec.capacity.storage,
# spec.accessModes, spec.persistentVolumeReclaimPolicy, spec.nfs는 적절히 변경
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-vol
labels:
type: nfs
spec:
storageClassName: standard
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
nfs:
server: 169.56.76.4
path: /nfs
kubectl이 너무 길어 alias를 만듭니다.
$ which kubectl
/usr/local/bin/kubectl
$ alias /usr/local/bin/kubectl /usr/local/bin/k
namespace 'demo'만들고, 현재 namespace를 변경합니다.
$ k create ns demo
$ k config set-context $(k config current-context) --namespace demo
pv를 생성
$ k apply pv.yaml
$ k get pv
PVC 만들기
$ vim pvc.yaml
# metadata.name, spec.storageClassName, spec.resources.requests.storage,
# spec.accessModes, spec.selector.matchLabels 수정 필요
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
storageClassName: standard
resources:
requests:
storage: 5Gi
accessModes:
- ReadWriteMany
selector:
matchLabels:
type: nfs
$ k apply -f pvc.yaml
$ k get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nfs-pvc Bound nfs-vol 5Gi RWX standard 23m
테스트
아래와 같이 test용 pod를 생성합니다.
$ vi voltest.yaml
apiVersion: v1
kind: Pod
metadata:
name: voltest-nfs
spec:
containers:
- name: users
image: ondalk8s/users-img
volumeMounts:
- name: tmp-vol
mountPath: /tmp
volumes:
- name: tmp-vol
persistentVolumeClaim:
claimName: nfs-pvc
$ k apply -f voltest.yaml
$ k get pod
NAME READY STATUS RESTARTS AGE
voltest-nfs 1/1 Running 0 21m
위 container는 NFS서버의 /nfs디렉토리를 container내부의 /tmp디렉토리로 마운트 합니다.
container내부를 들어가서 /tmp폴더에 파일을 생성합니다.
그리고, nfs서버를 접근하여 /nfs디렉토리에 동일한 파일이 있는지 확인합니다.
container에 파일 생성
$ k exec -it voltest-nfs sh
# cd /tmp
# touch file1
# exit
NFS서버 접근
$ ssh root@169.56.76.4
...
$ cd /nfs
$ ls -al
total 8
drwxr-xr-x. 2 root root 4096 Aug 30 21:23 .
dr-xr-xr-x. 19 root root 4096 Aug 30 20:32 ..
-rw-r--r--. 1 root root 0 Aug 30 21:23 file1
'Cloud > Kubernetes' 카테고리의 다른 글
4. K8s Resources > 배포한 Pod 연결: Service (0) | 2019.09.12 |
---|---|
4. K8s Resources > Pod 배포 Controller: Deployment, DaemonSet, Job, CronJob, StatefulSet (0) | 2019.09.12 |
4. Kubernetes Resource 이해 > 개요 (0) | 2019.09.12 |
3. Getting Started (0) | 2019.09.12 |
2. k8s 설치하기 (0) | 2019.09.12 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- CQRS
- 요즘남편 없던아빠
- 마이크로서비스 패턴
- micro service
- spotify
- 도파밍
- 마이크로서비스
- agile
- 호모프롬프트
- 육각형인간
- 버라이어티가격
- 리퀴드폴리탄
- 돌봄경제
- 스포티파이
- 스핀프로젝트
- 분초사회
- AXON
- 디토소비
- API Composition
- Event Sourcing
- SAGA
- 애자일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함