Sdílet prostřednictvím


Použití služby Azure Container Storage Ve verzi Preview se spravovanými disky Azure

Azure Container Storage je cloudová služba pro správu svazků, nasazení a orchestraci sestavená nativně pro kontejnery. V tomto článku se dozvíte, jak nakonfigurovat Službu Azure Container Storage tak, aby používala spravované disky Azure jako back-endové úložiště pro úlohy Kubernetes. Na konci budete mít pod, který jako úložiště používá spravované disky Azure.

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  • Tento článek vyžaduje nejnovější verzi Azure CLI (2.35.0 nebo novější). Přečtěte si , jak nainstalovat Azure CLI. Pokud používáte prostředí Bash v Azure Cloud Shellu, je už nainstalovaná nejnovější verze. Pokud chcete příkazy spouštět místně místo v Azure Cloud Shellu, nezapomeňte je spustit s oprávněními správce. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.

  • Budete potřebovat klienta kubectlpříkazového řádku Kubernetes. Je už nainstalovaný, pokud používáte Azure Cloud Shell, nebo ho můžete nainstalovat místně spuštěním az aks install-cli příkazu.

  • Pokud jste ještě službu Azure Container Storage nenainstalovali, postupujte podle pokynů v tématu Použití služby Azure Container Storage se službou Azure Kubernetes Service.

  • Zkontrolujte, jestli je vaše cílová oblast podporovaná v oblastech Azure Container Storage.

Poznámka:

Pokud chcete azure Container Storage používat se spravovanými disky Azure, cluster AKS by měl mít fond uzlů alespoň tří virtuálních počítačů pro obecné účely, jako je standard_d4s_v5 pro uzly clusteru, z nichž každý má minimálně čtyři virtuální procesory (vCPU).

Vytvoření a připojení trvalých svazků

Pomocí těchto kroků vytvořte a připojte trvalý svazek.

1. Vytvoření fondu úložiště

Nejprve vytvořte fond úložiště, což je logické seskupení úložiště pro cluster Kubernetes tím, že ho definujete v souboru manifestu YAML.

Máte následující možnosti pro vytvoření fondu úložiště:

Pokud jste povolili službu Azure Container Storage pomocí az aks create příkazů nebo az aks update příkazů, možná už máte fond úložiště. Slouží kubectl get sp -n acstor k získání seznamu fondů úložiště. Pokud už máte fond úložiště, který chcete použít, můžete tento krok přeskočit a přejít k zobrazení dostupných tříd úložiště.

Vytvoření dynamického fondu úložiště

Pokud chcete vytvořit dynamický fond úložiště pro disky Azure, postupujte podle těchto kroků.

  1. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-storagepool.yaml.

  2. Vložte následující kód. Hodnota názvu fondu úložiště může být libovolná. Pro skuName zadejte úroveň výkonu a redundance. Přijatelné hodnoty jsou Premium_LRS, Standard_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, PremiumV2_LRS a StandardSSD_ZRS. V případě úložiště zadejte velikost kapacity úložiště pro fond v Gi nebo Ti. Uložte soubor.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: azuredisk
      namespace: acstor
    spec:
      poolType:
        azureDisk:
          skuName: Premium_LRS
      resources:
        requests:
          storage: 1Ti
    
  3. Pomocí souboru manifestu YAML vytvořte fond úložiště.

    kubectl apply -f acstor-storagepool.yaml 
    

    Po dokončení vytváření fondu úložiště se zobrazí zpráva typu:

    storagepool.containerstorage.azure.com/azuredisk created
    

    Můžete také spustit tento příkaz a zkontrolovat stav fondu úložiště. Nahraďte <storage-pool-name> hodnotou názvu fondu úložiště. V tomto příkladu by hodnota byla azuredisk.

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

Po vytvoření fondu úložiště vytvoří Služba Azure Container Storage za vás třídu úložiště pomocí konvence acstor-<storage-pool-name>vytváření názvů . Teď můžete zobrazit dostupné třídy úložiště a vytvořit trvalou deklaraci identity svazku.

Vytvoření předem zřízeného fondu úložiště

Pokud máte spravované disky Azure, které už jsou zřízené, můžete pomocí těchto disků vytvořit předem zřízený fond úložiště. Vzhledem k tomu, že disky jsou už zřízené, nemusíte při vytváření fondu úložiště zadávat skuName ani kapacitu úložiště.

