Azure Container Storage는 컨테이너용으로 기본적으로 빌드된 클라우드 기반 볼륨 관리, 배포 및 오케스트레이션 서비스입니다. Kubernetes와 통합되므로 Kubernetes 클러스터에서 실행되는 상태 저장 애플리케이션에 대한 데이터를 저장하도록 영구 볼륨을 동적으로 자동으로 프로비전할 수 있습니다. Azure Container Storage는 Kubernetes에 컨테이너 스토리지 기능을 제공하는 오픈 소스 솔루션인 OpenEBS에서 파생됩니다.
중요합니다
이 문서에서는 Azure Container Storage(버전 1.x.x)에서 사용할 수 있는 기능과 기능에 대해 설명합니다. 이제 Azure Container Storage(버전 2.x.x) 를 사용할 수 있습니다. Azure Container Storage는 모든 Azure 지역에서 사용할 수 없습니다. 지역별 가용성을 참조하세요. 이전에 Azure Container Storage 미리 보기를 설치했으며 자동 업그레이드를 사용하도록 설정하지 않은 경우 GA 버전으로 업데이트해야 합니다.
이 비디오에서는 상태 저장 애플리케이션을 위한 엔드 투 엔드 스토리지 관리 및 오케스트레이션 서비스인 Azure Container Storage(버전 1.x.x)를 소개합니다. 비용 효율적인 컨테이너 네이티브 환경을 제공하면서 AKS(Azure Kubernetes Service)에서 상태 저장 워크로드의 성능을 최적화하여 스토리지 서비스 간에 효과적으로 확장하는 방법을 알아봅니다.
지원되는 스토리지 유형
Azure Container Storage는 실제 데이터 스토리지에 대한 기존 Azure Storage 제품을 활용하고 컨테이너용으로 의도적으로 빌드된 볼륨 오케스트레이션 및 관리 솔루션을 제공합니다. 지원되는 백업 스토리지 옵션 중 하나를 선택하여 영구 볼륨에 대한 스토리지 풀을 만들 수 있습니다.
Azure Container Storage(버전 1.x.x)는 Linux 기반 AKS(Azure Kubernetes Service) 클러스터에 대한 ReadWriteOnce 액세스 모드를 사용하여 영구 볼륨 지원을 제공합니다. 지원되는 백업 스토리지 옵션에는 Azure Disks, 임시 디스크(로컬 NVMe 또는 임시 SSD) 및 Azure Elastic SAN이 포함됩니다. 다음 표에는 지원되는 스토리지 유형, 권장 워크로드 및 프로비전 모델이 요약되어 있습니다.
| 스토리지 유형 | 설명 | 작업 부하 | 제공 | 프로비저닝 모델 |
|---|---|---|---|---|
| Azure Elastic SAN (미리 보기) | 주문형, 완전 관리형 리소스 프로비전 | 범용 데이터베이스, 스트리밍 및 메시징 서비스, CD/CI 환경 및 기타 계층 1/계층 2 워크로드. | Azure Elastic SAN | 생성된 볼륨 및 볼륨 스냅샷에 따라 요청 시 프로비전됩니다. 여러 클러스터가 동시에 단일 SAN에 액세스할 수 있지만 영구 볼륨은 한 번에 한 소비자만 연결할 수 있습니다. |
| Azure Disks | 스토리지 SKU 및 구성의 세분화된 제어 | Azure Disks는 MySQL, MongoDB 및 PostgreSQL과 같은 계층 1 및 범용 데이터베이스에 적합합니다. | 프리미엄 SSD, 프리미엄 SSD v2, 표준 SSD, Ultra Disk | 대상 컨테이너 스토리지 풀 크기 및 최대 볼륨 크기당 프로비전됩니다. |
| 임시 디스크 | AKS 노드(NVMe 또는 임시 SSD)에서 로컬 스토리지 리소스 활용 | 임시 디스크는 대기 시간이 매우 중요하므로(하위 ms 대기 시간이 낮음) 데이터 내구성 요구 사항이 없거나 Cassandra와 같은 기본 제공 데이터 복제 지원을 사용하는 애플리케이션에 가장 적합합니다. | NVMe는 스토리지 최적화 VM SKU 또는 GPU 가속 VM SKU와 같은 일부 Azure VM SKU에서 사용할 수 있습니다. | AKS 클러스터를 호스트하는 VM의 일부로 배포됩니다. AKS는 AKS 노드에서 사용 가능한 임시 스토리지를 검색하고 볼륨 배포를 위해 이를 획득합니다. |
다양한 스토리지 유형에 대한 기능 지원
기능 지원은 선택한 백업 스토리지 옵션에 따라 달라집니다. 다음 표에서는 Azure Container Storage의 주요 기능을 나열하고 이를 지원하는 스토리지 옵션을 나타냅니다.
| 특징 | 로컬 NVMe | 로컬 SSD | Azure Disks | Azure Elastic SAN (미리 보기) |
|---|---|---|---|---|
| 스토리지 풀 확장/크기 조정 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
| 복제 | 지원됨 | 지원되지 않음 | 기본적으로 지원됨 | Preview |
| 리소스 사용량 | 지원됨 | 지원됨 | 지원됨 | Preview |
| SSE/CMK | 지원되지 않음 | 지원되지 않음 | 지원됨 | Preview |
| ZRS 노출 옵션 | N/A | N/A | 지원됨 | Preview |
| 영구 볼륨 | Supported1 | Supported1 | 지원됨 | Preview |
| 임시 볼륨 | 지원됨 | 지원됨 | 지원됨 | Preview |
| 스냅샷 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
1 로컬 NVMe 및 로컬 SSD의 경우 Azure Container Storage는 기본적으로 데이터가 영구적이지 않은 일반 임시 볼륨을 사용합니다. 그러나 임시 디스크 스토리지 풀에서 영구 볼륨 만들기를 지원하도록 Azure Container Storage 설치를 업데이트할 수 있습니다.
지역별 가용성
Azure Container Storage는 Azure 지역의 하위 집합에만 사용할 수 있습니다.
- (아프리카) 남아프리카 북부
- (아시아 태평양) 오스트레일리아 동부
- (아시아 태평양) 동아시아
- (아시아 태평양) 일본 동부
- (아시아 태평양) 한국 중부
- (아시아 태평양) 동남아시아
- (아시아 태평양) 인도 중부
- (유럽) 프랑스 중부
- (유럽) 독일 중서부
- (유럽) 북유럽
- (유럽) 서유럽
- (유럽) 영국 남부
- (유럽) 스웨덴 중부
- (유럽) 스위스 북부
- (중동) UAE 북부
- (북아메리카) 미국 동부
- (북아메리카) 미국 동부 2
- (북아메리카) 미국 서부
- (북아메리카) 미국 서부 2
- (북아메리카) 미국 서부 3
- (북아메리카) 미국 중부
- (북아메리카) 미국 중북부
- (북아메리카) 미국 중남부
- (북아메리카) 미국 중서부
- (북아메리카) 캐나다 중부
- (북아메리카) 캐나다 동부
- (남미) 브라질 남부
Azure Container Storage의 새로운 기능
최신 업데이트는 상태 저장 컨테이너의 복원력과 성능을 향상시킵니다. 이제 로컬 NVMe 스토리지 풀에 대한 다중 영역 스토리지 풀 및 볼륨 복제를 제공하여 단일 노드 실패 시 가용성을 보장합니다. 스냅샷 지원은 백업 및 재해 복구를 위한 모든 스토리지 옵션에서 사용할 수 있습니다. 또한 임시 디스크 포트폴리오에는 이제 임시 SSD 지원이 포함되어 직접 연결된 로컬 스토리지를 활용하는 사용 사례에 대한 비용 효율적인 솔루션을 제공합니다.
- 복제 지원을 사용하여 로컬 NVMe 스토리지에 호스트되는 영구 볼륨의 복원력을 향상시킵니다.
- AKS(Azure Kubernetes Service) 클러스터를 다시 시작한 후 영구 볼륨 복구가 향상되었습니다.
- 새 성능 계층 옵션을 사용하여 로컬 NVMe 스토리지의 성능을 사용자 지정합니다.
이러한 기능에 대한 자세한 내용은 Azure Container Storage 팀에게 이메일을 보내십시오 containerstoragepm@service.microsoft.com.
Azure Container Storage가 유용한 이유
지금까지 컨테이너에 클라우드 스토리지를 제공하려면 IaaS 중심 워크로드용 스토리지 서비스를 사용하고 컨테이너에서 작동하도록 CSI(컨테이너 스토리지 인터페이스) 드라이버를 구성해야 했습니다. 특정 시나리오에서는 운영 오버헤드가 발생할 수 있으며 애플리케이션 가용성, 확장성, 성능, 유용성 및 비용에 대한 문제의 위험을 증가시킬 수 있습니다.
Azure Container Storage를 사용하면 개별 CSI 드라이버를 구성하는 것에 대해 걱정할 필요가 없습니다. Kubernetes 환경에서 마이크로 서비스 기반 스토리지 컨트롤러를 통해 관리되는 볼륨 오케스트레이션 솔루션을 제공함으로써 Azure Container Storage는 진정한 컨테이너 네이티브 스토리지를 가능하게 합니다.
Azure Container Storage를 사용하여 다음을 수행할 수 있습니다.
VM-컨테이너 이니셔티브 가속화: Azure Container Storage는 이전에 VM에만 사용할 수 있었던 Azure 블록 스토리지 제품의 전체 스펙트럼을 표시하고 컨테이너에 사용할 수 있도록 합니다. 여기에는 Cassandra와 같은 워크로드에 매우 짧은 대기 시간을 제공하는 임시 디스크와 네이티브 iSCSI 및 공유 프로비저닝된 대상을 제공하는 Azure Elastic SAN(미리 보기)이 포함됩니다.
Kubernetes를 사용하여 볼륨 관리를 간소화합니다 . Azure Container Storage는 Kubernetes 컨트롤 플레인을 통해 볼륨 오케스트레이션을 제공하여 서로 다른 컨트롤 플레인 간에 이동할 필요 없이 Kubernetes 내에서 볼륨을 쉽게 배포하고 관리할 수 있습니다.
TCO(총 소유 비용) 절감: Pod 또는 노드당 지원되는 영구 볼륨의 규모를 늘려 비용 효율성을 개선합니다. 스토리지 리소스를 동적으로 공유하여 프로비저닝에 필요한 스토리지 리소스를 줄입니다. 스토리지 풀 자체에 대한 강화 지원은 지원되지 않습니다.
주요 이점
상태 저장 Pod의 신속한 스케일 아웃: Azure Container Storage는 네트워크 블록 스토리지 프로토콜(NVMe-oF 또는 iSCSI)를 통해 영구 볼륨을 탑재하여 영구 볼륨의 빠른 연결 및 분리를 제공합니다. 초기화 중이나 프로덕션 환경에서 애플리케이션이 부족하거나 중단되지 않도록 하면서 필요에 따라 작은 리소스를 시작하고 배포할 수 있습니다. 클러스터 전체에서 Pod가 다시 생성되어 애플리케이션 복원력이 향상되면서 영구 볼륨의 신속한 이동이 요구됩니다. 원격 네트워크 프로토콜을 활용하여 Azure Container Storage는 AKS에서 복원력이 뛰어나고 대규모 상태 저장 애플리케이션을 지원하기 위해 Pod 수명 주기와 긴밀하게 결합됩니다.
상태 저장 워크로드의 성능 향상: Azure Container Storage는 뛰어난 읽기 성능을 제공하고 TCP를 통해 NVMe-oF를 사용하여 거의 디스크에 가까운 쓰기 성능을 제공합니다. 이를 통해 고객은 계층 1 I/O 집약적, 범용, 처리량 구분 및 개발/테스트를 비롯한 다양한 컨테이너 워크로드에 대한 성능 요구 사항을 비용 효율적으로 충족할 수 있습니다. 영구 볼륨의 연결/분리 시간을 가속화하고 Pod 페일오버 시간을 최소화합니다.
Kubernetes 네이티브 볼륨 오케스트레이션: 다른 컨트롤 플레인 작업에 대한 도구 세트 간에 전환하지 않고도 스토리지 풀 및 영구 볼륨을 만들고, 스냅샷을 캡처하고, 명령을 사용하여
kubectl볼륨의 전체 수명 주기를 관리합니다.
Glossary
Azure Container Storage 및 Kubernetes와 관련된 몇 가지 주요 용어를 이해하는 것이 유용합니다.
컨테이너화
애플리케이션 코드를 운영 체제와 필요한 종속성과 함께 패키징하여 단일 실행 파일을 만듭니다.
Kubernetes (쿠버네티스)
Kubernetes는 컨테이너화된 애플리케이션의 배포, 크기 조정 및 관리를 자동화하기 위한 오픈 소스 시스템입니다.
클러스터
Kubernetes 클러스터는 컨테이너화된 애플리케이션을 실행하는 컴퓨팅 노드(VM) 집합입니다. 각 노드는 컨트롤 플레인에서 관리되며 Pod를 실행하는 데 필요한 서비스를 포함합니다.
포드
Pod는 공유 스토리지 및 네트워크 리소스가 있는 하나 이상의 컨테이너 그룹이며 컨테이너를 실행하는 방법에 대한 사양입니다. Pod는 Kubernetes 클러스터에서 배포 가능한 가장 작은 단위입니다.
AKS(Azure Kubernetes Service)
Azure Kubernetes Service 는 Azure에 운영 오버헤드를 오프로드하여 Azure에서 관리되는 Kubernetes 클러스터 배포를 간소화하는 호스트된 Kubernetes 서비스입니다. Azure는 상태 모니터링 및 유지 관리와 같은 중요한 작업을 처리합니다.
스토리지 풀
Azure Container Storage(버전 1.x.x)에서 사용 가능한 스토리지 용량은 스토리지 풀 개체로 집계됩니다. 스토리지 풀 내의 스토리지 용량은 동종으로 간주됩니다. AKS 클러스터에는 여러 스토리지 풀이 있을 수 있습니다. 스토리지 풀은 인증 및 프로비저닝 경계 역할을 합니다. 애플리케이션 개발자를 위한 볼륨 생성 및 관리를 간소화하면서 운영자가 스토리지 인프라를 관리할 수 있는 논리적 구문을 제공합니다.
스토리지 클래스
Kubernetes 스토리지 클래스는 영구 볼륨을 사용하여 스토리지 단위를 동적으로 만드는 방법을 정의합니다. 자세한 내용은 Kubernetes Storage 클래스를 참조하세요.
음량
Kubernetes 볼륨은 지정된 Pod의 컨테이너에 액세스할 수 있는 데이터를 포함하는 디렉터리입니다. 볼륨은 영구적이거나 일시적일 수 있습니다. 볼륨은 스토리지 풀 내에서 씬 프로비전되며 스토리지 풀의 성능 특성(IOPS, 대역폭 및 용량)을 공유합니다.
영구 볼륨
영구 볼륨은 VM의 디스크와 같습니다. 파일 시스템을 탑재하는 데 사용할 수 있는 원시 블록 디바이스를 나타냅니다. 애플리케이션 개발자는 애플리케이션 또는 Pod 정의에 따라 영구 볼륨을 생성하고, 이 볼륨은 종종 상태 저장 애플리케이션의 수명 주기에 연결됩니다. 자세한 내용은 영구 볼륨을 참조하세요.
영구 볼륨 클레임 (PVC)
영구 볼륨 클레임은 스토리지 클래스를 기반으로 스토리지를 자동으로 프로비전하는 데 사용됩니다.