다음을 통해 공유


자습서: Azure Kubernetes Service와 함께 사용할 Azure 컨테이너 스토리지 설치

Azure Container Storage는 기본적으로 컨테이너용으로 구축된 클라우드 기반 볼륨 관리, 배포 및 오케스트레이션 서비스입니다. 이 자습서에서는 AKS(Azure Kubernetes Service) 클러스터를 만들고 클러스터에 Azure 컨테이너 스토리지의 최신 프로덕션 버전을 설치합니다. AKS 클러스터를 이미 배포한 경우 이 자습서의 수동 단계를 따르는 대신 이 QuickStart를 사용하여 Azure 컨테이너 스토리지를 설치하는 것이 좋습니다.

Important

버전 1.1.0부터는 이제 Azure 컨테이너 스토리지가 GA(일반 공급)로 제공됩니다. GA 버전은 프로덕션 워크로드에는 권장되지 않습니다.

  • 리소스 그룹 만들기
  • 데이터 스토리지 옵션 및 VM 형식 선택
  • AKS 클러스터 만들기
  • 클러스터에 연결
  • 노드 풀에 레이블 지정
  • AKS 관리 ID에 Azure 컨테이너 스토리지 운영자 역할 할당
  • Azure 컨테이너 스토리지 설치

필수 조건

  • Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

  • 이 문서에는 Azure CLI의 최신 버전(2.35.0 이상)이 필요합니다. Azure CLI를 설치하는 방법을 참조하세요. Azure Cloud Shell에서 Bash 환경을 사용하는 경우 최신 버전이 이미 설치되어 있습니다. Azure Cloud Shell 대신 로컬로 명령을 실행하려는 경우 관리자 권한으로 명령을 실행해야 합니다. 자세한 내용은 Azure Cloud Shell 시작을 참조하세요.

  • Kubernetes 명령줄 클라이언트 kubectl이 필요합니다. Azure Cloud Shell을 사용 중인 경우 이미 설치되어 있는 것이며, 그렇지 않은 경우 az aks install-cli 명령을 실행하여 로컬로 설치할 수 있습니다.

  • 대상 지역이 Azure 컨테이너 스토리지 지역에서 지원되는지 확인합니다.

시작

  • Azure 구독 ID를 기록해 둡니다. Azure Elastic SAN을 데이터 스토리지로 사용하려면 Azure 구독에 할당된 Azure 컨테이너 스토리지 소유자 역할 또는 Azure 컨테이너 스토리지 기여자 역할이 필요합니다. 소유자 수준 액세스를 사용하면 Azure 컨테이너 스토리지 확장을 설치하고 해당 스토리지 리소스에 대한 액세스 권한을 부여하며 Azure Elastic SAN 리소스를 구성할 수 있는 권한을 부여할 수 있습니다. 기여자 수준 액세스를 통해 확장을 설치하고 해당 스토리지 리소스에 대한 액세스 권한을 부여할 수 있습니다. Azure Disks 또는 임시 디스크를 데이터 스토리지로 사용하려는 경우 구독에 대한 특별 권한이 필요하지 않습니다.

  • Azure Cloud Shell을 시작하거나 로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다.

  • Azure Cloud Shell을 사용하는 경우 스토리지를 탑재하라는 메시지가 표시될 수 있습니다. 스토리지 계정을 만들 Azure 구독을 선택하고 만들기를 선택합니다.

필요한 확장 설치

다음 명령을 실행하여 최신 버전의 k8s-extension을 추가하거나 업그레이드합니다.

az extension add --upgrade --name k8s-extension

구독 컨텍스트 설정

az account set 명령을 사용하여 Azure 구독 컨텍스트를 설정합니다. az account list --output table 명령을 실행하여 액세스할 수 있는 모든 구독에 대한 구독 ID를 볼 수 있습니다. <subscription-id>를 구독 ID로 바꿉니다.

az account set --subscription <subscription-id>

리소스 그룹 만들기

Azure 리소스 그룹은 그룹으로 관리하려는 Azure 리소스를 보유하는 논리 그룹입니다. 리소스 그룹을 만들 때 위치를 지정하라는 메시지가 표시됩니다. 이 위치는 다음과 같습니다.

  • 리소스 그룹 메타데이터의 스토리지 위치입니다.
  • 리소스를 만드는 동안 다른 지역을 지정하지 않은 경우 리소스가 Azure에서 실행되는 위치입니다.

