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_BYOS ou 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.