다음을 통해 공유


Azure Kubernetes Service Azure Managed Lustre CSI 드라이버 사용

이 문서에서는 Azure Managed LustreKubernetes 컨테이너 지원 인터페이스 드라이버(Azure Managed Lustre CSI 드라이버)를 사용하여 AKS(Azure Kubernetes Service)에서 Azure Managed Lustre를 계획, 설치 및 사용하는 방법을 설명합니다.

AKS용 Azure Managed Lustre CSI 드라이버 정보

AKS용 Azure CSI(Managed Lustre Container Support Interface) 드라이버를 사용하면 AKS(Azure Kubernetes Service)에 배포된 Kubernetes 컨테이너의 영구 스토리지 볼륨으로 Azure Managed Lustre 스토리지에 액세스할 수 있습니다.

호환 가능한 Kubernetes 버전

AKS용 Azure Managed Lustre CSI 드라이버는 AKS(Azure Kubernetes Service)와 호환됩니다. 다른 Kubernetes 설치는 현재 지원되지 않습니다.

AKS Kubernetes 버전 1.21 이상이 지원됩니다. 여기에는 새 AKS 클러스터를 만들 때 현재 사용할 수 있는 모든 버전이 포함됩니다.

중요

Azure Managed Lustre CSI 드라이버는 현재 AKS의 노드 풀에 대한 Ubuntu Linux OS SKU에서만 작동합니다.

호환되는 Lustre 버전

AKS용 Azure Managed Lustre CSI 드라이버는 Azure Managed Lustre와 호환됩니다. 다른 Lustre 설치는 현재 지원되지 않습니다.

Azure Managed Lustre CSI 드라이버 버전 0.1.10 이상은 현재 버전의 Azure Managed Lustre 서비스에서 지원됩니다.

사전 요구 사항

AKS 배포 계획

AKS와 Azure Managed Lustre 간의 작업에 영향을 주는 Azure Kubernetes Service 배포할 때 몇 가지 옵션이 있습니다.

AKS와 함께 사용할 네트워크 유형 결정

Ubuntu Linux OS SKU, kubenet 및 Azure CNI(Container Network Interface) 드라이버와 호환되는 두 가지 네트워크 유형이 있습니다. 두 옵션 모두 AKS용 Azure Managed Lustre CSI 드라이버에서 작동하지만 가상 네트워킹 및 AKS를 설정할 때 이해해야 하는 요구 사항이 다릅니다. 적절한 선택을 결정하는 방법에 대한 자세한 내용은 AKS(Azure Kubernetes Service)의 애플리케이션에 대한 네트워킹 개념을 참조하세요.

AKS 및 Azure Managed Lustre의 상호 연결에 대한 네트워크 아키텍처 확인

Azure Managed Lustre는 프라이빗 가상 네트워크 내에서 작동하며 Kubernetes는 Azure Managed Lustre 가상 네트워크에 대한 네트워크 연결이 있어야 합니다. Azure Managed Lustre와 AKS 간에 네트워킹을 구성하는 두 가지 일반적인 방법이 있습니다.

  • AKS를 자체 Virtual Network 설치하고 Azure Managed Lustre Virtual Network 사용하여 가상 네트워크 피어링을 만듭니다.
  • AKS에서 Bring your Own Networking 옵션을 사용하여 Azure Managed Lustre Virtual Network 새 서브넷에 AKS를 설치합니다.

참고

Azure Managed Lustre와 동일한 서브넷에 AKS를 설치하는 것은 권장되지 않습니다.

AKS 및 Azure Managed Lustre 가상 네트워크 피어링

서로 다른 두 가상 네트워크를 피어링하는 옵션은 다양한 네트워크의 관리를 다른 권한 있는 역할로 분리하는 이점이 있습니다. 피어링은 Azure 구독 또는 지역에서 수행할 수 있으므로 추가 유연성을 제공할 수도 있습니다. Virtual Network 피어링에는 충돌하는 IP 네트워크 공간을 선택하지 않도록 두 네트워크 간의 조정이 필요합니다.

Azure Managed Lustre용 VNet과 AKS용 VNet 피어링 화살표를 연결하는 두 개의 VNet을 보여 주는 다이어그램

Azure Managed Lustre 가상 네트워크의 서브넷에 AKS 설치

AKS에서 Bring Your Own Network 기능을 사용하여 AKS 클러스터를 Azure Managed Lustre 가상 네트워크에 설치하는 옵션은 네트워크가 단독으로 관리되는 시나리오를 원하는 경우에 유리할 수 있습니다. AKS 네트워킹 요구 사항을 충족하기 위해 크기가 조정된 추가 서브넷은 Azure Managed Lustre 가상 네트워크에 만들어야 합니다.

AKS를 Azure Managed Lustre Network에 프로비전할 때 네트워크 관리에 대한 권한 분리는 없으며 AKS 서비스 주체는 Azure Managed Lustre 가상 네트워크에 대한 권한이 필요합니다.

두 개의 서브넷이 있는 Azure Managed Lustre VNet을 보여 주는 다이어그램. 하나는 Lustre 파일 시스템용이고 다른 하나는 AKS용입니다.

설정 개요

Kubernetes용 Azure Managed Lustre CSI 드라이버를 사용하도록 설정하려면 다음 단계를 수행합니다.

  1. Azure Managed Lustre 파일 시스템 만들기

  2. AKS Kubernetes 클러스터 만들기

  3. 가상 네트워크 피어링 만들기

  4. Kubernetes용 Azure Managed Lustre CSI 드라이버를 설치합니다.

  5. 영구 볼륨을 만들고 구성합니다.

  6. 필요에 따라 에코 Pod를 사용하여 설치를 확인하여 드라이버가 작동하는지 확인합니다.

