Dela via


Köra Azure CycleCloud i en containerinstans

Att köra Azure CycleCloud i en containerinstans är en utmärkt lösning för kunder som använder CycleCloud tillfälligt och vill stänga av det mellan jobbkörningar för att undvika kostnaderna för långvariga virtuella datorer.

Förutsättningar

Du måste ha Docker installerat och körs på den dator eller server som du kommer åt CycleCloud från. Ladda ned lämpligt installationspaket för operativsystemet och följ Docker-installationsanvisningarna.

CycleCloud-containeravbildning

När Docker har konfigurerats och fungerar kan du köra följande kommando för att hämta CycleCloud-containeravbildningen från Microsofts Container Registry:

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

Klart! Containern startas och CycleCloud kommer att vara tillgänglig via webbläsaren på https://localhost. Därifrån följer du konfigurationsmenyerna.

Konfiguration

Containern kör webbprogram för http (80) och https (443). Eftersom CycleCloud kör en JVM (Java Virtual Machine) ska heapSize för JVM och det tilldelade minnet till containern samordnas. Vi rekommenderar att HeapSize anges till hälften av containerns minnesallokering. Använd kommandot docker run -m med en miljövariabel som anges i MB. Ett exempel:

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

Varning

Om CycleCloud-tjänsten misslyckas avslutas containerprocessen och alla klusterdata går förlorade. För att undvika det här scenariot konfigurerar du containerinstansen så att den säkerhetskopieras med beständig lagring.

Beständig lagring

Om Azure Container Instance skulle misslyckas kan dina data gå förlorade och det går inte att återställa det hanterade körningstillståndet för dina HPC-kluster. Vi rekommenderar starkt att du konfigurerar Azure Container Instance så att den backas upp med beständig lagring från Azure-filresursen.

Förutsatt att en Azure-filresurs monteras på /azurecyclecloudanvänder CycleCloud-containern beständig lagring för:

  • Loggar
  • Säkerhetskopiera återställningspunkter

En bättre förståelse för Azure-filresursen finns i dokumentationen som visar integreringen med Azure Container Instance.

I exemplet nedan monteras en lagringsresurs på /azurecyclecloud och samlar in loggar och säkerhetskopieringspunkter. Med den här konfigurationen kan Azure CycleCloud-data återställas från fel eller användas för att migrera till värdtjänster i en annan tjänst, till exempel en virtuell dator.

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

Versioner som stöds

Versioner som stöds av CycleCloud Container Image finns på produktsidan för dockerhub. Avbildningen kan startas som en Azure Container-instans (med hjälp av befintlig resursgrupp, plats och önskade container- och DNS-namn). CycleCloud har SSL-certifikatgenereringen inkluderad, så om du anger argumenten två gånger (en gång för az cli och igen för att ange miljövariabler) kan containern upprätta giltiga SSL-certifikat automatiskt.

#!/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

I exemplet ovan är containern och cyclecloud-användargränssnittet tillgängliga på https://${CIDNSName}.${Location}.azurecontainer.io.

Ytterligare konfiguration

Containern kör webbprogram för http (80) och https (443). Eftersom CycleCloud kör en JVM (Java Virtual Machine) ska heapSize för JVM och det tilldelade minnet till containern samordnas. Vi rekommenderar att HeapSize anges till hälften av containerns minnesallokering. Använd kommandot docker run -m med en miljövariabel som anges i MB. Ett exempel:

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