다음은 쿠버네티스에서 동적 프로비저닝을 사용하여 스토리지를 관리하는 방법에 대한 설명입니다.
다음은 쿠버네티스에서 동적 프로비저닝을 위한 PersistentVolumeClaim (PVC)에 대한 YAML 파일 예시입니다. 이 예시는 AWS EBS CSI Driver 저장소에서 가져왔습니다:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myapp-pvc-dynamic
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: nfs-client
이 YAML 파일에서:
apiVersion
,kind
, 그리고metadata
는 표준 쿠버네티스 필드입니다.metadata
는 PVC의 이름을 포함합니다.spec
은 PVC의 세부 사항이 정의되는 곳입니다:accessModes
는 볼륨이 가져야 하는 접근 모드를 지정합니다.ReadWriteMany
는 볼륨이 여러 노드에 의해 읽기-쓰기로 마운트될 수 있음을 의미합니다.resources
는 PVC가 요청하는 스토리지 리소스를 지정합니다. 여기서는 1Gi의 스토리지를 요청합니다.storageClassName
은 StorageClass를 지정합니다. 여기서는nfs-client
StorageClass가 사용되며, 이는 이전에 클러스터에 정의되어 있어야 하며 NFS 서버를 사용하도록 설정되어 있어야 합니다.
실제 프로비전된 스토리지는 StorageClass의 설정과 기본 스토리지 제공자의 설정에 따라 달라질 것입니다.
이번 예제에서는 NFS를 이용한 동적 프로비저닝을 설정하였습니다. NFS 서버가 이미 설정되어 있다면, 해당 서버를 사용하면 되고, 없다면 이전에 사용한 NFS 서버를 먼저 설치해야 합니다.
다음은 동적 프로비저닝을 위한 YAML 파일들입니다.
myapp-rs-dynamic.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-rs-dynamic
spec:
replicas: 2
selector:
matchLabels:
app: myapp-rs-dynamic
template:
metadata:
labels:
app: myapp-rs-dynamic
spec:
containers:
- name: web-server
image: nginx:alpine
volumeMounts:
- name: web-content
mountPath: /usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: web-content
persistentVolumeClaim:
claimName: myapp-pvc-dynamic
myapp-pvc-dynamic.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myapp-pvc-dynamic
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: nfs-client
위의 YAML 파일들을 쿠버네티스에 적용하면, myapp-pvc-dynamic
라는 PersistentVolumeClaim이 생성되고, 이를 사용하는 Pod가 배포됩니다. 이때, PVC는 nfs-client
라는 StorageClass를 사용하도록 설정되어 있습니다. 이 StorageClass는 NFS 서버를 이용한 동적 프로비저닝을 지원하도록 설정되어 있어야 합니다.
참고자료:
'Infra > Kubernetes' 카테고리의 다른 글
쿠버네티스 04-03 Storage_Static (0) | 2023.09.06 |
---|---|
쿠버네티스 04-02 Storage_Hostpath (0) | 2023.09.06 |
쿠버네티스 04-01 Storage_Emptydir (0) | 2023.09.06 |
쿠버네티스 03-05 Network_Headless_Service (0) | 2023.09.06 |
쿠버네티스 03-04 Network_Readiness_Probe (0) | 2023.09.06 |