az group create 명령을 사용하여 리소스 그룹을 만듭니다. <resource-group-name>을 만들려는 리소스 그룹의 이름으로 바꾸고 <location>eastus, westus2, westus3 또는 westeurope과 같은 Azure 지역으로 바꿉니다.

az group create --name <resource-group-name> --location <location>

리소스 그룹을 성공적으로 만든 경우 다음과 유사한 출력이 표시됩니다.

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

데이터 스토리지 옵션 및 가상 머신 유형 선택

클러스터를 만들기 전에 궁극적으로 스토리지 풀을 만들도록 선택할 백 엔드 스토리지 옵션을 이해해야 합니다. 스토리지 서비스마다 클러스터 노드로 다른 VM(가상 머신) 유형을 사용할 경우가 가장 잘 작동하고 스토리지 풀을 만들기 전에 클러스터를 배포하게 되기 때문입니다.

데이터 스토리지 옵션

  • Azure Elastic SAN: Azure Elastic SAN은 범용 데이터베이스, 스트리밍 및 메시징 서비스, CD/CI 환경 및 기타 계층 1/계층 2 워크로드에 적합합니다. 스토리지는 생성된 볼륨 및 볼륨 스냅샷별로 요청 시 프로비전됩니다. 여러 클러스터가 동시에 단일 SAN에 액세스할 수 있지만 영구 볼륨은 한 번에 한 소비자에만 연결할 수 있습니다.

  • Azure 디스크: Azure 디스크는 MySQL, MongoDB 및 PostgreSQL과 같은 데이터베이스에 적합합니다. 스토리지는 대상 컨테이너 스토리지 풀 크기 및 최대 볼륨 크기별로 프로비전됩니다.

  • 사용 후 삭제 디스크: 이 옵션은 AKS 노드에서 로컬 NVMe 또는 임시 SSD 드라이브를 사용하며 대기 시간이 매우 중요하므로(sub-ms 대기 시간이 낮음) 데이터 내구성 요구 사항이 없거나 Cassandra와 같은 기본 제공 데이터 복제 지원을 사용하는 애플리케이션에 가장 적합합니다. AKS는 AKS 노드에서 사용 가능한 임시 스토리지를 검색하고 볼륨 배포를 위해 드라이브를 획득합니다.

리소스 사용량

Azure 컨테이너 스토리지를 사용하려면 특정 노드 리소스가 서비스의 구성 요소를 실행해야 합니다. Azure 컨테이너 스토리지를 설치할 때 지정할 스토리지 풀 유형 선택에 따라 사용할 리소스는 다음과 같습니다.

스토리지 풀 유형 CPU 코어 RAM
Azure Elastic SAN  None None
Azure 디스크 1 1GiB
임시 디스크 - 임시 SSD 1 1GiB
임시 디스크 - 로컬 NVMe(표준 계층) 코어의 25%(성능 계층은 업데이트 가능)* 1GiB

사용되는 리소스는 노드당이며 컨테이너 스토리지가 설치될 노드 풀의 각 노드에 사용됩니다. 노드에 충분한 리소스가 없는 경우 Azure 컨테이너 스토리지가 실행되지 않습니다. Kubernetes는 이러한 실패한 Pod를 자동으로 다시 초기화하려고 시도하므로 리소스가 해제되면 이러한 Pod를 다시 초기화할 수 있습니다.

*표준(기본) 성능 계층을 갖춘 임시 디스크 - 로컬 NVMe 스토리지 풀 형식에서 클러스터 노드에 여러 VM SKU 형식을 사용하는 경우, 사용되는 CPU 코어의 25%는 사용된 SKU 중 가장 작은 SKU에 적용됩니다. 예를 들어 8코어 및 16코어 VM 유형을 혼합하여 사용하는 경우 리소스 사용량은 2코어입니다. 성능 계층을 업데이트하면 더 많은 코어 비율을 사용하고 더 높은 IOPS를 달성할 수 있습니다.

클러스터에 대한 VM 유형이 다음 조건을 충족하는지 확인합니다.

Azure Container Storage를 사용하려면 3개 이상의 Linux VM을 포함하는 노드 풀이 필요합니다. 각 VM에는 최소 4개의 vCPU(가상 CPU)가 있어야 합니다. Azure Container Storage는 확장이 배포된 모든 VM에서 I/O 처리를 위해 하나의 코어를 사용합니다.