다음 섹션에서는 각 작업에 대해 자세히 설명합니다.

Azure Managed Lustre 파일 시스템 만들기

Azure Managed Lustre 파일 시스템 클러스터를 아직 만들지 않은 경우 지금 클러스터를 만듭니다. 자세한 내용은 Azure Portal Azure Managed Lustre 파일 시스템 만들기를 참조하세요. 현재 드라이버는 기존 Azure Managed Lustre 파일 시스템에서만 사용할 수 있습니다.

AKS 클러스터 만들기

AKS 클러스터를 아직 만들지 않은 경우 클러스터 배포를 만듭니다. AKS(Azure Kubernetes Service) 클러스터 배포를 참조하세요.

가상 네트워크 피어링 만들기

참고

AZURE Managed Lustre 가상 네트워크의 서브넷에 AKS를 설치한 경우 이 네트워크 피어링 단계를 건너뜁니다.

AKS 가상 네트워크는 AKS 클러스터의 리소스 그룹에서 별도의 리소스 그룹에 만들어집니다. Azure Portal에서 AKS 클러스터로 이동하여 속성 블레이드를 선택하고 인프라 리소스 그룹을 찾아 이 리소스 그룹의 이름을 찾을 수 있습니다. 이 리소스 그룹에는 Azure Managed Lustre 가상 네트워크와 페어링해야 하는 가상 네트워크가 포함되어 있습니다. MC_<aks-rg-name>_<aks-cluster-name>_<region> 패턴과 일치합니다.

azure Manages Lustre 가상 네트워크와 AKS 가상 네트워크를 피어링하려면 Virtual Network 피어링을 참조하세요.

MC_ 리소스 그룹 및 가상 네트워크의 이름 지정으로 인해 네트워크 이름은 여러 AKS 배포에서 유사하거나 동일할 수 있습니다. 피어링을 설정할 때는 선택하려는 AKS 네트워크를 선택하는 데 주의해야 합니다.

AKS 클러스터에 연결

다음 단계를 수행하여 Azure Kubernetes Service 클러스터에 연결합니다.

  1. Azure CLI 도구에 대한 액세스 권한이 있는 터미널 세션을 열고 Azure 계정에 로그인합니다.

    az login
    
  2. Azure Portal에 로그인합니다.

  3. AKS 클러스터를 찾습니다. 개요 블레이드를 선택한 다음 연결 단추를 선택하고 클러스터 자격 증명 다운로드 명령을 복사합니다.

  4. 터미널 세션에서 명령을 붙여넣어 자격 증명을 다운로드합니다. 다음과 유사한 명령입니다.

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. 환경에 없는 경우 kubectl을 설치합니다.

    az aks install-cli
    
  6. 현재 컨텍스트가 자격 증명을 방금 설치한 AKS 클러스터이고 연결할 수 있는지 확인합니다.

    kubectl config current-context
    kubectl get deployments --all-namespaces=true
    

CSI 드라이버 설치

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 파일 시스템에 대한 영구 볼륨을 만들려면 다음 단계를 수행합니다.

  1. azurelustre-csi-driver 리포지토리의 /docs/examples/ 폴더에서 다음 구성 파일을 복사합니다. CSI 드라이버를 설치할 때 리포지토리를 복제한 경우 로컬 복사본을 이미 사용할 수 있습니다.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    전체 리포지토리를 복제하지 않으려면 각 파일을 개별적으로 다운로드할 수 있습니다. 다음 링크를 각각 열고 파일의 내용을 복사한 다음 동일한 파일 이름을 가진 로컬 파일에 붙여넣습니다.

  2. storageclass_existing_lustre.yaml 파일에서 Lustre 클러스터의 내부 이름과 MSG IP 주소를 업데이트합니다.

    바꿀 값이 강조 표시된 storageclass_existing_lustre.yaml 파일의 스크린샷

    두 설정 모두 Azure Lustre 파일 시스템의 클라이언트 연결 페이지에 Azure Portal 표시됩니다.

    Azure Portal 클라이언트 연결 페이지의 스크린샷 탑재 명령의 MGS IP 주소와

    다음을 업데이트합니다.

    • 을 Azure Managed Lustre 파일 시스템에서 Lustre 클러스터의 시스템 할당 내부 이름으로 바꿉 EXISTING_LUSTRE_FS_NAME 있습니다. 내부 이름은 일반적으로 lustrefs입니다. 내부 이름은 파일 시스템을 만들 때 지정한 이름이 아닙니다.

      제안된 mount 명령에는 다음 주소 문자열에 강조 표시된 이름이 포함됩니다.

      클라이언트 연결 페이지의 샘플 주소 문자열 스크린샷 Lustre 클러스터의 내부 이름이 강조 표시됩니다.

    • MSG IP 주소로 바꿉니다EXISTING_LUSTRE_IP_ADDRESS.

  3. 스토리지 클래스 및 영구 볼륨 클레임을 만들려면 다음 kubectl 명령을 실행합니다.

    kubectl create -f storageclass_existing_lustre.yaml
    kubectl create -f pvc_storageclass.yaml
    

설치 확인

설치를 검사 경우 필요에 따라 에코 Pod를 사용하여 드라이버가 작동하는지 확인할 수 있습니다.

쓰기 중에 콘솔에서 타임스탬프를 보려면 다음 명령을 실행합니다.

  1. 에코 Pod에 다음 코드를 추가합니다.

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. 쓰기 중에 콘솔에서 타임스탬프를 보려면 다음 kubectl 명령을 실행합니다.

    `kubectl logs -f lustre-echo-date`
    

다음 단계