Condividi tramite


Usare Archiviazione di Container Azure con SAN di Elastic in Azure (anteprima)

Archiviazione di Azure Container è un servizio di gestione, distribuzione e orchestrazione basato sul cloud creato in modo nativo per i contenitori. SAN di Elastic in Azure è una soluzione completamente integrata che semplifica la distribuzione, il ridimensionamento, la gestione e la configurazione di una SAN, offrendo al tempo stesso funzionalità cloud predefinite come la disponibilità elevata.

Come funzionalità di anteprima, è possibile configurare Archiviazione di Container Azure per l'uso della SAN di Elastic in Azure. Questo articolo illustra come eseguire questa configurazione. Al termine dell'articolo si avrà un pod che usa SAN di Elastic come risorsa di archiviazione.

Prerequisiti

  • Assicurarsi di disporre di un ruolo di Proprietario di Azure Container Storage o Collaboratore Azure Container Storage nella sottoscrizione. Uno di questi ruoli concede le autorizzazioni che consentono ad Archiviazione di Container Azure di comunicare con la risorsa SAN di Elastic. Per apportare questa modifica, passare alla pagina della sottoscrizione nel portale di Azure. Selezionare Controllo di accesso (IAM) > Aggiungi assegnazione di ruolo e cercare "Proprietario di Azure Container Storage" o "Collaboratore Azure Container Storage" nella scheda Ruoli della funzione processo. Selezionare Visualizza > Assegnazioni> Aggiungi assegnazione e aggiungere l'account.

  • Per usare Archiviazione di Container Azure SAN di Elastic in Azure (anteprima), il cluster del servizio Azure Kubernetes deve avere un pool di nodi di almeno tre macchine virtuali per utilizzo generico, ad esempio standard_d4s_v5 per i nodi del cluster, ognuna con almeno quattro CPU virtuali (vCPU).

Limiti

Le funzionalità seguenti non sono attualmente supportate quando si usa Azure Container Storage per distribuire e orchestrare SAN di Elastic.

  • Snapshot del volume
  • Espansione del pool di archiviazione

Disponibilità a livello di area

Azure Container Storage è disponibile solo per un sottoinsieme di aree di Azure:

  • (Africa) Sudafrica settentrionale
  • (Asia Pacifico) Australia orientale
  • (Asia Pacifico) Asia orientale
  • (Asia Pacifico) Giappone orientale
  • (Asia Pacifico) Corea centrale
  • (Asia Pacifico) Asia sud-orientale
  • (Asia Pacifico) India centrale
  • (Europa) Francia centrale
  • (Europa) Germania centro-occidentale
  • (Europa) Europa settentrionale
  • (Europa) Europa occidentale
  • (Europa) Regno Unito meridionale
  • (Europa) Svezia centrale
  • (Europa) Svizzera settentrionale
  • (Medio Oriente) Emirati Arabi Uniti settentrionali
  • (America del Nord) Stati Uniti orientali
  • (America del Nord) Stati Uniti orientali 2
  • (America del Nord) Stati Uniti occidentali
  • (America del Nord) Stati Uniti occidentali 2
  • (America del Nord) Stati Uniti occidentali 3
  • (America del Nord) Stati Uniti centrali
  • (America del Nord) Stati Uniti centro-settentrionali
  • (America del Nord) Stati Uniti centro-meridionali
  • (America del Nord) Stati Uniti centro-occidentali
  • (America del Nord) Canada centrale
  • (America del Nord) Canada orientale
  • (America del Sud) Brasile meridionale

Creare e collegare volumi permanenti

Seguire questa procedura per creare e collegare un volume permanente.

1. Creare un pool di archiviazione

Creare prima di tutto un pool di archiviazione, ovvero un raggruppamento logico di archiviazione per il cluster Kubernetes, definendolo in un file manifesto YAML.

Se è stata abilitata l'Archiviazione di Azure Container usando i comandi az aks create o az aks update, potrebbe essere già disponibile un pool di archiviazione. Usare kubectl get sp -n acstor per ottenere l'elenco dei pool di archiviazione. Se è già disponibile un pool di archiviazione che si vuole usare, è possibile ignorare questa sezione e passare a Visualizzare le classi di archiviazione disponibili.

