Condividi tramite


Eseguire Azure CycleCloud in un'istanza di contenitore

L'esecuzione di Azure CycleCloud in un'istanza di contenitore è una soluzione eccellente per i clienti che usano CycleCloud in modo intermittente e desiderano arrestarla tra le esecuzioni del processo per evitare i costi associati alle macchine virtuali a esecuzione prolungata.

Prerequisiti

Sarà necessario che Docker sia installato e in esecuzione nel computer o nel server da cui si accederà a CycleCloud. Scaricare il pacchetto di installazione appropriato per il sistema operativo e seguire le istruzioni di installazione di Docker.

Immagine del contenitore CycleCloud

Dopo aver configurato e funzionante Docker, è possibile eseguire il comando seguente per eseguire il pull dell'immagine del contenitore CycleCloud dal Registro Contenitori di Microsoft:

docker run mcr.microsoft.com/hpc/azure-cyclecloud

Questo è tutto. Il contenitore verrà avviato e CycleCloud sarà accessibile tramite il Web browser all'indirizzo https://localhost. Da qui, seguire i menu di configurazione.

Configurazione

Il contenitore esegue applicazioni Web per http (80) e https (443). Poiché CycleCloud esegue una JVM (Java Virtual Machine), l'HeapSize della JVM e la memoria allocata al contenitore devono essere coordinate. È consigliabile impostare HeapSize su una metà dell'allocazione di memoria del contenitore. Usare il comando docker run -m con una variabile di ambiente specificata in MB. Ad esempio:

docker run -m 2G -e "JAVA_HEAP_SIZE=1024" -p 8080:80 -p 8443:443 myrepo/cyclecloud:$ver

Avviso

Se il servizio CycleCloud ha esito negativo, il processo del contenitore verrà terminato e tutti i dati del cluster andranno persi. Per evitare questo scenario, configurare l'istanza del contenitore per il backup con l'archiviazione permanente.

Archiviazione permanente

Se l'istanza di Azure Container non riesce, i dati potrebbero andare persi e ripristinare lo stato di esecuzione gestito dei cluster HPC non sarebbe possibile. È consigliabile configurare l'istanza di Azure Container per il backup con l'archiviazione durevole da Condivisione file di Azure.

A condizione che una condivisione file di Azure sia montata in /azurecyclecloud, il contenitore CycleCloud userà l'archiviazione durevole per:

  • Log
  • Punti di ripristino di backup

Per una migliore comprensione della condivisione file di Azure, vedere la documentazione che illustra l'integrazione con l'istanza di Azure Container.

Nell'esempio seguente una condivisione di archiviazione verrà montata in /azurecyclecloud e raccoglierà log e punti di backup. Con questa configurazione, i dati di Azure CycleCloud possono essere recuperati da un errore o usati per eseguire la migrazione all'hosting in un altro servizio, ad esempio una macchina virtuale.

az container create \
  --resource-group ${ResourceGroup} \
  --location ${Location} \
  --name ${Name} \
  --dns-name-label ${DNSName} \
  --image mcr.microsoft.com/hpc/azure-cyclecloud \
  --ip-address public \
  --ports 80 443 \
  --cpu 2 \
  --memory 4 \
  -e JAVA_HEAP_SIZE=2048 \
  --azure-file-volume-account-name ${STORAGE_ACCOUNT_NAME} \
  --azure-file-volume-account-key ${STORAGE_KEY} \
  --azure-file-volume-share-name ${SHARE_NAME} \
  --azure-file-volume-mount-path /azurecyclecloud

Versioni supportate

Le versioni supportate dell'immagine contenitore CycleCloud sono disponibili nella pagina dockerhub del prodotto. L'immagine può essere avviata come istanza di Azure Container (usando un gruppo di risorse, una posizione e nomi DNS e contenitori preferiti esistenti). CycleCloud include la generazione di certificati SSL, quindi se si specificano due volte gli argomenti (una volta per az cli e di nuovo per impostare le variabili di ambiente), il contenitore è in grado di stabilire automaticamente certificati SSL validi.

#!/bin/bash
ResourceGroup="rg-name"
Location="westus2"
CIName="ci-name"
CIDNSName="ci-name"

az container create -g ${ResourceGroup} \
  --location ${Location} \
  --name ${CIName} \
  --dns-name-label ${CIDNSName} \
  --image mcr.microsoft.com/hpc/azure-cyclecloud \
  --ip-address public \
  --ports 80 443 \
  --cpu 2 --memory 4 \
  -e JAVA_HEAP_SIZE=2048

Nell'esempio precedente il contenitore e l'interfaccia utente cyclecloud saranno disponibili all'indirizzo https://${CIDNSName}.${Location}.azurecontainer.io.

Configurazione aggiuntiva

Il contenitore esegue applicazioni Web per http (80) e https (443). Poiché CycleCloud esegue una JVM (Java Virtual Machine), l'HeapSize della JVM e la memoria allocata al contenitore devono essere coordinate. È consigliabile impostare HeapSize su una metà dell'allocazione di memoria del contenitore. Usare il comando docker run -m con una variabile di ambiente specificata in MB. Ad esempio:

docker run -m 2G -e "JAVA_HEAP_SIZE=1024" -p 8080:80 -p 8443:443 mcr.microsoft.com/hpc/azure-cyclecloud