728x90
<Kubernetes 쿠버네티스 :: 동적 Volume, StorageClass>
<동적 Volume, StorageClass>
- 스토리지 정적 프로비저닝
- 관리자가 수동으로 PV 생성
- 해당 PV의 용량, 액세스 모드 및 저장소 유형과 같은 하위 저장소의 세부 정보 지정
- 이러한 PV는 사용자가 생성하는 PVC 생성으로 요청되어 PVC의 요구 사랑과 일치하는 사용 가능한 PV에 바인딩
- 스토리지 동적 프로비저닝
- PVC 요청에 대한 PV 생성 자동화
- 관리자는 PV 생성하기 위한 템플릿인 StorageClass 정의
- 각 StorageClass는 PV를 생성하는 책임이 있는 프로비저너를 지정
- 사용자가 특정 StorageClass를 참조하는 PVC를 생성하면 프로비저너는 PVC의 요구 사항과 일치하는 PV를 자동으로 생성하여 관리자의 수동 개입 보류
- 프로비저너는 일반적으로 CSP가 제공하는 볼륨 플러그인 사용
- 동적 Volume, StorageClass 전략
- 운영환경: StorageClass의 성능을 최대 설정
- 개발환경: StorageClass를 느리지만 안전한 볼륨에 저장하도록 구성
- 운영 정책에 따라 StorageClass를 정의하여 그에 상응하는 PV 자동 생성
- StorageClass 생성을 위해 OpenEBS local hostpath 설치
kubectl apply -f <https://openebs.github.io/charts/openebs-operator-lite.yaml>
kubectl apply -f <https://openebs.github.io/charts/openebs-lite-sc.yaml>
1. OpenEBS Operator 및 OpenEBS StorageClass 배포
- OpenEBS Operator
- Kubernetes 클러스터에서 OpenEBS를 관리하는 데 사용되는 Kubernetes Operator
- Kubernetes 애플리케이션을 배포, 관리 및 업그레이드하는 데 사용되는 컨트롤러
- OpenEBS StorageClass
- Kubernetes 클러스터에서 사용할 수 있는 스토리지 클래스를 정의
- 스토리지 클래스는 PersistentVolumeClaim을 만들 때 사용되며, 해당 클래스에 지정된 스토리지를 동적으로 프로비저닝
[PS C:\\Users\\admin\\Desktop\\k8s-pods>kubectl apply -f <https://openebs.github.io/charts/openebs-operator-lite.yaml>
[PS C:\\Users\\admin\\Desktop\\k8s-pods>kubectl apply -f <https://openebs.github.io/charts/openebs-lite-sc.yaml>
<결과 확인>kubectl get sc -o wide
[PS C:\\Users\\admin\\Desktop\\k8s-pods> kubectl get sc -o wide
2. PersistentVolumeClaim 생성
<openebs-pvc.yaml>
- ReadWriteOnce 액세스 모드를 사용하고 1Gi 용량의 스토리지 요청
- StorageClass: openebs-hostpath 지정 (OpenEBS에서 제공하는 HostPath 프로비저너를 사용하여 호스트의 로컬 디스크에 PV 생성)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: openebs-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: "openebs-hostpath"
<적용>
[PS C:\\Users\\admin\\Desktop\\k8s-pods>kubectl apply -f openebs-pvc.yaml
persistentvolume/openebs-pvc created
<생성 확인>
3. Pod 정의
<mynode-sc-node.yaml>
- mynode-sc-pod 라는 포드 정의
- openebs-pvc (PersistentVolumeClaim)에 매핑된 볼륨 마운트
apiVersion: v1
kind: Pod
metadata:
name: mynode-sc-pod
spec:
containers:
- name: mynode-container
image: *****/mynode:1.0
volumeMounts:
- name: mynode-sc-path
mountPath: /mount1
ports:
- containerPort: 8000
volumes:
- name: mynode-nfs-path
persistentVolumeClaim:
claimName: openebs-pvc
<적용>
[PS C:\\Users\\admin\\Desktop\\k8s-pods>kubectl apply -f mynode-sc-node.yaml
persistentvolume/mynode-sc-node.yaml created
<생성 확인>
'클라우드 + DevOps > Kubernetes (k8s)' 카테고리의 다른 글
Kubernetes 쿠버네티스 :: workload resources (1) | 2024.04.20 |
---|---|
Kubernetes 실습 :: 포드(pod) 관리 - imperative syntax 포드 명령형 (0) | 2024.04.19 |
Kubernetes 실습 :: 포드(pod) 관리 - declarative syntax 포드 선언형 (0) | 2024.04.18 |
Kubernetes 쿠버네티스 :: PV, PVC 이해와 활용 (1) | 2024.04.18 |
Kubernestes 쿠버네티스 포드 관련 이론 및 유형 정리 (0) | 2024.04.17 |