Seguire questa procedura per creare un pool di archiviazione con SAN di Elastic in Azure (anteprima).

  1. Usare l'editor di testo preferito per creare un file manifesto YAML, ad esempio code acstor-storagepool.yaml.

  2. Incollare il codice seguente. Il valore del nome del pool di archiviazione può essere quello desiderato. Modificare storage in modo da riflettere la capacità di archiviazione desiderata in Gi o Ti e salvare il file. SAN di Elastic in Azure attualmente non supporta il ridimensionamento dei pool di archiviazione.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: managed
      namespace: acstor
    spec:
      poolType:
        elasticSan: {}
      resources:
        requests: {"storage": 1Ti}
    
  3. Applicare il file manifesto YAML per creare il pool di archiviazione.

    kubectl apply -f acstor-storagepool.yaml 
    

    Al termine della creazione del pool di archiviazione, verrà visualizzato un messaggio simile al seguente:

    storagepool.containerstorage.azure.com/managed created
    

    È anche possibile eseguire questo comando per controllare lo stato del pool di archiviazione. Sostituire <storage-pool-name> con il valore nome del pool di archiviazione. Per questo esempio, il valore sarà managed.

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

Quando viene creato il pool di archiviazione, Azure Container Storage creerà una classe di archiviazione per conto dell'utente usando la convenzione di denominazione acstor-<storage-pool-name>. Creerà anche una risorsa SAN di Elastic in Azure.

2. Visualizzare le classi di archiviazione disponibili

Quando il pool di archiviazione è pronto per l'uso, è necessario selezionare una classe di archiviazione per definire il modo in cui l'archiviazione viene creata dinamicamente durante la creazione di attestazioni di volumi persistenti e la distribuzione di volumi permanenti.

Eseguire kubectl get sc per visualizzare le classi di archiviazione disponibili. Verrà visualizzata una classe di archiviazione denominata acstor-<storage-pool-name>.

Importante

Non usare la classe di archiviazione contrassegnata come internal. Si tratta di una classe di archiviazione interna necessaria per il funzionamento dell'Archiviazione di Azure Container.

3. Creare un'attestazione di volume permanente

Un'attestazione di volume permanente viene usata per il provisioning automatico dell'archiviazione in una classe di archiviazione. Seguire questa procedura per creare un PVC usando la nuova classe di archiviazione.

  1. Usare l'editor di testo preferito per creare un file manifesto YAML, ad esempio code acstor-pvc.yaml.

  2. Incollare il codice seguente e salvare il file. Il valore name PVC può essere quello desiderato.

    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. Applicare il file manifesto YAML per creare il PVC.

    kubectl apply -f acstor-pvc.yaml
    

    L'output visualizzato sarà simile al seguente:

    persistentvolumeclaim/managedpvc created
    

    È possibile controllare lo stato del PVC eseguendo questo comando:

    kubectl describe pvc managedpvc
    

Una volta creato il PVC, è pronto per l'uso da parte di un pod.

4. Distribuire un pod e collegare un volume permanente

Creare un pod usando Fio (tester di I/O flessibile) per il benchmarking e la simulazione del carico di lavoro e specificare un percorso di montaggio per il volume permanente. Per claimName, usare il valore nome valore usato durante la creazione dell'attestazione del volume permanente.

  1. Usare l'editor di testo preferito per creare un file manifesto YAML, ad esempio code acstor-pod.yaml.

  2. Incollare il codice seguente e salvare il file.

    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. Applicare il file manifesto YAML per distribuire il pod.

    kubectl apply -f acstor-pod.yaml
    

    L'output dovrebbe essere simile al seguente:

    pod/fiopod created
    
  4. Verificare che il pod sia in esecuzione e che l'attestazione del volume permanente sia stata associata correttamente al pod:

    kubectl describe pod fiopod
    kubectl describe pvc managedpvc
    
  5. Controllare il test fio per visualizzarne lo stato corrente:

    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
    

È stato ora distribuito un pod che usa SAN di Elastic come risorsa di archiviazione ed è possibile usarlo per i carichi di lavoro Kubernetes.

Gestire volumi permanenti e pool di archiviazione

Dopo aver creato un volume permanente, è possibile scollegarlo e ricollegarlo in base alle esigenze. È anche possibile eliminare un pool di archiviazione.

Scollegare e ricollegare un volume permanente

Per scollegare un volume permanente, eliminare il pod a cui è collegato il volume. Sostituire <pod-name> con il nome del pod, ad esempio fiopod.

kubectl delete pods <pod-name>

Per ricollegare un volume permanente, è sufficiente fare riferimento al nome dell'attestazione del volume permanente nel file manifesto YAML come descritto in Distribuire un pod e collegare un volume permanente.

Per verificare il volume permanente a cui è associata un'attestazione di volume permanente, eseguire kubectl get pvc <persistent-volume-claim-name>.

Eliminare un pool di archiviazione

Se si vuole eliminare un pool di archiviazione, eseguire il comando seguente. Sostituire <storage-pool-name> con il nome per il pool di archiviazione.

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

Vedi anche