Korzystanie z usługi Azure Container Storage w wersji zapoznawczej z usługą Azure Elastic SAN

Usługa Azure Container Storage to oparta na chmurze usługa zarządzania woluminami, wdrażania i orkiestracji wbudowana natywnie dla kontenerów. W tym artykule pokazano, jak skonfigurować usługę Azure Container Storage do korzystania z usługi Azure Elastic SAN jako magazynu zaplecza dla obciążeń kubernetes. Na końcu będziesz mieć zasobnik korzystający z elastycznej sieci SAN jako magazynu.

Wymagania wstępne

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

  • Ten artykuł wymaga najnowszej wersji (2.35.0 lub nowszej) interfejsu wiersza polecenia platformy Azure. Zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure. Jeśli używasz środowiska powłoki Bash w usłudze Azure Cloud Shell, najnowsza wersja jest już zainstalowana. Jeśli planujesz uruchamiać polecenia lokalnie zamiast w usłudze Azure Cloud Shell, pamiętaj, aby uruchamiać je z uprawnieniami administracyjnymi. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z usługą Azure Cloud Shell.

  • Potrzebny będzie klient wiersza polecenia platformy Kubernetes, kubectl. Jest on już zainstalowany, jeśli używasz usługi Azure Cloud Shell lub możesz zainstalować go lokalnie, uruchamiając az aks install-cli polecenie .

  • Jeśli jeszcze nie zainstalowano usługi Azure Container Storage, postępuj zgodnie z instrukcjami w temacie Instalowanie usługi Azure Container Storage.

  • Upewnij się, że twoja subskrypcja ma rolę właściciela kontroli dostępu na podstawie ról (RBAC) platformy Azure. Aby usługa Azure Container Storage pomyślnie komunikowała się z interfejsem API elastycznej sieci SAN, musi mieć specjalne uprawnienia przyznane przez rolę Właściciel.

Uwaga

Aby korzystać z usługi Azure Container Storage z elastyczną siecią SAN platformy Azure, klaster usługi AKS powinien mieć pulę węzłów z co najmniej trzema maszynami wirtualnymi ogólnego przeznaczenia, takimi jak standard_d4s_v5 dla węzłów klastra, z których każdy ma co najmniej cztery procesory wirtualne (procesory wirtualne).

Ograniczenia

Poniższe funkcje nie są obecnie obsługiwane w przypadku wdrażania i organizowania elastycznej sieci SAN przy użyciu usługi Azure Container Storage.

  • Migawki woluminów
  • Rozszerzanie puli magazynów

Dostępność w regionach

Usługa Azure Container Storage jest dostępna tylko dla podzestawu regionów platformy Azure:

  • (Afryka) Republika Południowej Afryki Północnej
  • (Azja i Pacyfik) Australia Wschodnia
  • (Azja i Pacyfik) Azja Wschodnia
  • (Azja i Pacyfik) Japonia Wschodnia
  • (Azja i Pacyfik) Korea Środkowa
  • (Azja i Pacyfik) Azja Południowo-Wschodnia
  • (Azja i Pacyfik) Indie Środkowe
  • (Europa) Francja Środkowa
  • (Europa) Europa Północna
  • (Europa) Europa Zachodnia
  • (Europa) Południowe Zjednoczone Królestwo
  • (Europa) Szwecja Środkowa
  • (Europa) Szwajcaria Północna
  • (Bliski Wschód) Zjednoczone Emiraty Arabskie Na Północ
  • (Ameryka Północna) Wschodnie stany USA
  • (Ameryka Północna) Wschodnie stany USA 2
  • (Ameryka Północna) Zachodnie stany USA
  • (Ameryka Północna) Zachodnie stany USA 2
  • (Ameryka Północna) Zachodnie stany USA 3
  • (Ameryka Północna) Środkowe stany USA
  • (Ameryka Północna) Północno-środkowe stany USA
  • (Ameryka Północna) Południowo-środkowe stany USA
  • (Ameryka Północna) Zachodnio-środkowe stany USA
  • (Ameryka Północna) Kanada Środkowa
  • (Ameryka Północna) Kanada Wschodnia
  • (Ameryka Południowa) Brazylia Południowa

Tworzenie puli magazynów

