Azure Kubernetes Service에서 Azure Managed Lustre CSI 드라이버 사용
이 글에서는 Azure Lustre CSI Driver for Kubernetes를 사용하여 Azure Kubernetes Service (AKS)에서 Azure Managed Lustre를 계획하고 설치하며 사용하는 방법에 대해 배웁니다. 이 드라이버는 CSI(컨테이너 지원 인터페이스) 사양을 기반으로 합니다.
Kubernetes의 Azure Lustre CSI 드라이버를 사용하면 AKS에 배포된 Kubernetes 컨테이너에서 Azure Managed Lustre 스토리지를 영구 스토리지 볼륨으로 액세스할 수 있습니다.
호환 가능한 Kubernetes 버전
Kubernetes용 Azure Lustre CSI 드라이버는 AKS호환됩니다. 다른 Kubernetes 설치는 현재 지원되지 않습니다.
AKS Kubernetes 버전 1.21 이상이 지원됩니다. 이 지원에는 새 AKS 클러스터를 만들 때 현재 사용할 수 있는 모든 버전이 포함됩니다.
Important
Kubernetes용 Azure Lustre CSI 드라이버는 현재 AKS의 노드 풀에 대한 Ubuntu Linux OS SKU에서만 작동합니다.
호환되는 Lustre 버전
Kubernetes용 Azure Lustre CSI 드라이버는 Azure Managed Lustre호환됩니다. 다른 Lustre 설치는 현재 지원되지 않습니다.
Kubernetes용 Azure Lustre CSI Driver 버전 0.1.10 이상은 현재 버전의 Azure Managed Lustre 서비스에서 지원됩니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- Azure CLI 도구가 설치된 터미널 환경입니다. Azure CLI 시작하기()을 참조하세요
. - kubectl, 터미널 환경에 설치된 Kubernetes 관리 도구입니다. 빠른 시작: Azure CLI사용하여 AKS(Azure Kubernetes Service) 클러스터 배포를 참조하세요.
- Azure Managed Lustre 배포. Azure Managed Lustre 설명서참조하세요.
AKS 배포 계획을 세우세요
Azure Kubernetes Service를 배포하는 경우 AKS와 Azure Managed Lustre 간의 작업에 몇 가지 옵션이 영향을 줍니다.
AKS와 함께 사용할 네트워크 유형 확인
Ubuntu Linux OS SKU와 호환되는 두 가지 네트워크 유형은 kubenet과 Azure 컨테이너 네트워크 인터페이스(CNI) 드라이버입니다. 두 옵션 모두 Kubernetes용 Azure Lustre CSI 드라이버에서 작동하지만 가상 네트워킹 및 AKS를 설정할 때 이해해야 하는 요구 사항이 다릅니다. 적절한 선택을 결정하는 방법에 대한 자세한 내용은 AKS(Azure Kubernetes Service)애플리케이션에 대한
AKS 및 Azure Managed Lustre의 상호 연결에 대한 네트워크 아키텍처 확인
Azure Managed Lustre는 프라이빗 가상 네트워크 내에서 작동합니다. AKS 인스턴스는 Azure Managed Lustre 가상 네트워크에 대한 네트워크 연결이 있어야 합니다. Azure Managed Lustre와 AKS 간에 네트워킹을 구성하는 두 가지 일반적인 방법이 있습니다.
- AKS를 자신의 가상 네트워크에 설치한 후, Azure Managed Lustre 가상 네트워크와 가상 네트워크 피어링을 만듭니다.
- AKS에서 Bring your own Azure Virtual Network 옵션을 사용하여 Azure Managed Lustre 가상 네트워크의 새 서브넷에 AKS를 설치합니다.
참고 항목
AZURE Managed Lustre와 동일한 서브넷에 AKS를 설치하지 않는 것이 좋습니다.
AKS 및 Azure Managed Lustre 가상 네트워크 피어링
두 가상 네트워크를 피어링하는 옵션은 네트워크 관리를 다른 권한 있는 역할로 분리하는 이점이 있습니다. 피어링을 사용하면 Azure 구독 또는 지역에서 구현할 수 있으므로 추가 유연성을 제공할 수 있습니다. 가상 네트워크 피어링을 사용하려면 충돌하는 IP 네트워크 공간을 선택하지 않도록 두 네트워크 간의 조정이 필요합니다.
두 가상 네트워크가 보여지는
Azure Managed Lustre 가상 네트워크의 서브넷에 AKS 설치
AKS에서 Azure Managed Lustre 가상 네트워크에 AKS 클러스터를 설치할 때 자신의 Azure 가상 네트워크를 사용하는 기능을 활용하는 것은 네트워크가 단독으로 관리되는 시나리오에서 유리할 수 있습니다. Azure Managed Lustre 가상 네트워크에서 AKS 네트워킹 요구 사항에 맞게 크기를 조정한 추가 서브넷을 만들어야 합니다.
Azure Managed Lustre 가상 네트워크에서 AKS를 프로비전할 때 네트워크 관리에 대한 권한 분리는 없습니다. AKS 서비스 주체는 Azure Managed Lustre 가상 네트워크에 대한 권한이 필요합니다.
드라이버 설정
Kubernetes용 Azure Lustre CSI 드라이버를 사용하도록 설정하려면 다음 단계를 수행합니다.
드라이버설치합니다.
영구 볼륨을 만들고 구성합니다.
드라이버가 작동하는지 확인하기 위해 설치를 점검하고, 필요하면 에코 포드를 사용합니다.
다음 섹션에서는 각 작업을 자세히 설명합니다.
Azure Managed Lustre 파일 시스템 클러스터 만들기
Azure Managed Lustre 파일 시스템 클러스터를 아직 만들지 않은 경우 지금 클러스터를 만듭니다. 지침을 보려면 Azure Portal을 사용하여 Azure Managed Lustre 파일 시스템 만들기을 참조하세요. 현재 드라이버는 기존 Azure Managed Lustre 파일 시스템에서만 사용할 수 있습니다.
AKS 클러스터 만들기
AKS 클러스터를 아직 만들지 않은 경우 클러스터 배포를 만듭니다. Azure Portal사용하여 AKS(Azure Kubernetes Service) 클러스터 배포
가상 네트워크 피어링 만들기
참고 항목
Azure Managed Lustre 가상 네트워크의 서브넷에 AKS를 설치한 경우 이 네트워크 피어링 단계를 건너뜁니다.
AKS 가상 네트워크는 AKS 클러스터의 리소스 그룹에서 별도의 리소스 그룹에 만들어집니다. Azure Portal에서 AKS 클러스터로 이동하여 속성
AKS 가상 네트워크를 Azure Managed Lustre 가상 네트워크와 연결하려면 가상 네트워크 연결을 참조하세요.
팁
MC_ 리소스 그룹 및 가상 네트워크의 이름으로 인해 네트워크 이름은 여러 AKS 배포에서 유사하거나 동일할 수 있습니다. 피어링을 설정할 때는 선택하려는 AKS 네트워크를 신중하게 선택하십시오.
AKS 클러스터에 연결
Azure CLI 도구에 대한 액세스 권한이 있는 터미널 세션을 열고 Azure 계정에 로그인합니다.
az login
Azure Portal에 로그인합니다.
AKS 클러스터를 찾습니다. 개요 패널에서 연결 단추를 선택한 후, 클러스터 자격 증명 다운로드명령어를 복사합니다.
터미널 세션에서 명령을 붙여넣어 자격 증명을 다운로드합니다. 이 명령은 다음과 유사합니다.
az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
환경에 없는 경우 kubectl을 설치합니다.
az aks install-cli
현재 컨텍스트가 자격 증명을 방금 설치하고 연결할 수 있는 AKS 클러스터인지 확인합니다.
kubectl config current-context kubectl get deployments --all-namespaces=true
드라이버 설치
Kubernetes용 Azure Lustre CSI 드라이버를 설치하려면 다음 명령을 실행합니다.
curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash
로컬 설치에 대한 샘플 명령을 얻으려면 Kubernetes 클러스터Azure Lustre CSI 드라이버 설치를 참조하세요.
영구 볼륨 만들기 및 구성
기존 Azure Managed Lustre 파일 시스템에 대한 영구 볼륨을 만들려면 다음을 수행합니다.
azurelustre-csi-driver 리포지토리의 /docs/examples/ 폴더에서 다음 구성 파일을 복사합니다. 드라이버을
설치할 때 리포지토리를 복제했다면, 로컬 복사본을 이미 사용할 수 있습니다. - storageclass_existing_lustre.yaml
- pvc_storageclass.yaml
전체 리포지토리를 복제하지 않으려면 각 파일을 개별적으로 다운로드할 수 있습니다. 다음 링크를 각각 열고, 파일의 내용을 복사한 다음, 동일한 파일 이름을 가진 로컬 파일에 붙여넣습니다.
storageclass_existing_lustre.yaml 파일에서 Lustre 클러스터의 내부 이름과 MGS(Lustre Management Service) IP 주소를 업데이트합니다.
두 설정 모두 Azure 포털의 Azure Managed Lustre 파일 시스템에 대한 클라이언트 연결 창에 표시됩니다.
다음을 업데이트합니다.
Azure Managed Lustre 파일 시스템에서 Lustre 클러스터의 시스템 할당 내부 이름으로 바꿉
EXISTING_LUSTRE_FS_NAME
있습니다. 내부 이름은 일반적으로lustrefs
. 내부 이름은 파일 시스템을 만들 때 지정한 이름이 아닙니다.제안된
mount
명령에는 다음 주소 문자열에 강조 표시된 이름이 포함됩니다.EXISTING_LUSTRE_IP_ADDRESS
MGS IP 주소로 바꿉니다.
스토리지 클래스 및 영구 볼륨 클레임을 만들려면 다음
kubectl
명령을 실행합니다.kubectl create -f storageclass_existing_lustre.yaml kubectl create -f pvc_storageclass.yaml
설치 확인
설치를 확인하려면 필요에 따라 Echo Pod를 사용하여 드라이버가 작동하는지 확인할 수 있습니다.
쓰기 중에 콘솔에서 타임스탬프를 보려면 다음 명령을 실행합니다.
Echo Pod에 다음 코드를 추가합니다.
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
쓰기 중에 콘솔에서 타임스탬프를 보려면 다음
kubectl
명령을 실행합니다.`kubectl logs -f lustre-echo-date`