AKS(Azure Kubernetes Service)에서 Azure Blob Storage로 볼륨 만들기 및 사용
컨테이너 기반 애플리케이션은 종종 외부 데이터 볼륨의 데이터를 액세스하고 유지해야 합니다. 여러 Pod가 동일한 스토리지 볼륨에 동시 액세스해야 하는 경우, Azure Blob Storage를 사용하면 blobfuse 또는 NFS(네트워크 파일 시스템)를 사용해 연결할 수 있습니다.
이 문서는 다음을 수행하는 방법을 보여줍니다.
- CSI(Container Storage Interface) 드라이버를 설치하고 Pod에 연결할 Azure Blob storage 컨테이너를 동적으로 만들어 동적 PV(영구 볼륨)로 작업합니다.
- Azure Blob storage 컨테이너를 만들어 정적 PV로 작업하거나 기존 컨테이너를 사용하여 Pod에 연결합니다.
Kubernetes 볼륨에 대한 자세한 내용은 AKS의 애플리케이션에 대한 스토리지 옵션을 참조하세요.
시작하기 전에
AKS 클러스터에서 Blob Storage CSI 드라이버를 사용 설정합니다.
blobfuse 탑재를 사용할 때 Azure DataLake Gen2 스토리지 계정을 지원하려면 다음을 수행해야 합니다.
- 동적 프로비전에서 드라이버를 사용하여 ADLS 계정을 만들려면 스토리지 클래스 매개 변수에
isHnsEnabled: "true"
를 지정합니다. - 정적 프로비전에서 ADLS 계정에 대한 blobfuse 액세스를 사용하도록 설정하려면 영구 볼륨에서 탑재 옵션
--use-adls=true
를 지정합니다. - 계층 구조 네임스페이스에서 스토리지 계정을 사용하도록 설정하려는 경우
--use-adls=true
탑재 옵션을 사용하여 기존 영구 볼륨을 다시 탑재해야 합니다.
- 동적 프로비전에서 드라이버를 사용하여 ADLS 계정을 만들려면 스토리지 클래스 매개 변수에
blobfuse 캐시 정보
- 기본적으로 blobfuse 캐시는
/mnt
디렉터리에 있습니다. VM SKU가 임시 디스크를 제공하는 경우/mnt
디렉터리가 임시 디스크에 탑재됩니다. 그러나 VM SKU가 임시 디스크를 제공하지 않는 경우/mnt
디렉터리가 OS 디스크에 탑재되면--tmp-path=
탑재 옵션을 설정하여 다른 캐시 디렉터리를 지정할 수 있습니다.
- 기본적으로 blobfuse 캐시는
동적으로 볼륨 프로비전
이 섹션에서는 워크로드에서 사용할 Blob Storage의 세부 정보를 포함하는 하나 이상의 영구 볼륨을 프로비전하려는 클러스터 관리자를 위한 지침을 제공합니다. PVC(영구 볼륨 클레임)는 스토리지 클래스 개체를 사용하여 Azure Blob Storage 컨테이너를 동적으로 프로비저닝합니다.
동적 영구 볼륨에 대한 스토리지 클래스 매개 변수
다음 표에는 영구 볼륨 클레임에 대한 사용자 지정 스토리지 클래스를 정의하는 데 사용할 수 있는 매개 변수가 나와 있습니다.
속성 | 설명 | 예시 | 필수 | 기본값 |
---|---|---|---|---|
skuName | Azure 스토리지 계정 유형(별칭: storageAccountType )을 지정합니다. |
아니요 | Standard_LRS |
|
location | Azure 위치를 지정합니다. | eastus |
아니요 | 비어 있는 경우 드라이버는 현재 클러스터와 동일한 위치 이름을 사용합니다. |
resourceGroup | Azure 리소스 그룹 이름을 지정합니다. | myResourceGroup | 아니요 | 비어 있으면 드라이버에서 현재 클러스터와 동일한 리소스 그룹 이름을 사용합니다. |
storageAccount | Azure Storage 계정 이름을 지정합니다. | storageAccountName | 아니요- | 특정 스토리지 계정 이름이 제공되지 않으면 드라이버는 동일한 리소스 그룹 내의 계정 집합과 일치하는 적합한 스토리지 계정을 찾습니다. 일치하는 스토리지 계정을 찾지 못하면 새 계정을 만듭니다. 그러나 스토리지 계정 이름을 지정한 경우 스토리지 계정이 이미 존재해야 합니다. |
networkEndpointType | 드라이버에서 만든 스토리지 계정에 대한 네트워크 엔드포인트 형식을 지정합니다. privateEndpoint 가 지정된 경우 스토리지 계정에 대한 프라이빗 엔드포인트가 만들어집니다. 다른 경우에는 NFS 프로토콜에 대한 서비스 엔드포인트가 생성됩니다.1 | privateEndpoint |
아니요 | AKS 클러스터의 경우 VNET을 호스팅하는 리소스 그룹의 기여자 역할에 AKS 클러스터 이름을 추가합니다. |
프로토콜 | blobfuse 탑재 또는 NFSv3 탑재를 지정합니다. | fuse : nfs |
아니요 | fuse |
containerName | 기존 컨테이너(디렉터리) 이름을 지정합니다. | 컨테이너 | 아니요 | 비어 있는 경우 드라이버는 blobfuse의 경우 pvc-fuse 또는 NFS v3의 경우 pvc-nfs 로 시작하는 새 컨테이너 이름을 만듭니다. |
containerNamePrefix | 드라이버에서 만든 Azure 스토리지 디렉터리 접두사를 지정합니다. | 내 | 소문자, 숫자, 하이픈만 포함할 수 있으며 길이는 21자 미만이어야 합니다. | 아니요 |
server | Azure Storage 계정 도메인 이름을 지정합니다. | 기존 스토리지 계정 DNS 도메인 이름(예: <storage-account>.privatelink.blob.core.windows.net ). |
아니요 | 비어 있는 경우 드라이버는 기본 <storage-account>.blob.core.windows.net 또는 기타 소버린 클라우드 스토리지 계정 DNS 도메인 이름을 사용합니다. |
allowBlobPublicAccess | 드라이버에서 만든 스토리지 계정에 대한 모든 Blob 또는 컨테이너에 대한 공용 액세스를 허용하거나 허용하지 않습니다. | true =false |
아니요 | false |
storageEndpointSuffix | Azure 스토리지 엔드포인트 접미사를 지정합니다. | core.windows.net |
아니요 | 비어 있는 경우 드라이버는 클라우드 환경에 따라 기본 스토리지 엔드포인트 접미사를 사용합니다. |
tags | 태그는 새 스토리지 계정에 만들어집니다. | 태그 형식: 'foo=aaa,bar=bbb' | 아니요 | :\ |
matchTags | 드라이버가 적절한 스토리지 계정을 찾으려고 할 때 태그를 일치시킵니다. | true =false |
아니요 | false |
--- | 다음 매개 변수는 blobfuse에만 해당됩니다. | --- | --- | --- |
subscriptionID | Blob Storage 디렉터리가 만들어질 Azure 구독 ID를 지정합니다. | Azure 구독 ID | 아니요 | 비어 있지 않은 경우 resourceGroup 을 제공해야 합니다. |
storeAccountKey | Kubernetes 비밀에 저장소 계정 키를 지정합니다. 참고: false 는 드라이버가 kubelet ID를 사용하여 계정 키를 가져옴을 의미합니다. |
true =false |
아니요 | true |
secretName | 계정 키를 저장할 비밀 이름을 지정합니다. | 아니요 | ||
secretNamespace | 계정 키를 저장할 비밀의 네임스페이스를 지정합니다. | default , kube-system 등 |
아니요 | pvc 네임스페이스 |
isHnsEnabled | Azure Data Lake 스토리지 계정에 대해 Hierarchical namespace 를 사용하도록 설정합니다. |
true =false |
아니요 | false |
--- | 다음 매개 변수는 NFS 프로토콜에만 해당합니다. | --- | --- | --- |
mountPermissions | 탑재된 폴더 권한을 지정합니다. | 기본값은 0777 입니다. 0 으로 설정하면 드라이버가 탑재 후 chmod 를 수행하지 않습니다. |
0777 |
아니요 |
1 드라이버에서 스토리지 계정을 만든 경우 스토리지 클래스에서 networkEndpointType: privateEndpoint
매개 변수만 지정하면 됩니다. CSI 드라이버는 계정과 함께 프라이빗 엔드포인트를 만듭니다. 사용자 고유의 스토리지 계정을 가져오는 경우 스토리지 계정에 대한 프라이빗 엔드포인트를 만들어야 합니다.
기본 제공 스토리지 클래스를 사용하여 영구 볼륨 클레임 만들기
PVC(영구 볼륨 클레임)는 스토리지 클래스 개체를 사용하여 Azure Blob Storage 컨테이너를 동적으로 프로비저닝합니다. 다음 YAML은 기본 제공 스토리지 클래스를 사용하여 ReadWriteMany 액세스 권한이 있는 5GB 크기의 영구 볼륨 클레임을 만드는 데 사용할 수 있습니다. 액세스 모드에 대한 자세한 내용은 Kubernetes 영구 볼륨 설명서를 참조하세요.
파일
blob-nfs-pvc.yaml
을 만들고 다음 YAML에 복사합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azure-blob-storage spec: accessModes: - ReadWriteMany storageClassName: azureblob-nfs-premium resources: requests: storage: 5Gi
kubectl create 명령을 사용하여 영구 볼륨 클레임을 만듭니다.
kubectl create -f blob-nfs-pvc.yaml
완료되면 Blob Storage 컨테이너가 만들어집니다. kubectl get 명령을 사용하여 PVC의 상태를 볼 수 있습니다.
kubectl get pvc azure-blob-storage
명령의 출력은 다음 예제와 유사합니다.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
azure-blob-storage Bound pvc-b88e36c5-c518-4d38-a5ee-337a7dda0a68 5Gi RWX azureblob-nfs-premium 92m
영구 볼륨 클레임 사용
다음 YAML은 영구 볼륨 클레임 azure-blob-storage를 사용하여 '/mnt/blob' 경로에 Azure Blob Storage를 탑재하는 Pod를 만듭니다.
blob-nfs-pv
파일을 만들고 다음 YAML에 복사합니다. claimName이 이전 단계에서 만든 PVC와 일치하는지 확인합니다.kind: Pod apiVersion: v1 metadata: name: mypod spec: containers: - name: mypod image: mcr.microsoft.com/oss/nginx/nginx:1.17.3-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/blob" name: volume readOnly: false volumes: - name: volume persistentVolumeClaim: claimName: azure-blob-storage
kubectl apply 명령을 사용하여 Pod를 만듭니다.
kubectl apply -f blob-nfs-pv.yaml
Pod가 실행 중 상태가 되면 다음 명령을 실행하여
test.txt
라는 새 파일을 만듭니다.kubectl exec mypod -- touch /mnt/blob/test.txt
디스크가 올바르게 탑재되었는지 확인하려면 다음 명령을 실행하여 출력에
test.txt
파일이 표시되는지 확인합니다.kubectl exec mypod -- ls /mnt/blob
명령의 출력은 다음 예제와 유사합니다.
test.txt
사용자 지정 스토리지 클래스 만들기
기본 스토리지 클래스는 가장 일반적인 시나리오에 적합하지만, 일부는 아닙니다. 경우에 따라 고유한 매개 변수를 사용하여 고유 스토리지 클래스를 사용자 지정해야 할 수 있습니다. 이 섹션에서는 두 가지 예제를 제공합니다. 첫 번째 예제는 NFS 프로토콜을 사용하고 두 번째 예제는 blobfuse를 사용합니다.
NFS 프로토콜을 사용하는 스토리지 클래스
이 예에서 다음 매니페스트는 NFS 프로토콜을 사용하여 Blob Storage 컨테이너 탑재를 구성합니다. 이를 사용하여 tags 매개 변수를 추가합니다.
blob-nfs-sc.yaml
이라는 파일을 만들고 다음 예제 매니페스트를 붙여넣습니다.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azureblob-nfs-premium provisioner: blob.csi.azure.com parameters: protocol: nfs tags: environment=Development volumeBindingMode: Immediate allowVolumeExpansion: true mountOptions: - nconnect=4
kubectl apply 명령을 사용하여 스토리지 클래스를 만듭니다.
kubectl apply -f blob-nfs-sc.yaml
명령의 출력은 다음 예제와 유사합니다.
storageclass.storage.k8s.io/blob-nfs-premium created
blobfuse를 사용하는 스토리지 클래스
이 예에서 다음 매니페스트는 blobfuse를 사용하여 구성하고 Blob Storage 컨테이너를 탑재합니다. 이를 사용하여 skuName 매개 변수를 업데이트합니다.
blobfuse-sc.yaml
이라는 파일을 만들고 다음 예제 매니페스트를 붙여넣습니다.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azureblob-fuse-premium provisioner: blob.csi.azure.com parameters: skuName: Standard_GRS # available values: Standard_LRS, Premium_LRS, Standard_GRS, Standard_RAGRS reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true mountOptions: - -o allow_other - --file-cache-timeout-in-seconds=120 - --use-attr-cache=true - --cancel-list-on-mount-seconds=10 # prevent billing charges on mounting - -o attr_timeout=120 - -o entry_timeout=120 - -o negative_timeout=120 - --log-level=LOG_WARNING # LOG_WARNING, LOG_INFO, LOG_DEBUG - --cache-size-mb=1000 # Default will be 80% of available memory, eviction will happen beyond that.
kubectl apply 명령을 사용하여 스토리지 클래스를 만듭니다.
kubectl apply -f blobfuse-sc.yaml
명령의 출력은 다음 예제와 유사합니다.
storageclass.storage.k8s.io/blob-fuse-premium created
정적으로 볼륨 프로비전
이 섹션에서는 워크로드에서 사용할 Blob Storage의 세부 정보를 포함하는 하나 이상의 영구 볼륨을 만들려는 클러스터 관리자를 위한 지침을 제공합니다.
영구 볼륨에 대한 정적 프로비전 매개 변수
다음 표에는 영구 볼륨을 정의하는 데 사용할 수 있는 매개 변수가 나와 있습니다.
속성 | 설명 | 예시 | 필수 | 기본값 |
---|---|---|---|---|
volumeHandle | 드라이버가 클러스터에서 스토리지 Blob 컨테이너를 고유하게 식별하는 데 사용할 수 있는 값을 지정합니다. | 고유한 값을 생성하는 권장 방법은 전역적으로 고유한 스토리지 계정 이름과 컨테이너 이름({account-name}_{container-name} )을 결합하는 것입니다.참고: # , / 문자는 내부용으로 예약되어 있으며 볼륨 핸들에서 사용할 수 없습니다. |
예 | |
volumeAttributes.resourceGroup | Azure 리소스 그룹 이름을 지정합니다. | myResourceGroup | 아니요 | 비어 있는 경우 드라이버는 현재 클러스터와 동일한 리소스 그룹 이름을 사용합니다. |
volumeAttributes.storageAccount | 기존 Azure Storage 계정 이름을 지정합니다. | storageAccountName | 예 | |
volumeAttributes.containerName | 기존 컨테이너 이름을 지정합니다. | 컨테이너 | 예 | |
volumeAttributes.protocol | blobfuse 탑재 또는 NFS v3 탑재를 지정합니다. | fuse : nfs |
아니요 | fuse |
--- | 다음 매개 변수는 blobfuse에만 해당됩니다. | --- | --- | --- |
volumeAttributes.secretName | 스토리지 계정 이름과 키를 저장하는 비밀 이름입니다(SMB에만 적용됨). | 아니요 | ||
volumeAttributes.secretNamespace | 계정 키를 저장할 비밀의 네임스페이스를 지정합니다. | default |
아니요 | PVC 네임스페이스 |
nodeStageSecretRef.name | 다음 중 하나를 저장하는 비밀 이름을 지정합니다.azurestorageaccountkey azurestorageaccountsastoken msisecret azurestoragespnclientsecret ; |
아니요 | 기존 Kubernetes 비밀 이름 | |
nodeStageSecretRef.namespace | 비밀의 네임스페이스를 지정합니다. | Kubernetes 네임스페이스 | 예 | |
--- | 다음 매개 변수는 NFS 프로토콜에만 해당합니다. | --- | --- | --- |
volumeAttributes.mountPermissions | 탑재된 폴더 권한을 지정합니다. | 0777 |
아니요 | |
--- | 다음 매개 변수는 NFS VNet 설정에만 해당됩니다. | --- | --- | --- |
vnetResourceGroup | 가상 네트워크를 호스팅하는 VNet 리소스 그룹을 지정합니다. | myResourceGroup | 아니요 | 비어 있으면 드라이버에서 Azure 클라우드 구성 파일에 지정된 vnetResourceGroup 값을 사용합니다. |
vnetName | 가상 네트워크 이름을 지정합니다. | aksVNet | 아니요 | 비어 있으면 드라이버에서 Azure 클라우드 구성 파일에 지정된 vnetName 값을 사용합니다. |
subnetName | 에이전트 노드의 기존 서브넷 이름을 지정합니다. | aksSubnet | 아니요 | 비어 있으면 드라이버에서 Azure 클라우드 구성 파일의 subnetName 값을 사용합니다. |
--- | 다음 매개 변수는 blobfuse 기능에만 해당됩니다. 관리 ID 및 서비스 사용자 이름 인증 |
--- | --- | --- |
volumeAttributes.AzureStorageAuthType | 인증 유형을 지정합니다. | 아니요 | Key |
|
volumeAttributes.AzureStorageIdentityClientID | ID 클라이언트 ID를 지정합니다. | 아니요 | ||
volumeAttributes.AzureStorageIdentityResourceID | ID 리소스 ID를 지정합니다. | 아니요 | ||
volumeAttributes.MSIEndpoint | MSI 엔드포인트를 지정합니다. | 아니요 | ||
volumeAttributes.AzureStorageSPNClientID | Azure SPN(서비스 사용자 이름) 클라이언트 ID를 지정합니다. | 아니요 | ||
volumeAttributes.AzureStorageSPNTenantID | Azure SPN 테넌트 ID를 지정합니다. | 아니요 | ||
volumeAttributes.AzureStorageAADEndpoint | Microsoft Entra 엔드포인트를 지정합니다. | 아니요 | ||
--- | 다음 매개 변수는 blobfuse 읽기 계정 키 또는 키 자격 증명 모음의 SAS 토큰 기능에만 해당됩니다. | --- | --- | --- |
volumeAttributes.keyVaultURL | Azure Key Vault DNS 이름을 지정합니다. | {vault-name}.vault.azure.net | 아니요 | |
volumeAttributes.keyVaultSecretName | Azure Key Vault 비밀 이름을 지정합니다. | 기존 Azure Key Vault 비밀 이름입니다. | 아니요 | |
volumeAttributes.keyVaultSecretVersion | Azure Key Vault 비밀 버전입니다. | 기존 버전 | 아니요 | 비어 있으면 드라이버에서 현재 버전을 사용합니다. |
Blob Storage 컨테이너 만들기
AKS에서 사용할 Azure Blob Storage 리소스를 만드는 경우 노드 리소스 그룹에 디스크 리소스를 만들 수 있습니다. 이 접근 방식을 사용하면 AKS 클러스터가 Blob Storage에 액세스하고 이를 관리할 수 있습니다.
이 문서에서는 노드 리소스 그룹에 컨테이너를 만듭니다. 먼저 az aks show 명령을 사용하여 리소스 그룹 이름을 가져온 다음 --query nodeResourceGroup
쿼리 매개 변수를 추가합니다. 다음 예제는 myResourceGroup이라는 리소스 그룹에서 myAKSCluster라는 AKS 클러스터에 대한 노드 리소스 그룹을 가져옵니다.
az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
명령의 출력은 다음 예제와 유사합니다.
MC_myResourceGroup_myAKSCluster_eastus
다음으로, Blob Storage 관리의 단계에 따라 Blob 저장용 컨테이너를 만들어 액세스 권한을 부여한 후 컨테이너를 만듭니다.
볼륨 탑재
이 섹션에서는 NFS 프로토콜 또는 Blobfuse를 사용하여 영구 볼륨을 탑재합니다.
NFS v3 프로토콜을 사용하여 Blob Storage를 탑재해도 계정 키를 사용해 인증되지 않습니다. AKS 클러스터는 에이전트 노드와 동일하거나 피어링된 가상 네트워크에 있어야 합니다. 스토리지 계정의 데이터를 보호하는 유일한 방법은 가상 네트워크와 기타 네트워크 보안 설정을 사용하는 것입니다. 스토리지 계정에 NFS 액세스를 설정하는 방법에 대한 자세한 내용은 NFS(네트워크 파일 시스템) 3.0 프로토콜을 사용하여 Blob Storage 탑재를 참조하세요.
다음 예제에서는 NFS 프로토콜을 사용하여 Blob Storage 컨테이너를 영구 볼륨으로 탑재하는 방법을 설명합니다.
파일
pv-blob-nfs.yaml
을 만들고 다음 YAML에 복사합니다.storageClass
에서resourceGroup
,storageAccount
,containerName
을 업데이트합니다.참고 항목
volumeHandle
값은 클러스터의 모든 동일한 Storage Blob 컨테이너에 대해 고유한 volumeID여야 합니다.#
및/
문자는 내부용으로 예약되어 있으며 사용할 수 없습니다.apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: blob.csi.azure.com name: pv-blob spec: capacity: storage: 1Pi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain # If set as "Delete" container would be removed after pvc deletion storageClassName: azureblob-nfs-premium mountOptions: - nconnect=4 csi: driver: blob.csi.azure.com # make sure volumeid is unique for every identical storage blob container in the cluster # character `#` and `/` are reserved for internal use and cannot be used in volumehandle volumeHandle: account-name_container-name volumeAttributes: resourceGroup: resourceGroupName storageAccount: storageAccountName containerName: containerName protocol: nfs
참고 항목
Kubernetes API 용량 특성은 필수이지만 스토리지 계정의 용량 제한에 도달할 때까지 데이터를 유연하게 쓸 수 있기 때문에 이 값은 Azure Blob Storage CSI 드라이버에서 사용되지 않습니다.
capacity
특성 값은 PersistentVolumes와 PersistentVolumeClaims 간의 크기 일치에만 사용됩니다. 가상의 높은 값을 사용하는 것이 좋습니다. Pod는 가상의 크기가 5페타바이트인 탑재된 볼륨을 봅니다.다음 명령을 실행하여 이전에 만든 YAML 파일을 참조하는 kubectl create 명령을 사용해 영구 볼륨을 만듭니다.
kubectl create -f pv-blob-nfs.yaml
PersistentVolumeClaim으로
pvc-blob-nfs.yaml
파일을 만듭니다. 예시:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-blob spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-blob storageClassName: azureblob-nfs-premium
다음 명령을 실행하여 이전에 만든 YAML 파일을 참조하는 kubectl create 명령을 사용해 영구 볼륨 클레임을 만듭니다.
kubectl create -f pvc-blob-nfs.yaml
영구적 볼륨 사용
다음 YAML에서는 이전에 만든 pvc-blob이라는 영구 볼륨 또는 영구 볼륨 클레임을 사용하여 Azure Blob Storage를 /mnt/blob
경로에 탑재하는 Pod를 만듭니다.
nginx-pod-blob.yaml
파일을 만들고 다음 YAML에 복사합니다. NFS 또는 Blobfuse에 대한 영구 볼륨을 만들 때 claimName이 이전 단계에서 만든 PVC와 일치하는지 확인합니다.kind: Pod apiVersion: v1 metadata: name: nginx-blob spec: nodeSelector: "kubernetes.io/os": linux containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.17.3-alpine name: nginx-blob volumeMounts: - name: blob01 mountPath: "/mnt/blob" readOnly: false volumes: - name: blob01 persistentVolumeClaim: claimName: pvc-blob
다음 명령을 실행하여 Pod를 만들고 이전에 만든 YAML 파일을 참조하는 kubectl create 명령을 사용해 PVC를 탑재합니다.
kubectl create -f nginx-pod-blob.yaml
다음 명령을 실행하여 Pod로 대화형 셸 세션을 만들어 Blob Storage가 탑재되었는지 확인합니다.
kubectl exec -it nginx-blob -- df -h
명령의 출력은 다음 예제와 유사합니다.
Filesystem Size Used Avail Use% Mounted on ... blobfuse 14G 41M 13G 1% /mnt/blob ...
다음 단계
- Azure Blob Storage용 CSI 드라이버를 사용하는 방법을 알아보려면 CSI 드라이버에서 Azure Blob Storage 사용을 참조하세요.
- 관련 모범 사례는 AKS에서 스토리지 및 백업에 대한 모범 사례를 참조하세요.
Azure Kubernetes Service