기존 Azure 디스크 볼륨 가져오기

Azure용 GKE에 사용할 Azure 디스크 볼륨이 이미 있는 경우 PersistentVolume(PV) 객체를 만들어 특정 PersistentVolumeClaim(PVC)에 예약할 수 있습니다.

이 페이지에서는 데이터가 채워진 기존 볼륨을 사용하여 PV를 만드는 방법과 포드에서 PV를 사용하는 방법을 설명합니다.

시작하기 전에

기존 볼륨의 PersistentVolume 만들기

새 PV를 지정하여 기존 볼륨을 가져올 수 있습니다.

  1. 다음 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입니다.

  2. YAML을 클러스터에 적용

    kubectl apply -f existing-volume.yaml
    
  3. PV 생성을 확인합니다.

    kubectl describe pv VOLUME_NAME
    

    이 명령어의 출력에는 PV 상태가 포함됩니다.

PersistentVolumeClaim 및 Pod에서 볼륨 사용

볼륨을 가져온 후에는 PVC와 PVC를 마운트하는 Pod를 만들 수 있습니다.

  1. 다음 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입니다.
  2. YAML을 클러스터에 적용

    kubectl apply -f nginx.yaml
    
  3. kubectl describe로 Nginx 인스턴스 상태를 확인합니다. 출력에 Running STATUS가 포함됩니다.

    kubectl describe pod web-server
    

다음 단계