클러스터 노드에 대한 VM 유형을 선택할 때 다음 지침을 따릅니다. Azure Premium Storage를 지원하는 VM 유형을 선택해야 합니다.

  • Azure Elastic SAN 또는 Azure Disks를 지원 스토리지로 사용하려는 경우 standard_d4s_v5과(와) 같은 범용 VM 유형을 선택합니다.
  • 로컬 NVMe와 함께 임시 디스크를 사용하려는 경우 standard_l8s_v3과(와) 같은 스토리지 최적화 VM 유형을 선택합니다.
  • 임시 SSD에서 임시 디스크를 사용하려는 경우 Ev3 및 Esv3 시리즈와 같은 임시 SSD 디스크가 있는 VM을 선택합니다.

새 AKS 클러스터 만들기 및 Azure Container Storage 설치

이미 AKS 클러스터를 배포한 경우 이 빠른 시작의 설치 지침을 따릅니다.

다음 명령을 실행하여 새 AKS 클러스터를 만들고, Azure Container Storage를 설치하고, 스토리지 풀을 만듭니다. <cluster-name><resource-group>을 고유한 값으로 바꾸고 사용할 VM 유형을 지정합니다. <storage-pool-type>azureDiskephemeralDisk 또는elasticSan으로 바꿉니다. ephemeralDisk를 선택하는 경우 --storage-pool-option도 지정해야 하며 값은 NVMe 또는 Temp가 될 수 있습니다.

이 명령을 실행하면 3개의 Linux VM이 있는 시스템 노드 풀*에서 Azure 컨테이너 스토리지가 사용하도록 설정됩니다. 스토리지 풀 형식에 로컬 NVMe를 지정하는 경우 노드 수를 4개 이상으로 설정해야 합니다. 그렇지 않으면 명령이 실행되지 않습니다.

기본적으로 시스템 노드 풀의 이름은 nodepool1입니다. 다른 노드 풀에서 Azure 컨테이너 스토리지를 사용하도록 설정하려면 특정 노드 풀에 Azure 컨테이너 스토리지 설치를 참조하세요. 이 명령을 사용하여 추가 스토리지 풀 매개 변수를 지정하려면 이 테이블을 참조하세요.

*acstor.azure.com/io-engine:acstor 레이블이 있는 기존 노드 풀이 있는 경우 기본적으로 Azure Container Storage가 설치됩니다. 그렇지 않으면 시스템 노드 풀에 설치됩니다.

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_D4s_v3 --node-count 3 --enable-azure-container-storage <storage-pool-type>

배포는 10~15분이 걸립니다. 완료되면 Azure 컨테이너 스토리지가 설치된 AKS 클러스터가 생성되고, 선택한 스토리지 풀 유형의 구성 요소가 사용하도록 설정되고 기본 스토리지 풀이 생성됩니다. 추가 스토리지 풀 유형을 사용하도록 설정하여 추가 스토리지 풀을 만들려면 추가 스토리지 풀 유형 사용을 참조하세요.

Important

Azure Elastic SAN을 스토리지 풀의 지원 스토리지로 지정하고 Azure 구독에 할당된 Azure 컨테이너 스토리지 소유자 역할 또는 Azure 컨테이너 스토리지 기여자 역할이 없는 경우 Azure 컨테이너 스토리지 설치가 실패하고 스토리지 풀이 만들어지지 않습니다. 이러한 역할 중 하나 없이 Azure Elastic SAN을 추가 스토리지 풀 형식으로 사용하도록 설정하려고 하면 이전 설치 및 스토리지 풀은 영향을 받지 않고 Elastic SAN 스토리지 풀이 만들어지지 않습니다.

사용 가능한 스토리지 풀 표시

사용 가능한 스토리지 풀 목록을 얻으려면 다음 명령을 실행합니다.

kubectl get sp -n acstor

스토리지 풀의 상태를 확인하려면 다음 명령을 실행합니다.

kubectl describe sp <storage-pool-name> -n acstor

Message이(가) StoragePool is ready을(를) 알리지 않으면 스토리지 풀이 여전히 만들어지고 있거나 문제가 발생했습니다. Azure 컨테이너 스토리지 문제 해결을 참조하세요.

다음 단계

선택한 백업 스토리지 유형에 대한 링크를 선택하고 볼륨을 만들기 위한 지침을 따릅니다.