다음을 통해 공유


영구 볼륨 만들기

이 문서에서는 스토리지 키 인증을 사용하여 영구 볼륨을 만드는 방법을 설명합니다.

필수 조건

이 섹션에서는 PV(영구 볼륨)를 만들기 위한 필수 구성 요소를 설명합니다.

  1. 여기에 나와 있는 지침에 따라 스토리지 계정을 만듭니다.

    참고 항목

    스토리지 계정을 만들 때 Kubernetes 클러스터와 동일한 리소스 그룹 아래에 만듭니다. Kubernetes 클러스터와 동일한 지역/위치에도 만드는 것이 좋습니다.

  2. 여기에 나와 있는 지침에 따라 이전 단계에서 만든 스토리지 계정에 컨테이너를 만듭니다.

스토리지 키 인증 구성

  1. 다음과 같은 내용으로 add-key.sh라는 파일을 만듭니다. 편집하거나 변경해야 할 부분은 없습니다.

    #!/usr/bin/env bash
    
    while getopts g:n:s: flag
    do
        case "${flag}" in
            g) RESOURCE_GROUP=${OPTARG};;
            s) STORAGE_ACCOUNT=${OPTARG};;
            n) NAMESPACE=${OPTARG};;
        esac
    done
    
    SECRET=$(az storage account keys list -g $RESOURCE_GROUP -n $STORAGE_ACCOUNT --query [0].value --output tsv)
    
    kubectl create secret generic -n "${NAMESPACE}" "${STORAGE_ACCOUNT}"-secret --from-literal=azurestorageaccountkey="${SECRET}" --from-literal=azurestorageaccountname="${STORAGE_ACCOUNT}"
    
  2. 파일을 만든 후 파일에 대한 쓰기 권한을 변경하고 다음 명령을 사용하여 셸 스크립트를 실행합니다. 이러한 명령을 실행하면 {YOUR_STORAGE_ACCOUNT}-secret이라는 비밀이 만들어집니다. 이 비밀 이름은 PV를 구성할 때 secretName 값에 사용됩니다.

    chmod +x add-key.sh
    ./add-key.sh -g "$YOUR_RESOURCE_GROUP_NAME" -s "$YOUR_STORAGE_ACCOUNT_NAME" -n "$YOUR_KUBERNETES_NAMESPACE"
    

PV(영구 볼륨) 만들기

로컬 인스턴스를 만들고 원격 BLOB 스토리지 계정에 바인딩하려면 캐시 볼륨에 대한 PV(영구 볼륨)를 만들어야 합니다.

바인딩하는 PVC의 spec: volumeName에 지정해야 하므로 metadata: name:을 기록해 둡니다. 필수 구성 요소의 일부로 만든 스토리지 계정 및 컨테이너를 사용합니다.

  1. pv.yaml이라는 파일을 만듭니다.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
        ### Create a name here ###
        name: CREATE_A_NAME_HERE
    spec:
        capacity:
            ### This storage capacity value is not enforced at this layer. ###
            storage: 10Gi
        accessModes:
            - ReadWriteMany
        persistentVolumeReclaimPolicy: Retain
        storageClassName: esa
        csi:
            driver: edgecache.csi.azure.com
            readOnly: false
            ### Make sure this volumeid is unique in the cluster. You must specify it in the spec:volumeName of the PVC. ###
            volumeHandle: YOUR_NAME_FROM_METADATA_NAME_IN_LINE_4_HERE
            volumeAttributes:
                protocol: edgecache
                edgecache-storage-auth: AccountKey
                ### Fill in the next two/three values with your information. ###
                secretName: YOUR_SECRET_NAME_HERE ### From the previous step, this name is "{YOUR_STORAGE_ACCOUNT}-secret" ###
                ### If you use a non-default namespace, uncomment the following line and add your namespace. ###
                ### secretNamespace: YOUR_NAMESPACE_HERE
                containerName: YOUR_CONTAINER_NAME_HERE
    
  2. 이 .yaml 파일을 적용하려면 다음을 실행합니다.

    kubectl apply -f "pv.yaml"
    

다음 단계