Objetos Node e Nodearray
Os objetos node e nodearray são rank 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 nodearrays 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".
No my-cluster
, a 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 uma nodearray. O nó proxy usa o IsReturnProxy
para definir a função especial de , que será o ponto de ReturnProxy
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 | Type | Definição |
---|---|---|
MachineType | Cadeia de caracteres | O tamanho da VM do Azure |
SubnetId | Cadeia de caracteres | Definição de sub-rede no formulário ${rg}/${vnet}/${subnet} |
Credencial | Cadeia de caracteres | 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 usar – consulte Atributos de imagem.
Atributos adicionais
Atributo | Type | Definição |
---|---|---|
ComputerName | String | Nome do computador para VM. Se especificado, substitui o nome gerado pelo sistema. |
ComputerNamePrefix | Cadeia de caracteres | Prefixo prefixo 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 | Integer | Onde o CycleCloud encontrará um keypair SSH no sistema de arquivos local |
KeepAlive | Booliano | Se for true, o CycleCloud impedirá o encerramento desse nó |
Armário | Cadeia de caracteres | Especifique o nome do cofre do qual baixar as especificações do projeto. Consulte Usar projetos |
Atributo | Type | Definição |
---|---|---|
ComputerName | String | Nome do computador para VM. Se especificado, substitui o nome gerado pelo sistema. |
ComputerNamePrefix | Cadeia de caracteres | Prefixo prefixo pendente para nomes de computador gerados pelo sistema |
EfêmeroOSDisk | Booliano | 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 | Cadeia de caracteres | A ID completa do Grupo de Posicionamento por Proximidade para colocar esse nó. Deve começar com /subscriptions/ |
PlacementGroupId | Cadeia de caracteres | Se definido, esse rótulo será usado para colocar esse nó em um único grupo de posicionamento com todos os outros nós que tenham 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 para que ele não precise ser especificado manualmente. |
KeyPairLocation | Integer | Onde o CycleCloud encontrará um keypair SSH no sistema de arquivos local |
KeepAlive | Booliano | Se for true, o CycleCloud impedirá o encerramento desse nó |
Armário | Cadeia de caracteres | Especifique o nome do cofre do qual baixar as especificações do projeto. Consulte Usar projetos |
BootDiagnosticsUri | Cadeia de caracteres | 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 | Booliano | Se true, habilita o licenciamento "Benefício Híbrido do Azure" para VMs do Windows |
EnableTerminateNotification (8.2.0+) | Booliano | Se true, habilita a Notificação de Término para enviar eventos na exclusão de VM para a VM para manipulação 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 serão fornecidas para manipular o evento antes de serem excluídas. |
ThrottleCapacity (8.2.2+) | Booliano | 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 habilitado, será por quanto tempo relatar a disponibilidade 0 depois que a capacidade for restrita. O padrão é "5m". |
HybridBenefitLicense (8.3.0+) | Cadeia de caracteres | Se HybridBenefit for true, isso especificará a licença a ser usada: RHEL_BYOS , SLES_BYOS ou Windows_Server . O padrão é Windows_Server . |
FlexScaleSetId (8.3.0+) | Cadeia de caracteres | Se definido, essa é a ID totalmente qualificada de um conjunto de dimensionamento no modo de orquestração Flex que é usado para a VM para esse nó. |
EncryptionAtHost (8.4.0+) | Booliano | Se for true, a máquina virtual terá a Criptografia no Host habilitada. |
SecurityType (8.5.0+) | Cadeia de caracteres | Define o tipo de segurança; indefinido TrustedLaunch ou ConfidentialVM |
EnableSecureBoot (8.5.0+) | Booliano | Habilita a Inicialização Segura, se estiver usando VMs de Início Confiável ou VMs Confidenciais. |
EnableVTPM (8.5.0+) | Booliano | Habilita o Módulo de Plataforma Confiável Virtual, se estiver usando VMs de Início Confiável ou VMs Confidenciais. |
Observação
Um Grupo de Posicionamento por Proximidade é um recurso geral do Azure e deve ser criado antes que ele possa ser referenciado em um nó.
Isso permite que as VMs do CycleCloud sejam colocadas 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 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 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 | Type | Definição |
---|---|---|
ImageName | Cadeia de caracteres | Nome da imagem com suporte para ciclo. cycle.image. [win2016, win2012, centos7, centos6, ubuntu16, ubuntu14] |
Imagens do Marketplace
Juntamente com as Imagens do Marketplace gerenciadas por ciclo, qualquer imagem do marketplace pode ser usada especificando , Publisher
Offer
Sku
e .ImageVersion
Atributo | Type | Definição |
---|---|---|
Azure.Publisher | Cadeia de caracteres | Editor de imagem do Marketplace da VM |
Azure.Offer | Cadeia de caracteres | Oferta para imagem do Marketplace da VM |
Azure.Sku | Cadeia de caracteres | SKU da imagem do Marketplace da VM |
Azure.ImageVersion | Cadeia de caracteres | Versão da imagem da imagem do Marketplace. |
Observação
Uma imagem do Marketplace também pode ser especificada no ImageName
atributo , codificado como um URN no formato Publisher:Offer:Sku:ImageVersion
.
Imagens com plano de preços personalizado
Galeria de Imagens Compartilhadas 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 Galeria de Imagens Compartilhadas. Isso é especificado com o ImagePlan
atributo usando os atributos aninhados Publisher, Product e Plan.
Observação
O uso de 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 | Type | Definição |
---|---|---|
ImageId | Cadeia de caracteres | 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 | Type | Definição |
---|---|---|
DownloadJetpack | Booliano | Se for false, 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 é verdadeiro. Adicionado na versão 8.4.1. |
InstallJetpack | Booliano | Se for false, o CycleCloud não instalará o Jetpack em novas VMs. O padrão é verdadeiro. |
AwaitInstallation | Booliano | Se for false, o CycleCloud não aguardará que o Jetpack relate os detalhes da instalação quando a VM for criada. O padrão é verdadeiro. |
JetpackPlatform | Cadeia de caracteres | Plataforma do instalador jetpack para usar: centos-7 , centos-6 , ubuntu-14.04 , ubuntu-16.04 , windows . Preterido na versão 7.7.0. |
Aviso
A configuração InstallJetpack
ou AwaitInstallation
não é recomendada. 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.
Observação
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 | Type | Definição |
---|---|---|
IsReturnProxy | Booliano | 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 acessar o CycleCloud. |
ReturnPath.WebserverPort | Integer | Porta webserver em que o nó pode acessar o CycleCloud. |
ReturnPath.BrokerPort | Integer | Agente em que o nó pode acessar o CycleCloud. |
Marcações
O CycleCloud dá suporte à marcação de VMs e VMSS.
Atributo | Cadeia de caracteres | Definição |
---|---|---|
Marcas | String | 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 Spot Máquinas Virtuais para obter mais detalhes.
Atributo | Cadeia de caracteres | Definição |
---|---|---|
Interruptível | Booliano | Se for true, a VM será uma VM Spot para fornecer preços reduzidos. |
MaxPrice | Float | O preço máximo a ser gasto na VM. (Padrão: -1) |
Atributos 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 VMSSs de suporte.
Atributo | Cadeia de caracteres | Definição |
---|---|---|
Azure.AllocationMethod | Cadeia de caracteres | Defina isso como StandAlone para gerenciar VMs individuais ou deixar indefinido para usar o VMSS. |
Azure.SingleScaleset | Booliano | Use um único VMSS para todos os nós (Padrão: false). |
Azure.SinglePlacementGroup | Booliano | Use a configuração de grupo de posicionamento único para o VMSS. (Padrão: false) |
Azure.Overprovision | Booliano | Use o recurso Desprovisionamento excessivo do VMSS. O Cyclecloud será definido dinamicamente dependendo do cenário. Essa é uma substituição. |
Azure.MaxScaleSetSize | Integer | 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 | Integer | Número de nós a serem iniciados quando o cluster for iniciado. |
MaxCount | Integer | 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 efetiva mais baixa entrará em vigor. |
InitialCoreCount | Integer | Número de núcleos a serem iniciados quando o cluster é iniciado. |
MaxCoreCount | Integer | 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 efetiva mais baixa entrará em vigor. |
ShutdownPolicy | Cadeia de caracteres | 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 | Cadeia de caracteres | Definição |
---|---|---|
Azure.AllocationMethod | Cadeia de caracteres | Defina isso como StandAlone para gerenciar VMs individuais ou deixar indefinido para usar o VMSS. |
Azure.SingleScaleset | Booliano | Use um único VMSS para todos os nós (Padrão: false). |
Azure.SinglePlacementGroup | Booliano | Use a configuração de grupo de posicionamento único para o VMSS. (Padrão: false) |
Azure.Overprovision | Booliano | Use o recurso Desprovisionamento excessivo do VMSS. O Cyclecloud será definido dinamicamente dependendo do cenário. Essa é uma substituição. |
Azure.MaxScaleSetSize | Integer | 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 | Integer | Número de nós a serem iniciados quando o cluster for iniciado. |
MaxCount | Integer | 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 efetiva mais baixa entrará em vigor. |
InitialCoreCount | Integer | Número de núcleos a serem iniciados quando o cluster é iniciado. |
MaxCoreCount | Integer | 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 efetiva mais baixa entrará em vigor. |
ShutdownPolicy | Cadeia de caracteres | 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 | Booliano | Se as solicitações para o Azure devem ser suspensas ao receber Insufficient Capacity sinal. (Padrão: false) |
ThrottleCapacityTime | Tempo relativo | Tempo de retirada após receber Insufficient Capacity o sinal do Azure. AvailableCount será relatado como zero durante esse período. (Padrão: '5m') |
Observação
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 [[node defaults]]
seção , que é uma definição abstrata especial que se aplica a todos os nós e nodearrays no cluster.
Atributo | Cadeia de caracteres | Definição |
---|---|---|
Resumo | Booliano | Se for true, não crie um nó ou uma nodearray no cluster. O abstrato pode ser usado para herança. (Padrão: false) |
Extends | Cadeia de caracteres (lista) | Lista ordenada de nomes de nó/nodearray herdados. Os itens posteriormente 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 volume, adaptador de rede, cluster-init, ponto de extremidade de entrada e configuração como objetos subordinados.