Najpierw utwórz pulę magazynów, która jest logicznym grupowaniem magazynu dla klastra Kubernetes, definiując ją w pliku manifestu YAML.

Jeśli usługa Azure Container Storage została włączona przy użyciu poleceń az aks create lub az aks update , być może masz już pulę magazynów. Użyj polecenia kubectl get sp -n acstor , aby uzyskać listę pul magazynów. Jeśli masz już dostępną pulę magazynów, której chcesz użyć, możesz pominąć tę sekcję i przejść do sekcji Wyświetlanie dostępnych klas magazynu.

Wykonaj następujące kroki, aby utworzyć pulę magazynów za pomocą elastycznej sieci SAN platformy Azure.

  1. Użyj ulubionego edytora tekstów, aby utworzyć plik manifestu YAML, taki jak code acstor-storagepool.yaml.

  2. Wklej następujący kod. Wartość nazwy puli magazynów może być dowolna. Dostosuj magazyn , aby odzwierciedlał pojemność magazynu, którą chcesz umieścić w gi lub Ti, i zapisz plik. Usługa Azure Elastic SAN nie obsługuje obecnie zmiany rozmiaru pul magazynów.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: managed
      namespace: acstor
    spec:
      poolType:
        elasticSan: {}
      resources:
        requests: {"storage": 1Ti}
    
  3. Zastosuj plik manifestu YAML, aby utworzyć pulę magazynów.

    kubectl apply -f acstor-storagepool.yaml 
    

    Po zakończeniu tworzenia puli magazynów zostanie wyświetlony komunikat podobny do następującego:

    storagepool.containerstorage.azure.com/managed created
    

    Możesz również uruchomić to polecenie, aby sprawdzić stan puli magazynów. Zastąp <storage-pool-name> wartość nazwą puli magazynów. W tym przykładzie wartość będzie zarządzana.

    kubectl describe sp <storage-pool-name> -n acstor
    

Po utworzeniu puli magazynów usługa Azure Container Storage utworzy klasę magazynu w Twoim imieniu przy użyciu konwencji acstor-<storage-pool-name>nazewnictwa . Spowoduje to również utworzenie zasobu elastycznej sieci SAN platformy Azure.

Przypisywanie roli współautora do tożsamości zarządzanej usługi AKS w ramach subskrypcji elastycznej sieci SAN platformy Azure

Następnie musisz przypisać wbudowaną rolę współautora kontroli dostępu opartej na rolach platformy Azure do tożsamości zarządzanej usługi AKS w ramach subskrypcji elastycznej sieci SAN platformy Azure. Aby to zrobić, musisz mieć rolę Właściciel subskrypcji platformy Azure. Jeśli nie masz wystarczających uprawnień, poproś administratora o wykonanie tych kroków.

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz pozycję Subskrypcje i znajdź i wybierz subskrypcję skojarzona z zasobem usługi Azure Elastic SAN utworzonym w twoim imieniu przez usługę Azure Container Storage. Prawdopodobnie będzie to ta sama subskrypcja co klaster usługi AKS zainstalowany w usłudze Azure Container Storage. Możesz to sprawdzić, lokalizując zasób Elastic SAN w grupie zasobów utworzonej przez usługę AKS (MC_YourResourceGroup_YourAKSClusterName_Region).

  3. Wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) w okienku po lewej stronie.

  4. Wybierz pozycję Dodaj > przypisanie roli.

  5. W obszarze Typ przypisania wybierz pozycję Role administratora uprzywilejowanego, a następnie Współautor, a następnie wybierz pozycję Dalej. Jeśli nie masz roli Właściciel w subskrypcji, nie będziesz mieć możliwości dodania roli Współautor.

    Zrzut ekranu przedstawiający sposób używania witryny Azure Portal do dodawania roli Współautor do tożsamości zarządzanej usługi AKS.

  6. W obszarze Przypisz dostęp do wybierz pozycję Tożsamość zarządzana.

  7. W obszarze Członkowie kliknij pozycję + Wybierz członków. Zostanie wyświetlone menu Wybierz tożsamości zarządzane.

  8. W obszarze Tożsamość zarządzana wybierz pozycję Tożsamość zarządzana przypisana przez użytkownika.

  9. W obszarze Wybierz wyszukaj i wybierz tożsamość zarządzaną z nazwą klastra i -agentpool dołącz go.

  10. Kliknij pozycję Wybierz, a następnie przejrzyj i przypisz.

