Używanie sterownika CSI zarządzanego lustra platformy Azure z Azure Kubernetes Service

W tym artykule opisano sposób planowania, instalowania i używania narzędzia Azure Managed Lustre w usłudze Azure Kubernetes Service (AKS) za pomocą sterownika interfejsu obsługi kontenera Kubernetes Managed Lustre platformy Azure (sterownik AZURE Managed Lustre CSI).

Informacje o sterowniku CSI managed lustre platformy Azure dla usługi AKS

Sterownik azure Managed Lustre Container Support Interface (CSI) dla usługi AKS umożliwia dostęp do magazynu Azure Managed Lustre jako trwałych woluminów magazynu z kontenerów Kubernetes wdrożonych w Azure Kubernetes Service (AKS).

Zgodne wersje platformy Kubernetes

Sterownik CSI managed Lustre platformy Azure dla usługi AKS jest zgodny z Azure Kubernetes Service (AKS). Inne instalacje platformy Kubernetes nie są obecnie obsługiwane.

Obsługiwane są usługi AKS Kubernetes w wersji 1.21 lub nowszej. Obejmuje to wszystkie wersje, które są obecnie dostępne podczas tworzenia nowego klastra usługi AKS.

Ważne

Sterownik AZURE Managed Lustre CSI obecnie współpracuje tylko z jednostkami SKU systemu operacyjnego Ubuntu Linux dla pul węzłów usługi AKS.

Zgodne wersje lustra

Sterownik AZURE Managed Lustre CSI dla usługi AKS jest zgodny z usługą Azure Managed Lustre. Inne instalacje Lustre nie są obecnie obsługiwane.

Sterownik Azure Managed Lustre CSI w wersji 0.1.10 lub nowszej jest obsługiwany z bieżącą wersją usługi Azure Managed Lustre.

Wymagania wstępne

Planowanie wdrożenia usługi AKS

Istnieje kilka opcji wdrażania Azure Kubernetes Service, które wpływają na operację między usługą AKS i usługą Azure Managed Lustre.

Określanie typu sieci do użycia z usługą AKS

Istnieją dwa typy sieci, które są zgodne z jednostkami SKU systemu operacyjnego Ubuntu Linux, kubenet i sterownikiem interfejsu sieciowego kontenera platformy Azure (CNI). Obie opcje działają z sterownikiem CSI Managed Lustre platformy Azure dla usługi AKS, ale mają różne wymagania, które należy zrozumieć podczas konfigurowania sieci wirtualnej i usługi AKS. Aby uzyskać więcej informacji na temat określania właściwego wyboru, zobacz Pojęcia dotyczące sieci dla aplikacji w usłudze Azure Kubernetes Service (AKS).

Określanie architektury sieci na potrzeby połączenia między usługami AKS i Azure Managed Lustre

Usługa Azure Managed Lustre działa w prywatnej sieci wirtualnej. Platforma Kubernetes musi mieć łączność sieciową z siecią wirtualną Azure Managed Lustre. Istnieją dwa typowe sposoby konfigurowania sieci między usługą Azure Managed Lustre i usługą AKS.

  • Zainstaluj usługę AKS we własnym Virtual Network i utwórz komunikację równorzędną sieci wirtualnych za pomocą Virtual Network Azure Managed Lustre.
  • Użyj opcji Bring your Own Networking w usłudze AKS, aby zainstalować usługę AKS w nowej podsieci w Virtual Network Azure Managed Lustre.

Uwaga

Instalowanie usługi AKS w tej samej podsieci co usługa Azure Managed Lustre nie jest zalecana.

Komunikacja równorzędna AKS i sieci wirtualne Lustre zarządzane przez platformę Azure

Opcja komunikacji równorzędnej dwóch różnych sieci wirtualnych ma zaletę rozdzielenia zarządzania różnymi sieciami na różne uprzywilejowane role. Komunikacja równorzędna może również zapewnić dodatkową elastyczność, ponieważ można ją wykonywać w ramach subskrypcji lub regionów platformy Azure. Virtual Network komunikacja równorzędna będzie wymagać koordynacji między dwiema sieciami, aby uniknąć wybierania konfliktowych przestrzeni sieciowych IP.

