728x90
반응형
# PV와 PVC를 이용한 EBS 볼륨을 사용해보자.
PV와 PVC는 pod를 생성하는 yaml 관점에서 보면 EFS인지 EBS인지 상관 하지 않고 볼륨만 생성해주는 역할을 한다고 보면 된다.
예를들어 인프라를 관리하는 사람은 PV만 생성해서 두면, 개발자는 PVC를 생성하여 볼륨을 사용 할 수 있다.
그렇다면 볼륨을 생성하는 과정에 대해서 알아본다.
1. EBS 볼륨을 생성
- AWS 콘솔에서 EBS볼륨을 생성하고 해당 볼륨의 ID를 복사한다.
2. PV를 생성
- ebs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: ebs-pv
spec:
capacity:
storage: 8Gi
accessModes:
- ReadWriteOnce
awsElasticBlockStore:
fsType: ext4
volumeID: <VOLUME_ID> 위에서 생성한 볼륨 id를 넣는다.
- ReadWriteOnce의 의미는 볼륨과 PV가 1:1 매칭이 된다고 이해하면 된다. ReadWriteMany 같은 경우 1:다수 가 된다고 볼 수 있다.
생생 결과는 아래와 같다.
seungkim:~/environment/pv-pvc-test $ kubectl get pv -A
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
ebs-pv 8Gi RWO Retain Available 6s
2. PVC를 생성
- ebs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-ebs-pvc
spec:
storageClassName: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
- 생성 결과는 아래와 같다.
seungkim:~/environment/pv-pvc-test $ kubectl get pvc -A
NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
default my-ebs-pvc Bound ebs-pv 8Gi RWO
3. Deployment를 활용한 pod를 생성 및 pv와 pvc를 연결
- ebs-deployment.yaml
apiVersion: v1
kind: Pod
metadata:
name: ebs-mount-container
spec:
containers:
- name: ebs-mount-container
image: busybox
args: ["tail", "-f", "/dev/null"]
volumeMounts:
- name: ebs-pv
mountPath: /mnt
volumes:
- name: ebs-pv
persistentVolumeClaim:
claimName: my-ebs-pvc
- 실행을 하면 정상적으로 pod가 생성이 되고, 볼륨과 연결이 가능하다.
전제 조건으로는 csi-driver가 설치 되어 있어야 한다.
- 끝 -
728x90
반응형
'⭐ Kubernetes & EKS > PV & PVC' 카테고리의 다른 글
PV와 PVC의 개념 및 실습 (0) | 2021.09.11 |
---|