다음을 통해 공유


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 서비스에서 지원됩니다.

필수 조건

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용 네트워크, 두 네트워크는 피어링 화살표로 연결됩니다.

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

AKS에서 Azure Managed Lustre 가상 네트워크에 AKS 클러스터를 설치할 때 자신의 Azure 가상 네트워크를 사용하는 기능을 활용하는 것은 네트워크가 단독으로 관리되는 시나리오에서 유리할 수 있습니다. Azure Managed Lustre 가상 네트워크에서 AKS 네트워킹 요구 사항에 맞게 크기를 조정한 추가 서브넷을 만들어야 합니다.

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

두 개의 서브넷이 있는 Azure Managed Lustre 가상 네트워크를 보여 주는 다이어그램입니다. 하나는 Lustre 파일 시스템용이고 다른 하나는 AKS용입니다.

드라이버 설정

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

  1. Azure Managed Lustre 파일 시스템 클러스터만듭니다.

  2. AKS 클러스터를 생성하세요.

  3. 가상 네트워크 피어링을 만듭니다.

  4. 드라이버설치합니다.

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

  6. 드라이버가 작동하는지 확인하기 위해 설치를 점검하고, 필요하면 에코 포드를 사용합니다.

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

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 클러스터로 이동하여 속성인프라 리소스 그룹을 찾아 이 리소스 그룹의 이름을 찾을 수 있습니다. 이 리소스 그룹에는 Azure Managed Lustre 가상 네트워크와 페어링해야 하는 가상 네트워크가 포함되어 있습니다. MC_<aks-rg-name>_<aks-cluster-name>_<region> 패턴과 일치합니다.

AKS 가상 네트워크를 Azure Managed Lustre 가상 네트워크와 연결하려면 가상 네트워크 연결을 참조하세요.

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

AKS 클러스터에 연결

  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
    

드라이버 설치

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

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

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

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

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

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

    두 설정 모두 Azure 포털의 Azure Managed Lustre 파일 시스템에 대한 클라이언트 연결 창에 표시됩니다.

    Azure 포털의 클라이언트 연결 창 스크린샷입니다. 탑재 명령에서 MGS IP 주소와

    다음을 업데이트합니다.

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

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

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

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

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

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

설치 확인

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

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

  1. Echo 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`