Compartilhar via


Executar o Azure CycleCloud em uma Instância de Contêiner

Executar o Azure CycleCloud em uma Instância de Contêiner é uma excelente solução para clientes que usam o CycleCloud intermitentemente e desejam desligá-lo entre execuções de trabalho para evitar os custos associados a máquinas virtuais de longa execução.

Pré-requisitos

Você precisará ter o Docker instalado e em execução no computador ou servidor do qual acessará o CycleCloud. Baixe o pacote de instalação apropriado para o sistema operacional e siga as instruções de instalação do Docker.

Imagem de contêiner do CycleCloud

Depois que o Docker estiver configurado e funcionando, você poderá executar o seguinte comando para retirar a imagem de contêiner do CycleCloud do Registro de Contêiner da Microsoft:

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

É isso! O contêiner será iniciado e o CycleCloud estará acessível por meio do navegador da Web em https://localhost. A partir daí, siga os menus de configuração.

Configuração

O contêiner executa aplicativos Web para http (80) e https (443). Como o CycleCloud está executando uma JVM (Máquina Virtual Java), o HeapSize da JVM e a memória alocada para o contêiner devem ser coordenados. É recomendável que o HeapSize seja definido como metade da alocação de memória do contêiner. Use o comando docker run -m com uma variável de ambiente especificada em MB. Por exemplo:

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

Aviso

Se o serviço CycleCloud falhar, o processo de contêiner será encerrado e todos os dados do cluster serão perdidos. Para evitar esse cenário, configure sua instância de contêiner para ser apoiada com armazenamento persistente.

Armazenamento persistente

Se a Instância de Contêiner do Azure falhar, seus dados poderão ser perdidos e a recuperação do estado de execução gerenciado de clusters HPC não seria possível. É altamente recomendável configurar a Instância de Contêiner do Azure a ser apoiada com o armazenamento durável do Compartilhamento de Arquivos do Azure.

Desde que um compartilhamento de arquivos do Azure seja montado, /azurecyclecloudo contêiner do CycleCloud usará o armazenamento durável para:

  • Logs
  • Pontos de recuperação de backup

Para obter uma melhor compreensão do Compartilhamento de Arquivos do Azure, consulte a documentação que demonstra a integração com a Instância de Contêiner do Azure.

No exemplo abaixo, um compartilhamento de armazenamento será montado no /azurecyclecloud e coletará logs e pontos de backup. Com essa configuração, os dados do Azure CycleCloud podem ser recuperados de uma falha ou usados para migrar para hospedagem em outro serviço, como uma Máquina Virtual.

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

Versões compatíveis

As versões com suporte da Imagem de Contêiner do CycleCloud podem ser encontradas na página do dockerhub do produto. A imagem pode ser iniciada como uma instância de Contêiner do Azure (usando o grupo de recursos, o local e os nomes de dns e contêiner preferenciais existentes). O CycleCloud tem a geração de certificadoSL incluída, portanto, se você especificar os argumentos duas vezes (uma vez para a cli az e novamente para definir variáveis de ambiente), o contêiner poderá estabelecer certificados SSL válidos automaticamente.

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

No exemplo acima, o contêiner e a interface do usuário do cyclecloud estarão disponíveis em https://${CIDNSName}.${Location}.azurecontainer.io.

Configuração adicional

O contêiner executa aplicativos Web para http (80) e https (443). Como o CycleCloud está executando uma JVM (Máquina Virtual Java), o HeapSize da JVM e a memória alocada para o contêiner devem ser coordenados. É recomendável que o HeapSize seja definido como metade da alocação de memória do contêiner. Use o comando docker run -m com uma variável de ambiente especificada em MB. Por exemplo:

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