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å /azurecyclecloud
anvä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