Podle těchto kroků vytvořte předem zřízený fond úložiště pro disky Azure.

  1. Přihlaste se k portálu Azure.

  2. Pro každý disk, který chcete použít, přejděte na spravovaný disk Azure a vyberte Vlastnosti nastavení>. Zkopírujte celý řetězec pod ID prostředku a vložte ho do textového souboru.

  3. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-storagepool.yaml.

  4. Vložte následující kód. Hodnota názvu fondu úložiště může být libovolná. Nahraďte <resource-id> ID prostředku každého spravovaného disku. Uložte soubor.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: sp-preprovisioned
      namespace: acstor
    spec:
      poolType:
        azureDisk:
          disks:
            - reference <resource-id1>
            - reference <resource-id2>
    
  5. Pomocí souboru manifestu YAML vytvořte fond úložiště.

    kubectl apply -f acstor-storagepool.yaml 
    

    Po dokončení vytváření fondu úložiště se zobrazí zpráva typu:

    storagepool.containerstorage.azure.com/sp-preprovisioned created
    

    Můžete také spustit tento příkaz a zkontrolovat stav fondu úložiště. Nahraďte <storage-pool-name> hodnotou názvu fondu úložiště. V tomto příkladu by hodnota byla předem zřízený.

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

Po vytvoření fondu úložiště vytvoří Služba Azure Container Storage za vás třídu úložiště pomocí konvence acstor-<storage-pool-name>vytváření názvů . Teď můžete zobrazit dostupné třídy úložiště a vytvořit trvalou deklaraci identity svazku.

Vytvoření dynamického fondu úložiště pomocí vlastního šifrovacího klíče (volitelného)

Všechna data v účtu úložiště Azure se šifrují v klidovém stavu. Ve výchozím nastavení se data šifrují pomocí klíčů spravovaných Microsoftem. Pokud chcete mít větší kontrolu nad šifrovacími klíči, můžete při vytváření fondu úložiště zadat klíče spravované zákazníkem (CMK), které budou šifrovat trvalé svazky, které vytvoříte.

Pokud chcete pro šifrování na straně serveru použít vlastní klíč, musíte mít službu Azure Key Vault s klíčem. Služba Key Vault by měla mít povolenou ochranu před vymazáním a musí používat model oprávnění Azure RBAC. Přečtěte si další informace o klíčích spravovaných zákazníkem v Linuxu.

Při vytváření fondu úložiště musíte definovat parametry CMK. Požadované parametry šifrování CMK jsou:

  • keyVersion určuje verzi klíče, která se má použít.
  • keyName je název vašeho klíče.
  • keyVaultUri je jednotný identifikátor prostředku služby Azure Key Vault, například https://user.vault.azure.net
  • Identita určuje spravovanou identitu s přístupem k trezoru, například /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourcegroups/MC_user-acstor-westus2-rg_user-acstor-westus2_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-acstor-westus2-agentpool

Pomocí těchto kroků vytvořte fond úložiště pomocí vlastního šifrovacího klíče. Všechny trvalé svazky vytvořené z tohoto fondu úložiště budou šifrované pomocí stejného klíče.

  1. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-storagepool-cmk.yaml.

  2. Vložte následující kód, zadejte požadované parametry a uložte soubor. Hodnota názvu fondu úložiště může být libovolná. Pro skuName zadejte úroveň výkonu a redundance. Přijatelné hodnoty jsou Premium_LRS, Standard_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, PremiumV2_LRS a StandardSSD_ZRS. V případě úložiště zadejte velikost kapacity úložiště pro fond v Gi nebo Ti. Nezapomeňte zadat parametry šifrování CMK.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: azuredisk
      namespace: acstor
    spec:
      poolType:
        azureDisk:
          skuName: Premium_LRS
          encryption: {
            keyVersion: "<key-version>",
            keyName: "<key-name>",
            keyVaultUri: "<key-vault-uri>",
            identity: "<identity>"
          }
      resources:
        requests:
          storage: 1Ti
    
  3. Pomocí souboru manifestu YAML vytvořte fond úložiště.

    kubectl apply -f acstor-storagepool-cmk.yaml 
    

    Po dokončení vytváření fondu úložiště se zobrazí zpráva typu:

    storagepool.containerstorage.azure.com/azuredisk created
    

    Můžete také spustit tento příkaz a zkontrolovat stav fondu úložiště. Nahraďte <storage-pool-name> hodnotou názvu fondu úložiště. V tomto příkladu by hodnota byla azuredisk.

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

Po vytvoření fondu úložiště vytvoří Služba Azure Container Storage za vás třídu úložiště pomocí konvence acstor-<storage-pool-name>vytváření názvů .

2. Zobrazení dostupných tříd úložiště

Jakmile je fond úložiště připravený k použití, musíte vybrat třídu úložiště, která definuje, jak se úložiště dynamicky vytváří při vytváření trvalých deklarací identity svazků a nasazování trvalých svazků.

Spuštěním zobrazte kubectl get sc dostupné třídy úložiště. Měla by se zobrazit třída úložiště s názvem acstor-<storage-pool-name>.

Důležité

Nepoužívejte třídu úložiště, která je označená jako interní. Je to interní třída úložiště, která je potřebná pro fungování služby Azure Container Storage.

3. Vytvoření trvalé deklarace identity svazku

