Compartilhar via


Objetos Node e Nodearray

Os objetos node e nodearray são classificados como 2 e subordinados a cluster. Um nó representa uma única Máquina Virtual, enquanto uma nodearray pode representar uma coleção de Máquinas Virtuais ou pelo menos um conjunto de dimensionamento de Máquinas Virtuais.

Padrões de nó

O [[node defaults]] é um nó abstrato especial que especifica a configuração padrão para todos os nós e nós em um cluster:

[cluster my-cluster]
  [[node defaults]]
  Credentials = $Credentials
  SubnetId = my-rg/my-vnet/my-subnet
  MachineType = Standard_D2s_v3

  [[nodearray grid]]
  ImageName = cycle.image.centos6
  MachineType = Standard_H16

O $Credentials é uma referência a um parâmetro chamado "Credenciais".

Em my-cluster, o de grid nodearray herda a Credencial e a SubnetId do nó defaults, mas usa um tamanho de VM HPC específico de Standard_H16.

Exemplo

Este modelo de exemplo cria um cluster com dois nós e um nodearray. O nó proxy usa o IsReturnProxy para definir a função especial de ReturnProxy, que será o ponto de extremidade para um proxy de canal reverso proveniente do CycleCloud quando o cluster for iniciado.

[cluster my-cluster]

  [[node defaults]]
    Credentials = $Credentials
    SubnetId = $SubnetId
    KeyPairLocation = ~/.ssh/cyclecloud.pem
    ImageName = cycle.image.centos7

  [[node proxy]]
    IsReturnProxy = true
    MachineType = Standard_B2

  [[node scheduler]]
    MachineType = Standard_D4s_v3

  [[nodearray execute]]
    MachineType = Standard_D16s_v3

Referência de atributo necessária

Há um mínimo de quatro atributos necessários para iniciar com êxito um nó:

Atributo Tipo Definição
MachineType Corda O tamanho da VM do Azure
SubnetId Corda Definição de sub-rede no formulário ${rg}/${vnet}/${subnet}
Credenciais Corda Nome da conta do Provedor de Nuvem.

O quarto atributo necessário está relacionado a uma imagem. Um atributo de imagem é necessário, mas há várias formas que ele pode tomar – consulte Atributos de Imagem.

Atributos adicionais