Wyświetlanie dostępnych klas magazynu

Gdy pula magazynów jest gotowa do użycia, należy wybrać klasę magazynu, aby zdefiniować sposób dynamicznego tworzenia magazynu podczas tworzenia trwałych oświadczeń woluminów i wdrażania woluminów trwałych.

Uruchom polecenie , kubectl get sc aby wyświetlić dostępne klasy magazynu. Powinna zostać wyświetlona klasa magazynu o nazwie acstor-<storage-pool-name>.

Ważne

Nie używaj klasy magazynu oznaczonej jako wewnętrznej. Jest to wewnętrzna klasa magazynu, która jest potrzebna do pracy w usłudze Azure Container Storage.

Tworzenie trwałego oświadczenia woluminu

Trwałe oświadczenie woluminu (PVC) służy do automatycznego aprowizowania magazynu na podstawie klasy magazynu. Wykonaj następujące kroki, aby utworzyć pcv przy użyciu nowej klasy magazynu.

  1. Użyj ulubionego edytora tekstów, aby utworzyć plik manifestu YAML, taki jak code acstor-pvc.yaml.

  2. Wklej następujący kod i zapisz plik. Wartość PVC name może być dowolna.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: managedpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-managed # replace with the name of your storage class if different
      resources:
        requests:
          storage: 100Gi
    
  3. Zastosuj plik manifestu YAML, aby utworzyć plik PVC.

    kubectl apply -f acstor-pvc.yaml
    

    Powinny zostać wyświetlone dane wyjściowe podobne do poniższych:

    persistentvolumeclaim/managedpvc created
    

    Stan PCV można sprawdzić, uruchamiając następujące polecenie:

    kubectl describe pvc managedpvc
    

Po utworzeniu pvc jest gotowy do użycia przez zasobnik.

Wdrażanie zasobnika i dołączanie woluminu trwałego

Utwórz zasobnik przy użyciu narzędzia Fio (elastycznego testera we/wy) na potrzeby testowania porównawczego i symulacji obciążenia oraz określ ścieżkę instalacji dla woluminu trwałego. W polu claimName użyj wartości nazwy użytej podczas tworzenia trwałego oświadczenia woluminu.

  1. Użyj ulubionego edytora tekstów, aby utworzyć plik manifestu YAML, taki jak code acstor-pod.yaml.

  2. Wklej następujący kod i zapisz plik.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: managedpv
          persistentVolumeClaim:
            claimName: managedpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: managedpv
    
  3. Zastosuj plik manifestu YAML, aby wdrożyć zasobnik.

    kubectl apply -f acstor-pod.yaml
    

    Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

    pod/fiopod created
    
  4. Sprawdź, czy zasobnik jest uruchomiony i czy oświadczenie trwałego woluminu zostało pomyślnie powiązane z zasobnikem:

    kubectl describe pod fiopod
    kubectl describe pvc managedpvc
    
  5. Sprawdź testowanie fio, aby zobaczyć jego bieżący stan:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

Teraz wdrożono zasobnik, który używa elastycznej sieci SAN jako magazynu i można go używać dla obciążeń Kubernetes.

Odłączanie i ponowne dołączanie woluminu trwałego

Aby odłączyć wolumin trwały, usuń zasobnik dołączony do woluminu trwałego. Zastąp <pod-name> ciąg nazwą zasobnika, na przykład fiopod.

kubectl delete pods <pod-name>

Aby ponownie dołączyć wolumin trwały, po prostu odwołaj się do trwałej nazwy oświadczenia woluminu w pliku manifestu YAML zgodnie z opisem w temacie Wdrażanie zasobnika i dołączanie woluminu trwałego.

Aby sprawdzić, z którym woluminem trwałym jest powiązane oświadczenie woluminu trwałego, uruchom polecenie kubectl get pvc <persistent-volume-claim-name>.

Usuwanie puli magazynów

Jeśli chcesz usunąć pulę magazynów, uruchom następujące polecenie. Zastąp <storage-pool-name> ciąg nazwą puli magazynów.

kubectl delete sp -n acstor <storage-pool-name>

Zobacz też