Deklarace trvalého svazku (PVC) se používá k automatickému zřizování úložiště na základě třídy úložiště. Pomocí těchto kroků vytvořte PVC pomocí nové třídy úložiště.

  1. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-pvc.yaml.

  2. Vložte následující kód a soubor uložte. Hodnota PVC name může být cokoli, co chcete.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: azurediskpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-azuredisk # replace with the name of your storage class if different
      resources:
        requests:
          storage: 100Gi
    
  3. Pomocí souboru manifestu YAML vytvořte PVC.

    kubectl apply -f acstor-pvc.yaml
    

    Zobrazený výstup by měl vypadat přibližně takto:

    persistentvolumeclaim/azurediskpvc created
    

    Stav PVC můžete ověřit spuštěním následujícího příkazu:

    kubectl describe pvc azurediskpvc
    

Po vytvoření PVC je připraven k použití podem.

4. Nasazení podu a připojení trvalého svazku

Vytvořte pod pomocí Fio (flexibilní V/V Tester) pro srovnávací testy a simulaci úloh a zadejte cestu připojení k trvalému svazku. V případě deklarace identity použijte hodnotu názvu , kterou jste použili při vytváření deklarace trvalého svazku.

  1. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-pod.yaml.

  2. Vložte následující kód a soubor uložte.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: azurediskpv
          persistentVolumeClaim:
            claimName: azurediskpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: azurediskpv
    
  3. Nasaďte pod pomocí souboru manifestu YAML.

    kubectl apply -f acstor-pod.yaml
    

    Zobrazený výstup by měl vypadat přibližně takto:

    pod/fiopod created
    
  4. Zkontrolujte, že je pod spuštěný a že deklarace trvalého svazku byla úspěšně svázaná s podem:

    kubectl describe pod fiopod
    kubectl describe pvc azurediskpvc
    
  5. Zkontrolujte testování fio a podívejte se na aktuální stav:

    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
    

Teď jste nasadili pod, který jako úložiště používá disky Azure, a můžete ho použít pro úlohy Kubernetes.

Správa trvalých svazků a fondů úložiště

Teď, když jste vytvořili trvalý svazek, můžete ho podle potřeby odpojit a znovu připojit. Fond úložiště můžete také rozbalit nebo odstranit.

Odpojení a opětovné připojení trvalého svazku

Pokud chcete odpojit trvalý svazek, odstraňte pod, ke kterému je trvalý svazek připojený. Nahraďte <pod-name> názvem podu, například fiopod.

kubectl delete pods <pod-name>

Pokud chcete trvalý svazek znovu připojit, jednoduše odkazujte na název deklarace identity trvalého svazku v souboru manifestu YAML, jak je popsáno v části Nasazení podu a připojte trvalý svazek.

Pokud chcete zkontrolovat, ke kterému trvalému svazku je vázána deklarace identity trvalého svazku, spusťte kubectl get pvc <persistent-volume-claim-name>příkaz .

Rozšíření fondu úložiště

Fondy úložiště zálohované disky Azure můžete rozšířit, abyste mohli rychle a bez výpadků vertikálně navýšit kapacitu. Zmenšení fondů úložiště se v současné době nepodporuje.

Poznámka:

Rozšíření fondu úložiště může zvýšit náklady na Azure Container Storage a disky Azure. Podívejte se na stránku s cenami služby Azure Container Storage.

Podle těchto pokynů rozbalte existující fond úložiště pro disky Azure.

  1. Pomocí textového editoru otevřete soubor manifestu YAML, který jste použili k vytvoření fondu úložiště, například code acstor-storagepool.yaml.

  2. Nahraďte zadanou položku úložiště v souboru manifestu YAML požadovanou hodnotou. Tato hodnota musí být větší než aktuální kapacita fondu úložiště. Pokud je například specifikace nastavena na storage: 1Ti, změňte ji na storage: 2Ti. Pokud jste vytvořili předem zřízený fond úložiště, nebude k dispozici položka úložiště , protože fond úložiště zdědil velikost kapacity z předem zřízených disků Azure. Pokud v YAML nevidíte položku úložiště , přidejte následující kód určující požadovanou kapacitu úložiště a pak soubor manifestu uložte:

    spec:
      resources:
        requests:
          storage: 2Ti
    
  3. Pomocí souboru manifestu YAML rozbalte fond úložiště.

    kubectl apply -f acstor-storagepool.yaml 
    
  4. Spuštěním tohoto příkazu zkontrolujte stav fondu úložiště. Nahraďte <storage-pool-name> hodnotou názvu fondu úložiště.

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

    Měla by se zobrazit zpráva typu "Fond úložiště se rozšiřuje". Spusťte příkaz znovu po několika minutách a zpráva by měla být pryč.

  5. Spuštění kubectl get sp -A a fond úložiště by měl odrážet novou velikost.

Odstranění fondu úložiště

Pokud chcete odstranit fond úložiště, spusťte následující příkaz. Nahraďte <storage-pool-name> názvem fondu úložiště.

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

Viz také