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