Diagram przedstawiający dwie sieci wirtualne, jedną dla usługi Azure Managed Lustre i jedną dla usługi AKS ze strzałką komunikacji równorzędnej sieci wirtualnych łączącą je.

Instalowanie usługi AKS w podsieci w sieci wirtualnej Azure Managed Lustre

Opcja zainstalowania klastra AKS w sieci wirtualnej Azure Managed Lustre z funkcją Bring Your Own Network w usłudze AKS może być korzystna w przypadku scenariuszy, w których sieć jest zarządzana pojedynczo. W sieci wirtualnej Azure Managed Lustre należy utworzyć dodatkową podsieć spełniającą wymagania dotyczące sieci usługi AKS.

Nie ma separacji uprawnień do zarządzania siecią podczas aprowizowania usługi AKS w sieci Azure Managed Lustre Network, a jednostka usługi AKS będzie potrzebować uprawnień w sieci wirtualnej Azure Managed Lustre.

Diagram przedstawiający sieć wirtualną Azure Managed Lustre z dwiema podsieciami, jedną dla systemu plików Lustre i jedną dla usługi AKS.

Omówienie konfiguracji

Aby włączyć sterownik CSI Managed Lustre platformy Azure dla platformy Kubernetes, wykonaj następujące kroki:

  1. Tworzenie systemu plików Azure Managed Lustre

  2. Tworzenie klastra Kubernetes usługi AKS

  3. Tworzenie komunikacji równorzędnej sieci wirtualnej

  4. Zainstaluj sterownik CSI Managed Lustre platformy Azure dla platformy Kubernetes.

  5. Utwórz i skonfiguruj wolumin trwały.

  6. Sprawdź instalację , opcjonalnie używając zasobnika echa, aby potwierdzić, że sterownik działa.

W poniższych sekcjach szczegółowo opisano każde zadanie.

Tworzenie systemu plików Azure Managed Lustre

Jeśli nie utworzono jeszcze klastra systemu plików Azure Managed Lustre, utwórz klaster teraz. Aby uzyskać instrukcje, zobacz Tworzenie systemu plików Azure Managed Lustre w Azure Portal. Obecnie sterownik może być używany tylko z istniejącym systemem plików Azure Managed Lustre.

Tworzenie klastra AKS

Jeśli klaster usługi AKS nie został jeszcze utworzony, utwórz wdrożenie klastra. Zobacz Wdrażanie klastra Azure Kubernetes Service (AKS).

Tworzenie komunikacji równorzędnej sieci wirtualnej

Uwaga

Pomiń ten krok komunikacji równorzędnej sieci, jeśli usługa AKS została zainstalowana w podsieci w sieci wirtualnej Azure Managed Lustre.

Sieć wirtualna usługi AKS jest tworzona w oddzielnej grupie zasobów z grupy zasobów klastra usługi AKS. Nazwę tej grupy zasobów można znaleźć, przechodząc do klastra usługi AKS w witrynie Azure Portal, wybierając blok Właściwości i znajdując grupę zasobów infrastruktury . Ta grupa zasobów zawiera sieć wirtualną, która musi być sparowana z siecią wirtualną Azure Managed Lustre. Jest on zgodny ze wzorcem MC_<aks-rg-name>_<aks-cluster-name>_<region>.

Zapoznaj się z Virtual Network komunikacja równorzędna w celu komunikacji równorzędnej sieci wirtualnej usługi AKS za pomocą sieci wirtualnej Azure Manages Lustre.

Porada

Ze względu na nazewnictwo MC_ grup zasobów i sieci wirtualnych nazwy sieci mogą być podobne lub takie same w wielu wdrożeniach usługi AKS. Podczas konfigurowania komunikacji równorzędnej należy zwrócić szczególną uwagę na wybór sieci usługi AKS, które mają być wybrane.