Atributo Tipo Definição
ComputerName Corda Nome do computador para VM. Se especificado, substitui o nome gerado pelo sistema.
ComputerNamePrefix Corda Prefixo pré-pendente para nomes de computador gerados pelo sistema
Zona Cadeia de caracteres (lista) Zona de disponibilidade para VM ou VMSS. Pode ser uma lista para VMSS. Por exemplo, Zone = 1,3
KeyPairLocation Inteiro Onde o CycleCloud encontrará um keypair SSH no sistema de arquivos local
KeepAlive Booleano Se for true, o CycleCloud impedirá o encerramento desse nó
Armário Corda Especifique o nome do cofre do qual baixar as especificações do projeto. Consulte Usar projetos
Atributo Tipo Definição
ComputerName Corda Nome do computador para VM. Se especificado, substitui o nome gerado pelo sistema.
ComputerNamePrefix Corda Prefixo pré-pendente para nomes de computador gerados pelo sistema
EfêmeroOSDisk Booleano Usar disco de inicialização efêmero para VM, se houver suporte
Zona Cadeia de caracteres (lista) Zona de disponibilidade para VM ou VMSS. Pode ser uma lista para VMSS. Por exemplo, Zone = 1,3
ProximityPlacementGroupId Corda A ID completa do Grupo de Posicionamento por Proximidade para colocar esse nó. Deve começar com /subscriptions/
PlacementGroupId Corda Se definido, esse rótulo será usado para colocar esse nó em um único grupo de posicionamento com todos os outros nós que têm um valor correspondente para PlacementGroupId. Isso oferece menor comunicação de latência e é necessário para habilitar o InfiniBand em tamanhos de VM que dão suporte a ela. Isso geralmente é definido pelo agendador conforme necessário, portanto, ele não precisa ser especificado manualmente.
KeyPairLocation Inteiro Onde o CycleCloud encontrará um keypair SSH no sistema de arquivos local
KeepAlive Booleano Se for true, o CycleCloud impedirá o encerramento desse nó
Armário Corda Especifique o nome do cofre do qual baixar as especificações do projeto. Consulte Usar projetos
BootDiagnosticsUri Corda URI de armazenamento para diagnóstico de inicialização (exemplo: https://mystorageaccount.blob.core.windows.net/), se especificado. Os encargos de armazenamento serão aplicados.
HybridBenefit Booleano Se verdadeiro, habilita o licenciamento do "Benefício Híbrido do Azure" para VMs windows
EnableTerminateNotification (8.2.0+) Booleano Se for true, permite que encerrar de notificação para enviar eventos na exclusão de VM para a VM para tratamento local. Isso só se aplica a VMs de conjunto de dimensionamento.
TerminateNotificationTimeout (8.2.2+) Tempo Relativo Se a notificação de término estiver habilitada, isso controlará por quanto tempo as VMs são fornecidas para lidar com o evento antes de serem excluídas.
ThrottleCapacity (8.2.2+) Booleano Se for true, essa nodearray relatará 0 capacidade para dimensionadores automáticos por um padrão de 5 minutos após encontrar um problema de capacidade
ThrottleCapacityTime (8.2.2+) Tempo Relativo Se ThrottleCapacity estiver habilitada, será por quanto tempo relatar a disponibilidade 0 após a restrição da capacidade. O padrão é "5m".
HybridBenefitLicense (8.3.0+) Corda Se HybridBenefit for true, isso especifica a licença a ser usada: RHEL_BYOS, SLES_BYOSou Windows_Server. O padrão é Windows_Server.
FlexScaleSetId (8.3.0+) Corda Se definido, essa é a ID totalmente qualificada de um conjunto de dimensionamento no modo de orquestração Flex que é usada para a VM para esse nó.
EncryptionAtHost (8.4.0+) Booleano Se for true, a máquina virtual terá criptografia no host habilitada.
SecurityType (8.5.0+) Corda Define o tipo de segurança ; indefinido, TrustedLaunch ou ConfidentialVM
EnableSecureBoot (8.5.0+) Booleano Habilita de Inicialização Segura, se estiver usando VMs de Inicialização Confiável ou VMs Confidenciais.
EnableVTPM (8.5.0+) Booleano Habilita módulo de plataforma virtual confiável, se estiver usando VMs de inicialização confiáveis ou VMs confidenciais.

Nota

Um Grupo de Posicionamento por Proximidade é um recurso geral do Azure e deve ser criado para que ele possa ser referenciado em um nó. Isso permite que as VMs do CycleCloud sejam agrupadas com outros recursos do Azure nesse grupo de posicionamento por proximidade, mas não habilita a rede InfiniBand. Por outro lado, PlacementGroupId é uma cadeia de caracteres arbitrária no CycleCloud usada para agrupar VMs para nós em um único conjunto de dimensionamento que é restrito a estar sob o mesmo comutador de rede, mas pode não ser agrupado com outros recursos do Azure. Ambos podem ser usados juntos, mas isso pode reduzir o número de VMs que podem ser alocadas.

Atributos de imagem

A imagem da VM é uma configuração necessária para iniciar uma máquina virtual. Há três formas válidas de definição de imagem: nomes de imagem padrão do CycleCloud, definições de imagem do Marketplace e IDs de imagem.

ImageName

O CycleCloud dá suporte a várias imagens padrão do Marketplace que estão disponíveis para diferentes tipos de sistema operacional. Eles podem ser especificados com um ImageName.

Atributo Tipo Definição
ImageName Corda Nome da imagem com suporte para ciclo. cycle.image. [win2016, win2012, centos7, centos6, ubuntu16, ubuntu14]

Imagens do Marketplace

Junto com as Imagens do Marketplace gerenciadas por ciclo, qualquer imagem do marketplace pode ser usada especificando o Publisher, Offer, Sku e ImageVersion.

Atributo Tipo Definição
Azure.Publisher Corda Publicador de imagem do Marketplace de VM
Azure.Offer Corda Oferta para imagem do Marketplace de VM
Azure.Sku Corda SKU da imagem do Marketplace da VM
Azure.ImageVersion Corda Versão de imagem da imagem do Marketplace.

Nota

Uma imagem do Marketplace também pode ser especificada no atributo ImageName, codificado como um URN no formulário Publisher:Offer:Sku:ImageVersion.

Imagens com plano de preços personalizado

Imagens compartilhadas da Galeria de Imagens que têm um plano de preços anexado exigem informações sobre o plano a ser usado, a menos que essas informações sejam armazenadas na imagem da Galeria de Imagens Compartilhadas. Isso é especificado com o atributo ImagePlan usando os atributos aninhados Publisher, Product e Plan.

Nota

Usar imagens personalizadas com um plano de preços requer o CycleCloud 8.0.2 ou posterior.

ImageId

Como alternativa, a ID de recurso de uma imagem de VM na assinatura da Credencial também pode ser usada:

Atributo Tipo Definição
ImageId Corda ID do recurso da imagem da VM

Atributos de imagem

Imagens e imagens do Marketplace definidas por ImageIds precisam de algumas configurações adicionais para configurar corretamente a extensão do sistema operacional CycleCloud:

Atributo Tipo Definição
DownloadJetpack Booleano Se for falso, o CycleCloud não baixará o Jetpack da conta de armazenamento. O Jetpack já deve estar instalado. Observação: há suporte apenas para nós do Linux. O padrão é true. Adicionado em 8.4.1.
InstallJetpack Booleano Se for falso, o CycleCloud não instalará o Jetpack em novas VMs. O padrão é true.
AwaitInstallation Booleano Se for falso, o CycleCloud não aguardará que o Jetpack relate os detalhes da instalação quando a VM for criada. O padrão é true.
JetpackPlatform Corda Plataforma do instalador jetpack a ser usada: centos-7, centos-6, ubuntu-14.04, ubuntu-16.04, windows. Preterido em 7.7.0.

Aviso

Não é recomendável definir InstallJetpack ou AwaitInstallation. Além disso, a configuração DownloadJetpack requer uma imagem personalizada com a versão correta da instalação do Jetpack e só é recomendada para ambientes que estão enfrentando problemas de download de contas de armazenamento.

Nota

ImageId será usado por padrão se várias definições de imagem forem incluídas em uma única definição de nó.

Exemplo de imagem alternativa

Aqui está um modelo de exemplo usando os três constructos de imagem alternativos para os nós:

[cluster image-example]
  [[node defaults]]
    Credentials = $Credentials
    MachineType = Standard_D2_v3
    SubnetId = my-rg/my-vnet/my-subnet

  [[node cycle-image]]
    ImageName = cycle.image.ubuntu16

  [[node my-custom-vm-image]]
    ImageId = /subscriptions/9B16BFF1-879F-4DB3-A55E-8F8AC1E6D461/resourceGroups/my-rg/providers/Microsoft.Compute/images/jetpack-rhel7-1b1e3e93

    # Jetpack already installed on image
    DownloadJetpack = false

  [[node marketplace-vm-image]]
    Azure.Publisher = Canonical
    Azure.Offer = UbuntuServer
    Azure.Sku = 16.04-LTS
    Azure.ImageVersion = latest

  [[node custom-marketplace-vm-image]]
    ImageName = /subscriptions/9B16BFF1-879F-4DB3-A55E-8F8AC1E6D461/resourceGroups/my-rg/providers/Microsoft.Compute/images/jetpack-rhel8-1b1e3e93
    ImagePlan.Name = rhel-lvm8
    ImagePlan.Publisher = redhat
    ImagePlan.Product = rhel-byos

Atributos de rede avançados

Atributo Tipo Definição
IsReturnProxy Booleano Estabeleça o proxy de canal reverso para este nó. Somente um nó por cluster pode ter essa configuração como true.
ReturnPath.Hostname Nome do host Nome do host em que o nó pode chegar ao CycleCloud.
ReturnPath.WebserverPort Inteiro Porta webserver onde o nó pode chegar ao CycleCloud.
ReturnPath.BrokerPort Inteiro Agente em que o nó pode chegar ao CycleCloud.

Tags

O CycleCloud dá suporte à marcação de VMs e VMSS.

Atributo Corda Definição
Tags Corda Use tags.my-tag = my-tag-value para adicionar marcas à implantação, além das marcas atribuídas pelo CycleCloud por padrão.

Atributos regulares/spot

O CycleCloud dá suporte ao uso de VMs spot por meio dos atributos a seguir. Consulte de Máquinas Virtuais spot para obter mais detalhes.

Atributo Corda Definição
Interruptível Booleano Se for true, a VM será uma VM Spot para fornecer preços reduzidos.
MaxPrice Flutuar O preço máximo a ser gasto na VM. (Padrão: -1)

Atributos de Nodearray-Specific

Todos os atributos de um nó são válidos para uma nodearray, mas uma matriz de nós é um recurso elástico para que atributos adicionais estejam disponíveis. Nodearray é um driver para VMSS (VirtualMachine ScaleSets) do Azure e pode ter muitos VMSS de suporte.

Atributo Corda Definição
Azure.AllocationMethod Corda Defina isso como StandAlone para gerenciar VMs individuais ou deixar indefinido para usar o VMSS.
Azure.SingleScaleset Booleano Use um único VMSS para todos os nós (Padrão: false).
Azure.SinglePlacementGroup Booleano Use a configuração de grupo de posicionamento único para o VMSS. (Padrão: false)
Azure.Overprovision Booleano Use o recurso Overprovision do VMSS. O Cyclecloud será definido dinamicamente dependendo do cenário. Essa é uma substituição.
Azure.MaxScaleSetSize Inteiro Limite o número de VMs em uma única VMSS. Depois que esse máximo for atingido, o CycleCloud adicionará VMSS adicional ao cluster. (Padrão: '40')
InitialCount Inteiro Número de nós a serem iniciados quando o cluster for iniciado.
MaxCount Inteiro Para garantir que o cluster nunca exceda 10 nós, você especificaria um valor de 10. Observe que MaxCount e MaxCoreCount podem ser usados juntos, nesse caso, a restrição de menor eficácia entrará em vigor.
InitialCoreCount Inteiro Número de núcleos a serem iniciados quando o cluster for iniciado.
MaxCoreCount Inteiro Para garantir que o cluster nunca exceda 100 núcleos, você especificaria um valor de 100. Observe que MaxCount e MaxCoreCount podem ser usados juntos, nesse caso, a restrição de menor eficácia entrará em vigor.
ShutdownPolicy Corda Indica o que fazer com a VM quando um nó é desligado. Se 'encerrar' a VM for excluída quando o nó for desligado. Se 'desalocar', o nó será interrompido. (Padrão: encerrar)
Atributo Corda Definição
Azure.AllocationMethod Corda Defina isso como StandAlone para gerenciar VMs individuais ou deixar indefinido para usar o VMSS.
Azure.SingleScaleset Booleano Use um único VMSS para todos os nós (Padrão: false).
Azure.SinglePlacementGroup Booleano Use a configuração de grupo de posicionamento único para o VMSS. (Padrão: false)
Azure.Overprovision Booleano Use o recurso Overprovision do VMSS. O Cyclecloud será definido dinamicamente dependendo do cenário. Essa é uma substituição.
Azure.MaxScaleSetSize Inteiro Limite o número de VMs em uma única VMSS. Depois que esse máximo for atingido, o CycleCloud adicionará VMSS adicional ao cluster. (Padrão: '40')
InitialCount Inteiro Número de nós a serem iniciados quando o cluster for iniciado.
MaxCount Inteiro Para garantir que o cluster nunca exceda 10 nós, você especificaria um valor de 10. Observe que MaxCount e MaxCoreCount podem ser usados juntos, nesse caso, a restrição de menor eficácia entrará em vigor.
InitialCoreCount Inteiro Número de núcleos a serem iniciados quando o cluster for iniciado.
MaxCoreCount Inteiro Para garantir que o cluster nunca exceda 100 núcleos, você especificaria um valor de 100. Observe que MaxCount e MaxCoreCount podem ser usados juntos, nesse caso, a restrição de menor eficácia entrará em vigor.
ShutdownPolicy Corda Indica o que fazer com a VM quando um nó é desligado. Se 'encerrar' a VM for excluída quando o nó for desligado. Se 'desalocar', o nó será interrompido. (Padrão: encerrar)
ThrottleCapacity Booleano Se as solicitações serão suspensas para o Azure ao receber Insufficient Capacity sinal. (Padrão: false)
ThrottleCapacityTime Tempo Relativo Tempo de retirada após receber Insufficient Capacity sinal do Azure. AvailableCount serão relatados como zero durante esse tempo. (Padrão: '5m')

Nota

Todas as VMSSs serão atribuídas FaultDomainCount = 1

Herança

Nós e nodearrays que estão intimamente relacionados podem ser derivados de outros nós no mesmo modelo de cluster. Essas definições herdadas minimizam as declarações necessárias ao compartilhar atributos comuns. Comumente usada é a seção [[node defaults]], que é uma definição abstrata especial que se aplica a todos os nós e nodearrays no cluster.

Atributo Corda Definição
Abstrair Booleano Se for true, não crie um nó ou nodearray no cluster. O resumo pode ser usado para herança. (Padrão: false)
Estende Cadeia de caracteres (lista) Lista ordenada de nomes de nó/nodearray herdados. Os itens posteriores na lista têm precedência quando os valores entram em conflito. O nó 'defaults' sempre será efetivamente o primeiro na lista. (Padrão: [])

Objetos subordinados

Os objetos node/nodearray têm de volume, de interface de rede, cluster-init, de ponto de extremidade de entrada e configuração como objetos subordinados.