AKS(Azure Kubernetes Service)의 CSI(Container Storage Interface) 드라이버

CSI(Container Storage Interface)는 Kubernetes에서 컨테이너화된 워크로드에 임의 블록 및 파일 스토리지 시스템을 노출하는 표준입니다. CSI를 채택하고 사용하면 AKS(Azure Kubernetes Service)는 플러그 인을 작성, 배포, 반복하여 핵심 Kubernetes 코드를 조정하고 릴리스 주기를 기다릴 필요 없이 Kubernetes에서 새로운 스토리지 시스템을 공개하거나 기존 스토리지 시스템을 개선할 수 있습니다.

AKS의 CSI 스토리지 드라이버 지원을 통해 기본적으로 다음을 사용할 수 있습니다.

  • Azure Disks를 사용하여 Kubernetes DataDisk 리소스를 만들 수 있습니다. 디스크는 고성능 SSD를 통해 지원되는 Azure Premium Storage 또는 일반 HDD나 표준 SSD를 통해 지원되는 Azure Standard Storage를 사용할 수 있습니다. 대부분의 프로덕션 및 개발 워크로드에는 Premium Storage를 사용합니다. Azure Disks는 ReadWriteOnce로 탑재되며 AKS의 한 노드에서만 사용할 수 있습니다. 여러 노드에서 동시에 액세스할 수 있는 스토리지 볼륨의 경우 Azure Files를 사용합니다.
  • Azure Files를 사용하여 Azure Storage 계정을 통해 지원되는 SMB 3.0/3.1 공유를 Pod에 탑재할 수 있습니다. Azure Files를 사용하면 여러 노드 및 Pod 간에 데이터를 공유할 수 있습니다. Azure Files는 일반 HDD를 통해 지원되는 Azure 표준 스토리지 또는 고성능 SSD를 통해 지원되는 Azure 프리미엄 스토리지를 사용할 수 있습니다.
  • Azure Blob 스토리지를 사용하여 Blob 스토리지(또는 개체 스토리지)를 파일 시스템으로 컨테이너 또는 Pod에 탑재할 수 있습니다. Blob 스토리지를 사용하면 클러스터에서 로그 파일 데이터, 이미지 또는 문서, HPC 등과 같은 대규모 비정형 데이터 세트를 사용하는 애플리케이션을 지원할 수 있습니다. 또한 Azure Data Lake 스토리지에 데이터를 수집하는 경우 다른 중간 파일 시스템을 구성하지 않고도 AKS에서 직접 탑재하고 사용할 수 있습니다.

Important

Kubernetes 버전 1.26부터 트리 내 영구 볼륨 유형 kubernetes.io/azure-diskkubernetes.io/azure-file은 더 이상 사용되지 않으며 더 이상 지원되지 않습니다. 이러한 드라이버를 사용 중단 후 제거할 계획은 없지만 해당 CSI 드라이버 disks.csi.azure.comfile.csi.azure.com으로 마이그레이션해야 합니다. 스토리지 클래스에 대한 마이그레이션 옵션을 검토하고 Azure Disks 및 Azure Files CSI 드라이버를 사용하도록 클러스터를 업그레이드하려면 트리 내 드라이버에서 CSI 드라이버로 마이그레이션을 참조하세요.

트리 내 드라이버는 플러그 인인 CSI 드라이버와 달리 핵심 Kubernetes 코드의 일부인 스토리지 드라이버를 나타냅니다.

참고 항목

CSI 볼륨을 삭제할 때 PersistentVolume 개체 대신 해당 PersistentVolumeClaim 개체를 삭제하는 것이 좋습니다. CSI 드라이버의 외부 프로비저닝 프로그램은 PersistentVolumeClaim의 삭제에 반응하고 해당 재사용 정책에 따라 CSI 볼륨 드라이버 명령에 대해 DeleteVolume 호출을 실행하여 볼륨을 삭제합니다. 그런 다음 PersistentVolume 개체가 삭제됩니다.

필수 조건

  • Azure CLI 2.42 이상 버전을 설치하고 구성해야 합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
  • 오픈 소스 CSI 스토리지 드라이버가 클러스터에 설치된 경우 Azure Storage CSI 드라이버를 사용하도록 설정하기 전에 제거합니다.
  • AKS 정책 정의Kubernetes 클러스터는 CSI(Container Storage Interface) 드라이버 StorageClass를 사용해야 함에 대한 Azure Policy를 적용하려면 Azure Policy 추가 기능이 신규 클러스터와 기존 클러스터에서 사용하도록 설정되어야 합니다. 기존 클러스터의 경우 Kubernetes용 Azure Policy 알아보기를 검토하여 사용하도록 설정합니다.

디스크 암호화 지원 시나리오

CSI 스토리지 드라이버는 다음 시나리오를 지원합니다.

기존 클러스터에서 CSI 스토리지 드라이버 활성화

새 클러스터에서 CSI 스토리지 드라이버를 사용하도록 설정하려면 스토리지 시스템에 따라 다음 매개 변수 중 하나를 포함합니다.

az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

이 작업을 완료하는 데 몇 분 정도 걸릴 수 있습니다. 완료되면 클러스터에서 드라이버를 사용하도록 설정한 상태가 출력에 표시되어야 합니다. 다음 예제는 Blob 스토리지 CSI 드라이버를 사용하도록 설정할 때 결과를 나타내는 섹션과 유사합니다.

"storageProfile": {
    "blobCsiDriver": {
      "enabled": true
    },

새 클러스터 또는 기존 클러스터에서 CSI 스토리지 드라이버 사용 안 함

새 클러스터에서 CSI 스토리지 드라이버를 사용하지 않도록 설정하려면 스토리지 시스템에 따라 다음 매개 변수 중 하나를 포함합니다.

az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

기존 클러스터에서 CSI 스토리지 드라이버를 사용하지 않도록 설정하려면 스토리지 시스템에 따라 이전에 나열된 매개 변수 중 하나를 사용합니다.

az aks update -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

사용자 지정 트리 내 스토리지 클래스를 CSI로 마이그레이션

트리 내 드라이버 스토리지 클래스를 만든 경우 클러스터를 1.21.x로 업그레이드한 후 CSI 마이그레이션이 설정되므로 이러한 스토리지 클래스가 계속 작동합니다. CSI 기능을 사용하려면 마이그레이션을 수행해야 합니다.

스토리지 클래스에 대한 마이그레이션 옵션을 검토하고 Azure Disks 및 Azure Files CSI 드라이버를 사용하도록 클러스터를 업그레이드하려면 트리 내 드라이버에서 CSI 드라이버로 마이그레이션을 참조하세요.

다음 단계