기존 Azure 디스크 볼륨 가져오기
Azure용 GKE에 사용할 Azure 디스크 볼륨이 이미 있는 경우 PersistentVolume(PV) 객체를 만들어 특정 PersistentVolumeClaim(PVC)에 예약할 수 있습니다.
이 페이지에서는 데이터가 채워진 기존 볼륨을 사용하여 PV를 만드는 방법과 포드에서 PV를 사용하는 방법을 설명합니다.
시작하기 전에
기존 볼륨의 PersistentVolume 만들기
새 PV를 지정하여 기존 볼륨을 가져올 수 있습니다.
다음 YAML을
existing-volume.yaml
이라는 파일에 복사합니다.apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME annotations: pv.kubernetes.io/provisioned-by: disk.csi.azure.com spec: capacity: storage: VOLUME_CAPACITY accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: STORAGE_CLASS_NAME claimRef: name: my-pvc namespace: default csi: driver: disk.csi.azure.com volumeHandle: /subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/microsoft.compute/disks/DISK_NAME fsType: FILE_SYSTEM_TYPE
다음을 바꿉니다.
- VOLUME_NAME: 볼륨 이름입니다.
- VOLUME_CAPACITY: 볼륨 크기입니다. 예를 들면
30Gi
입니다. Kubernetes의 볼륨 용량 지정 방법에 대한 자세한 내용은 메모리 의미를 참조하세요. STORAGE_CLASS_NAME: 볼륨을 프로비저닝하는 StorageClass의 이름입니다. 예를 들어 기본
standard-rwo
를 사용할 수 있습니다.SUBSCRIPTION_ID: 볼륨이 포함된 Azure 구독 ID입니다.
RESOURCE_GROUP_NAME: 볼륨이 포함된 Azure 리소스 그룹입니다.
DISK_NAME: 볼륨의 Azure Disk 이름입니다.
FS_TYPE: 볼륨의 파일 시스템입니다. 예를 들면
ext4
입니다.
YAML을 클러스터에 적용
kubectl apply -f existing-volume.yaml
PV 생성을 확인합니다.
kubectl describe pv VOLUME_NAME
이 명령어의 출력에는 PV 상태가 포함됩니다.
PersistentVolumeClaim 및 Pod에서 볼륨 사용
볼륨을 가져온 후에는 PVC와 PVC를 마운트하는 Pod를 만들 수 있습니다.
다음 YAML은 PVC를 만들고 Nginx 웹 서버를 실행하는 Pod에 연결합니다. 이를
nginx.yaml
이라는 파일로 복사합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: STORAGE_CLASS_NAME volumeName: VOLUME_NAME accessModes: - ACCESS_MODE resources: requests: storage: VOLUME_CAPACITY --- apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: web-server image: nginx volumeMounts: - mountPath: /var/lib/www/html name: data volumes: - name: data persistentVolumeClaim: claimName: my-pvc
다음을 바꿉니다.
- STORAGE_CLASS: 이전에 만든 PersistentVolume의 StorageClass 이름입니다. 예:
standard-rwo
- ACCESS_MODE: 볼륨의 액세스 모드입니다. Azure Disk의 경우
ReadWriteOnce
를 사용합니다. Azure File의 경우ReadWriteMany
를 사용합니다. - VOLUME_CAPACITY: 볼륨 크기입니다. 예를 들면
30Gi
입니다.
- STORAGE_CLASS: 이전에 만든 PersistentVolume의 StorageClass 이름입니다. 예:
YAML을 클러스터에 적용
kubectl apply -f nginx.yaml
kubectl describe
로 Nginx 인스턴스 상태를 확인합니다. 출력에Running
STATUS
가 포함됩니다.kubectl describe pod web-server
다음 단계
- Azure용 GKE에서 추가 스토리지 드라이버를 사용합니다.
- Azure Disk CSI 드라이버 문서 읽어보기