티스토리 뷰
4. K8s Resources > 데이터 저장공간(Storage): Volume
4.1 데이터 저장공간(Storage): VolumeVolume이란 데이터 저장 공간인 Storage를 의미합니다. Storage...
blog.naver.com
※ Chrome에서 이미지가 깨지면 다른 브라우저를 이용하세요.
위 글에서는 NFS서버로 IBM Cloud의 File storage를 이용했는데, NFS서버를 VM에 설치하여 이용하는 방법도 설명하겠습니다.
NFS서버 만들기
아래 글을 참조하여 OS맞게 설치하십시오.
happycloud-lee.tistory.com/46?category=832247
NFS서버 만들기
1. ubuntu https://hiondal.blog.me/221624709742 NFS서버 만들기 k8s에서 Volume으로 사용할 수 있는 종류는 아래와 같이 매우 많습니다. 그 중에 많이 사용하는 volume ty... blog.naver.com 2. centos NFS서버..
happycloud-lee.tistory.com
만약에 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
- Event Sourcing
- 마이크로서비스 패턴
- 도파밍
- CQRS
- 리퀴드폴리탄
- spotify
- 버라이어티가격
- API Composition
- 스포티파이
- 애자일
- 돌봄경제
- SAGA
- micro service
- 분초사회
- 디토소비
- 스핀프로젝트
- 호모프롬프트
- 육각형인간
- AXON
- agile
- 요즘남편 없던아빠
- 마이크로서비스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |