Partilhar 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 matriz de nós pode representar uma coleção de Máquinas Virtuais ou pelo menos um conjunto de dimensionamento de Máquina Virtual.

Padrões de nó

O [[node defaults]] é um nó abstrato especial que especifica a configuração padrão para todos os nós e matrizes de 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 "Credentials".

No my-cluster, o nodearray grid herda Credential e 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 uma matriz de nós. 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 vindo 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 um nó com êxito:

Atributo Tipo Definição
Tipo de máquina String O tamanho da VM do Azure
SubnetId String Definição de sub-rede na forma ${rg}/${vnet}/${subnet}
Credenciais String 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 assumir - consulte Atributos de imagem.

Atributos adicionais

Atributo Tipo Definição
Nome do Computador String Nome do computador para VM. Se especificado, substitui o nome gerado pelo sistema.
ComputerNamePrefix String Prefixo pré-fixado a nomes de computadores gerados pelo sistema
Zona String (lista) Zona de disponibilidade para VM ou VMSS. Pode ser uma lista para VMSS. Por exemplo, Zone = 1,3
KeyPairLocalização Inteiro Onde o CycleCloud encontrará um par de chaves SSH no sistema de arquivos local
KeepAlive Booleano Se verdadeiro, o CycleCloud impedirá o encerramento deste nó
Cacifo String Especifique o nome do armário do qual baixar as especificações do projeto. Consulte Usar projetos
Atributo Tipo Definição
Nome do Computador String Nome do computador para VM. Se especificado, substitui o nome gerado pelo sistema.
ComputerNamePrefix String Prefixo pré-fixado a nomes de computadores gerados pelo sistema
EphemeralOSDisk Booleano Usar disco de inicialização efêmero para VM, se suportado
Zona String (lista) Zona de disponibilidade para VM ou VMSS. Pode ser uma lista para VMSS. Por exemplo, Zone = 1,3
ProximidadePlacementGroupId String A id completa para o Grupo de Colocação de Proximidade para colocar este nó. Deve começar com /subscriptions/
PlacementGroupId String Se definido, esse rótulo é 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 comunicação de latência mais baixa e é necessário para habilitar a InfiniBand em tamanhos de VM que a suportem. Isso geralmente é definido pelo agendador conforme necessário, portanto, não precisa ser especificado manualmente.
KeyPairLocalização Inteiro Onde o CycleCloud encontrará um par de chaves SSH no sistema de arquivos local
KeepAlive Booleano Se verdadeiro, o CycleCloud impedirá o encerramento deste nó
Cacifo String Especifique o nome do armário do qual baixar as especificações do projeto. Consulte Usar projetos
BootDiagnosticsUri String URI de armazenamento para diagnóstico de inicialização (exemplo: https://mystorageaccount.blob.core.windows.net/), se especificado. Serão aplicadas taxas de armazenamento.
Benefício híbrido Booleano Se verdadeiro, habilita o licenciamento do "Benefício Híbrido do Azure" para VMs do Windows
EnableTerminateNotification (8.2.0+) Booleano Se verdadeiro, permite que de Notificação de Encerramento envie eventos na exclusão da VM para a VM para manipulação local. Isso só se aplica a VMs scaleset.
TerminateNotificationTimeout (8.2.2+) Tempo relativo Se a notificação de encerramento estiver habilitada, isso controlará quanto tempo as VMs recebem para manipular o evento antes de serem excluídas.
Capacidade do acelerador (8.2.2+) Booleano Se verdadeiro, esse nodearray relatará 0 capacidade para autoscalers por um padrão de 5 minutos depois de encontrar um problema de capacidade
ThrottleCapacityTime (8.2.2+) Tempo relativo Se ThrottleCapacity estiver habilitado, esse é o tempo de relatório de disponibilidade 0 depois que a capacidade for restringida. O padrão é "5m".
HybridBenefitLicença (8.3.0+) String Se HybridBenefit for verdadeiro, isso especifica a licença para usar: RHEL_BYOS, SLES_BYOSou Windows_Server. O padrão é Windows_Server.
FlexScaleSetId (8.3.0+) String Se definido, este é o id totalmente qualificado de um conjunto de escalas em de modo de orquestração Flex que é usado para a VM desse nó.
EncryptionAtHost (8.4.0+) Booleano Se verdadeiro, a máquina virtual terá Criptografia no Host habilitada.
SecurityType (8.5.0+) String Define o tipo de segurança ; indefinido, TrustedLaunch ou ConfidentialVM
EnableSecureBoot (8.5.0+) Booleano Habilita Inicialização Segura, se estiver usando VMs de Inicialização Confiável ou VMs Confidenciais.
AtivaçãoVTPM (8.5.0+) Booleano Habilita Virtual Trusted Platform Module, se estiver usando VMs de inicialização confiável ou VMs confidenciais.

Observação

Um Grupo de Posicionamento de Proximidade é um recurso geral do Azure e um deve ser criado antes de poder ser referenciado em um nó. Isso permite que as VMs do CycleCloud sejam colocadas com outros recursos do Azure nesse grupo de posicionamento de 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 escala que é restrito a estar sob o mesmo switch de rede, mas não pode ser colocado com outros recursos do Azure. Ambos podem ser usados juntos, mas isso pode reduzir o número de VMs que podem ser alocadas.

Atributos da imagem

A imagem da VM é uma configuração necessária para iniciar uma máquina virtual. Existem 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.

Nome da imagem

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

Atributo Tipo Definição
Nome da imagem String Nome da imagem suportado por ciclo. ciclo.imagem. [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 String Editor da imagem do VM Marketplace
Azure.Offer String Oferta para imagem do VM Marketplace
Azure.Sku String Sku da imagem do VM Marketplace
Azure.ImageVersion String Imagem Versão da imagem do Marketplace.

Observação

Uma imagem do Marketplace também pode ser especificada no atributo ImageName, codificada como uma URN na forma Publisher:Offer:Sku:ImageVersion.

Imagens com plano de preços personalizado

As imagens da Galeria de Imagens Compartilhadas 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 Publicador, Produto e Plano.

Observação

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

ImageId

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

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

Atributos da imagem

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

Atributo Tipo Definição
BaixarJetpack Booleano Se false, o CycleCloud não baixará o Jetpack da conta de armazenamento. O Jetpack já deve estar instalado. Nota: apenas nós Linux são suportados. O padrão é true. Acrescentado no ponto 8.4.1.
InstallJetpack Booleano Se false, o CycleCloud não instalará o Jetpack em novas VMs. O padrão é true.
AwaitInstallation Booleano Se false, o CycleCloud não esperará que o Jetpack relate os detalhes da instalação quando a VM for criada. O padrão é true.
Plataforma Jetpack String Plataforma de instalação Jetpack para usar: centos-7, centos-6, ubuntu-14.04, ubuntu-16.04, windows. Preterido na versão 7.7.0.

Advertência

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 ao baixar de contas de armazenamento.

Observação

ImageId é 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 as três construções de imagem alternativas 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 avançados de rede

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

Etiquetas

O CycleCloud suporta a marcação de VMs e VMSS.

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

Atributos Regulares/Spot

O CycleCloud suporta o uso de VMs spot através dos seguintes atributos. Consulte Spot Virtual Machines para obter mais detalhes.

Atributo String Definição
Interruptível Booleano Se verdadeiro, a VM será uma VM spot para fornecer preços reduzidos.
Preço Máximo Flutuador O preço máximo para gastar na VM. (Padrão: -1)

Nodearray-Specific Atributos

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

Atributo String Definição
Azure.AllocationMethod String Defina isso como StandAlone gerenciar VMs únicas 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. Trata-se de uma substituição.
Azure.MaxScaleSetSize Inteiro Limite o número de VMs em um único VMSS. Quando esse máximo for atingido, o CycleCloud adicionará VMSS adicional ao cluster. (Padrão: '40')
Contagem inicial Inteiro Número de nós a serem iniciados quando o cluster é iniciado.
Contagem máxima Inteiro Para garantir que o cluster nunca exceda 10 nós, especifique um valor de 10. Observe que MaxCount e MaxCoreCount podem ser usados juntos, caso em que a restrição efetiva menor entrará em vigor.
InitialCoreCount Inteiro Número de núcleos a serem iniciados quando o cluster é iniciado.
MaxCoreCount Inteiro Para garantir que o cluster nunca exceda 100 núcleos, especifique um valor de 100. Observe que MaxCount e MaxCoreCount podem ser usados juntos, caso em que a restrição efetiva menor entrará em vigor.
Política de desligamento String Indica o que fazer com a VM quando um nó é desligado. Se 'terminar', a VM será excluída quando o nó for desligado. Se 'deslocalizar', o nó é interrompido. (Padrão: encerrar)
Atributo String Definição
Azure.AllocationMethod String Defina isso como StandAlone gerenciar VMs únicas 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. Trata-se de uma substituição.
Azure.MaxScaleSetSize Inteiro Limite o número de VMs em um único VMSS. Quando esse máximo for atingido, o CycleCloud adicionará VMSS adicional ao cluster. (Padrão: '40')
Contagem inicial Inteiro Número de nós a serem iniciados quando o cluster é iniciado.
Contagem máxima Inteiro Para garantir que o cluster nunca exceda 10 nós, especifique um valor de 10. Observe que MaxCount e MaxCoreCount podem ser usados juntos, caso em que a restrição efetiva menor entrará em vigor.
InitialCoreCount Inteiro Número de núcleos a serem iniciados quando o cluster é iniciado.
MaxCoreCount Inteiro Para garantir que o cluster nunca exceda 100 núcleos, especifique um valor de 100. Observe que MaxCount e MaxCoreCount podem ser usados juntos, caso em que a restrição efetiva menor entrará em vigor.
Política de desligamento String Indica o que fazer com a VM quando um nó é desligado. Se 'terminar', a VM será excluída quando o nó for desligado. Se 'deslocalizar', o nó é interrompido. (Padrão: encerrar)
Capacidade do acelerador Booleano Se as solicitações para o Azure devem ser suspensas ao receber Insufficient Capacity sinal. (Padrão: false)
ThrottleCapacityTime Tempo relativo Tempo de recuo após receber Insufficient Capacity sinal do Azure. AvailableCount serão reportados como zero durante este período. (Padrão: '5m')

Observação

Todos os VMSSs serão atribuídos FaultDomainCount = 1

Herança

Nós e matrizes de nós 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 matrizes de nós no cluster.

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

Objetos subordinados

Os objetos node/nodearray têm de volume, de interface de rede, cluster-init, input-endpointe configuração como objetos subordinados.