Nawiązywanie połączenia z klastrem usługi AKS

Połącz się z klastrem Azure Kubernetes Service, wykonując następujące czynności:

  1. Otwórz sesję terminalu z dostępem do narzędzi interfejsu wiersza polecenia platformy Azure i zaloguj się do konta platformy Azure.

    az login
    
  2. Zaloguj się do Azure Portal.

  3. Znajdź klaster usługi AKS. Wybierz blok Przegląd , a następnie wybierz przycisk Połącz i skopiuj polecenie Pobierz poświadczenia klastra.

  4. W sesji terminalu wklej polecenie , aby pobrać poświadczenia. Będzie to polecenie podobne do:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Zainstaluj narzędzie kubectl, jeśli nie jest obecne w środowisku.

    az aks install-cli
    
  6. Sprawdź, czy bieżący kontekst jest właśnie zainstalowanym klastrem usługi AKS i czy można z nim nawiązać połączenie:

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

Instalowanie sterownika CSI

Aby zainstalować sterownik CSI, uruchom następujące polecenie:

curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash

Aby zapoznać się z przykładami poleceń instalacji lokalnej, zobacz Instalowanie sterownika Azure Lustre CSI w klastrze Kubernetes.

Tworzenie i konfigurowanie woluminu trwałego

Aby utworzyć wolumin trwały dla istniejącego systemu plików Azure Managed Lustre, wykonaj następujące kroki:

  1. Skopiuj następujące pliki konfiguracji z folderu /docs/examples/ w repozytorium azurelustre-csi-driver . Jeśli sklonujesz repozytorium po zainstalowaniu sterownika CSI, dostępne są już lokalne kopie.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Jeśli nie chcesz klonować całego repozytorium, możesz pobrać każdy plik osobno. Otwórz każde z poniższych linków, skopiuj zawartość pliku, a następnie wklej zawartość do pliku lokalnego o tej samej nazwie pliku.

  2. W pliku storageclass_existing_lustre.yaml zaktualizuj wewnętrzną nazwę klastra Lustre i adres IP usługi MSG.

    Zrzut ekranu przedstawiający plik storageclass_existing_lustre.yaml z wartościami do zastąpienia wyróżnionymi.

    Oba ustawienia są wyświetlane w Azure Portal na stronie Połączenie klienta dla systemu plików Azure Lustre.

    Zrzut ekranu przedstawiający stronę Azure Portal Połączenie klienta. Adres IP usługi MGS i nazwa

    Wprowadź następujące aktualizacje:

    • Zastąp EXISTING_LUSTRE_FS_NAME element nazwą wewnętrzną przypisaną przez system klastra Lustre w zarządzanym systemie plików Lustre platformy Azure. Nazwa wewnętrzna to zwykle lustrefs. Nazwa wewnętrzna nie jest nazwą nadaną systemowi plików podczas jego tworzenia.

      Sugerowane mount polecenie zawiera nazwę wyróżnioną w poniższym ciągu adresu.

      Zrzut ekranu przedstawiający przykładowy ciąg adresu na stronie Połączenie klienta. Nazwa wewnętrzna klastra Lustre jest wyróżniona.

    • Zastąp ciąg EXISTING_LUSTRE_IP_ADDRESSadresem IP usługi MSG.

  3. Aby utworzyć klasę magazynu i oświadczenie trwałego woluminu, uruchom następujące kubectl polecenie:

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

Sprawdzanie instalacji

Jeśli chcesz sprawdzić instalację, możesz opcjonalnie użyć zasobnika echa, aby potwierdzić, że sterownik działa.

Aby wyświetlić znaczniki czasu w konsoli podczas zapisu, uruchom następujące polecenia:

  1. Dodaj następujący kod do zasobnika echo:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Aby wyświetlić znaczniki czasu w konsoli podczas zapisu, uruchom następujące kubectl polecenie:

    `kubectl logs -f lustre-echo-date`
    

Następne kroki