Oggetti Node e Nodearray
Gli oggetti Node e nodearray sono classificati 2 e subordinati a cluster
. Un nodo rappresenta una singola macchina virtuale, mentre un nodearray può rappresentare una raccolta di macchine virtuali o almeno un set di scalabilità di macchine virtuali.
Valori predefiniti del nodo
Il [[node defaults]]
è un nodo astratto speciale che specifica l'impostazione predefinita per tutti i nodi e i nodearray in un 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
Il $Credentials
è un riferimento a un parametro denominato "Credentials".
In my-cluster
, l'nodearray grid
eredita Credential e SubnetId dal nodo defaults
, ma usa una dimensione di macchina virtuale HPC specifica di Standard_H16
.
Esempio
Questo modello di esempio crea un cluster con due nodi e un oggetto nodearray. Il nodo proxy usa il IsReturnProxy
per definire il ruolo speciale di ReturnProxy
, che sarà l'endpoint per un proxy di canale inverso proveniente da CycleCloud all'avvio del cluster.
[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
Informazioni di riferimento sugli attributi obbligatori
Per avviare correttamente un nodo sono necessari almeno quattro attributi:
Attributo | Digitare | Definizione |
---|---|---|
MachineType | Corda | Dimensioni della macchina virtuale di Azure |
SubnetId | Corda | Definizione della subnet nel formato ${rg}/${vnet}/${subnet} |
Credenziali | Corda | Nome dell'account Cloud Provider. |
Il quarto attributo obbligatorio è correlato a un'immagine. È necessario un attributo immagine, ma esistono diversi formati che possono essere accettati. Vedere Attributi immagine.
Attributi aggiuntivi
Attributo | Digitare | Definizione |
---|---|---|
ComputerName | Corda | Nome computer per la macchina virtuale. Se specificato, esegue l'override del nome generato dal sistema. |
ComputerNamePrefix | Corda | Prefisso preceduto dai nomi computer generati dal sistema |
Zona | Stringa (elenco) | Zona di disponibilità per vm o set di scalabilità di macchine virtuali. Può essere un elenco per il set di scalabilità di macchine virtuali. Ad esempio, Zone = 1,3 |
KeyPairLocation | Numero intero | Dove CycleCloud troverà una coppia di chiavi SSH nel file system locale |
KeepAlive | Booleano | Se true, CycleCloud impedirà la chiusura di questo nodo |
Armadietto | Corda | Specificare il nome della casella di sicurezza da cui scaricare le specifiche del progetto. Vedere Usare progetti |
Attributo | Digitare | Definizione |
---|---|---|
ComputerName | Corda | Nome computer per la macchina virtuale. Se specificato, esegue l'override del nome generato dal sistema. |
ComputerNamePrefix | Corda | Prefisso preceduto dai nomi computer generati dal sistema |
EphemeralOSDisk | Booleano | Usare il disco di avvio temporaneo per la macchina virtuale, se supportato |
Zona | Stringa (elenco) | Zona di disponibilità per vm o set di scalabilità di macchine virtuali. Può essere un elenco per il set di scalabilità di macchine virtuali. Ad esempio, Zone = 1,3 |
ProximityPlacementGroupId | Corda | ID completo per il gruppo di posizionamento di prossimità in cui inserire questo nodo. Deve iniziare con /subscriptions/ |
PlacementGroupId | Corda | Se impostata, questa etichetta viene usata per inserire questo nodo in un singolo gruppo di posizionamento con tutti gli altri nodi con un valore corrispondente per PlacementGroupId. Ciò offre una comunicazione di latenza inferiore ed è necessaria per abilitare InfiniBand nelle dimensioni delle macchine virtuali che lo supportano. Questa impostazione viene in genere impostata dall'utilità di pianificazione in base alle esigenze, pertanto non è necessario specificare manualmente. |
KeyPairLocation | Numero intero | Dove CycleCloud troverà una coppia di chiavi SSH nel file system locale |
KeepAlive | Booleano | Se true, CycleCloud impedirà la chiusura di questo nodo |
Armadietto | Corda | Specificare il nome della casella di sicurezza da cui scaricare le specifiche del progetto. Vedere Usare progetti |
BootDiagnosticsUri | Corda | URI di archiviazione per la diagnostica di avvio (ad esempio: https://mystorageaccount.blob.core.windows.net/), se specificato. Verranno applicati addebiti per l'archiviazione. |
HybridBenefit | Booleano | Se true, abilita le licenze "Vantaggio Azure Hybrid" per le macchine virtuali Windows |
EnableTerminateNotification (8.2.0+) | Booleano | Se true, abilita Termina notifica inviare eventi all'eliminazione della macchina virtuale alla macchina virtuale per la gestione locale. Questo vale solo per le macchine virtuali del set di scalabilità. |
TerminateNotificationTimeout (8.2.2+) | Tempo relativo | Se la notifica di terminazione è abilitata, questo controlla per quanto tempo vengono date le macchine virtuali per gestire l'evento prima dell'eliminazione. |
ThrottleCapacity (8.2.2+) | Booleano | Se true, questo nodearray segnala 0 capacità ai ridimensionatori automatici per un valore predefinito di 5 minuti dopo aver riscontrato un problema di capacità |
ThrottleCapacityTime (8.2.2+) | Tempo relativo | Se ThrottleCapacity è abilitato, questo è il tempo per segnalare la disponibilità 0 dopo che la capacità è vincolata. Il valore predefinito è "5m". |
HybridBenefitLicense (8.3.0+) | Corda | Se HybridBenefit è true, specifica la licenza da usare: RHEL_BYOS , SLES_BYOS o Windows_Server . Il valore predefinito è Windows_Server . |
FlexScaleSetId (8.3.0+) | Corda | Se impostato, si tratta dell'ID completo di un set di scalabilità in modalità di orchestrazione Flex usato per la macchina virtuale per questo nodo. |
EncryptionAtHost (8.4.0+) | Booleano | Se true, la macchina virtuale avrà encryption at host abilitata. |
SecurityType (8.5.0+) | Corda | Imposta il tipo di sicurezza ; non definito, TrustedLaunch o ConfidentialVM |
EnableSecureBoot (8.5.0+) | Booleano | Abilita avvio protetto, se si usano macchine virtuali di avvio trusted o macchine virtuali riservate. |
EnableVTPM (8.5.0+) | Booleano | Abilita Virtual Trusted Platform Module, se si usano macchine virtuali di avvio attendibile o macchine virtuali riservate. |
Nota
Un gruppo di posizionamento di prossimità è una funzionalità di Azure generale ed è necessario crearne una prima di poter fare riferimento a un nodo.
In questo modo le macchine virtuali CycleCloud possono essere collocate con altre risorse di Azure in tale gruppo di posizionamento di prossimità, ma non abilita la rete InfiniBand.
Al contrario, PlacementGroupId
è una stringa arbitraria in CycleCloud usata per raggruppare le macchine virtuali per i nodi in un singolo set di scalabilità vincolato allo stesso commutatore di rete, ma potrebbe non essere collocato con altre risorse di Azure.
Possono essere usati insieme, ma ciò può ridurre il numero di macchine virtuali che possono essere allocate.
Attributi immagine
L'immagine della macchina virtuale è un'impostazione necessaria per avviare una macchina virtuale. Esistono tre forme valide di definizione dell'immagine: nomi di immagini CycleCloud predefiniti, definizioni di immagini del Marketplace e ID immagine.
ImageName
CycleCloud supporta diverse immagini del Marketplace predefinite disponibili per diverse versioni del sistema operativo. Questi valori possono essere specificati con un ImageName
.
Attributo | Digitare | Definizione |
---|---|---|
ImageName | Corda | Nome immagine supportato dal ciclo. cycle.image. [win2016, win2012, centos7, centos6, ubuntu16, ubuntu14] |
Immagini del Marketplace
Insieme alle immagini del Marketplace gestite dal ciclo, qualsiasi immagine del marketplace può essere usata specificando il Publisher
, Offer
, Sku
e ImageVersion
.
Attributo | Digitare | Definizione |
---|---|---|
Azure.Publisher | Corda | Immagine del Marketplace della macchina virtuale |
Azure.Offer | Corda | Offerta per l'immagine del Marketplace delle macchine virtuali |
Azure.Sku | Corda | Sku dell'immagine del Marketplace della macchina virtuale |
Azure.ImageVersion | Corda | Versione immagine dell'immagine del Marketplace. |
Nota
Un'immagine del Marketplace può essere specificata anche nell'attributo ImageName
, codificato come URN nel formato Publisher:Offer:Sku:ImageVersion
.
Immagini con piano tariffario personalizzato
Le immagini della raccolta immagini condivise con un piano tariffario associato richiedono informazioni sul piano da usare, a meno che tali informazioni non vengano archiviate nell'immagine raccolta immagini condivise. Specificato con l'attributo ImagePlan
utilizzando gli attributi annidati Publisher, Product e Plan.
Nota
L'uso di immagini personalizzate con un piano tariffario richiede CycleCloud 8.0.2 o versione successiva.
ImageId
In alternativa, è anche possibile usare l'ID risorsa di un'immagine di macchina virtuale nella sottoscrizione delle credenziali:
Attributo | Digitare | Definizione |
---|---|---|
ImageId | Corda | ID risorsa dell'immagine della macchina virtuale |
Attributi immagine
Le immagini e le immagini del Marketplace definite da ImageIds richiedono alcune impostazioni aggiuntive per configurare correttamente l'estensione del sistema operativo CycleCloud:
Attributo | Digitare | Definizione |
---|---|---|
DownloadJetpack | Booleano | Se false, CycleCloud non scaricherà Jetpack dall'account di archiviazione. Jetpack deve essere già installato. Nota: sono supportati solo i nodi Linux. Il valore predefinito è true. Aggiunta nella versione 8.4.1. |
InstallJetpack | Booleano | Se false, CycleCloud non installerà Jetpack nelle nuove macchine virtuali. Il valore predefinito è true. |
AwaitInstallation | Booleano | Se false, CycleCloud non attenderà che Jetpack visualizzi i dettagli di installazione al momento della creazione della macchina virtuale. Il valore predefinito è true. |
JetpackPlatform | Corda | Piattaforma del programma di installazione jetpack da usare: centos-7 , centos-6 , ubuntu-14.04 , ubuntu-16.04 , windows . Deprecato nella versione 7.7.0. |
Avvertimento
Non è consigliabile impostare InstallJetpack
o AwaitInstallation
. Inoltre, l'impostazione di DownloadJetpack
richiede un'immagine personalizzata con la versione corretta dell'installazione di Jetpack ed è consigliata solo per gli ambienti che riscontrano problemi durante il download dagli account di archiviazione.
Nota
ImageId
viene usato per impostazione predefinita se più definizioni di immagine sono incluse in una singola definizione di nodo.
Esempio di immagine alternativa
Di seguito è riportato un modello di esempio che usa i tre costrutti di immagine alternativi per i nodi:
[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
Attributi di rete avanzati
Attributo | Digitare | Definizione |
---|---|---|
IsReturnProxy | Booleano | Stabilire il proxy del canale inverso a questo nodo. Questa impostazione può essere impostata su true per un solo nodo per ogni cluster. |
ReturnPath.Hostname | Nome host | Nome host in cui il nodo può raggiungere CycleCloud. |
ReturnPath.WebserverPort | Numero intero | Porta del server Web in cui il nodo può raggiungere CycleCloud. |
ReturnPath.BrokerPort | Numero intero | Broker in cui il nodo può raggiungere CycleCloud. |
Tag
CycleCloud supporta l'assegnazione di tag alle macchine virtuali e ai set di scalabilità di macchine virtuali.
Attributo | Corda | Definizione |
---|---|---|
Tag | Corda | Usa tags.my-tag = my-tag-value per aggiungere tag alla distribuzione oltre ai tag assegnati da CycleCloud per impostazione predefinita. |
Attributi regolari/spot
CycleCloud supporta l'uso di macchine virtuali spot tramite gli attributi seguenti. Per altre informazioni, vedere spot delle macchine virtuali.
Attributo | Corda | Definizione |
---|---|---|
Interrompibile | Booleano | Se true, la macchina virtuale sarà una macchina virtuale spot per offrire prezzi ridotti. |
MaxPrice | Galleggiare | Prezzo massimo da spendere per la macchina virtuale. (Impostazione predefinita: -1) |
attributi Nodearray-Specific
Tutti gli attributi per un nodo sono validi per un nodearray, ma una matrice di nodi è una risorsa elastica in modo che siano disponibili attributi aggiuntivi. Nodearray è un driver per i set di scalabilità di macchine virtuali di Azure e può avere molti set di scalabilità di macchine virtuali di backup.
Attributo | Corda | Definizione |
---|---|---|
Azure.AllocationMethod | Corda | Impostare questa opzione su StandAlone per gestire singole macchine virtuali o lasciare non definita l'uso del set di scalabilità di macchine virtuali. |
Azure.SingleScaleset | Booleano | Usare un singolo set di scalabilità di macchine virtuali per tutti i nodi (impostazione predefinita: false). |
Azure.SinglePlacementGroup | Booleano | Usare l'impostazione del gruppo di posizionamento singolo per il set di scalabilità di macchine virtuali. (Impostazione predefinita: false) |
Azure.Overprovision | Booleano | Usare la funzionalità Di overprovisioning del set di scalabilità di macchine virtuali. Cyclecloud verrà impostato dinamicamente a seconda dello scenario. Si tratta di un override. |
Azure.MaxScaleSetSize | Numero intero | Limitare il numero di macchine virtuali in un singolo set di scalabilità di macchine virtuali. Una volta raggiunto questo valore massimo, CycleCloud aggiungerà altri set di scalabilità di macchine virtuali al cluster. (Impostazione predefinita: '40') |
InitialCount | Numero intero | Numero di nodi da avviare all'avvio del cluster. |
MaxCount | Numero intero | Per assicurarsi che il cluster non superi mai 10 nodi, specificare un valore pari a 10. Si noti che MaxCount e MaxCoreCount possono essere usati insieme, nel qual caso il vincolo effettivo inferiore avrà effetto. |
InitialCoreCount | Numero intero | Numero di core da avviare all'avvio del cluster. |
MaxCoreCount | Numero intero | Per assicurarsi che il cluster non superi mai 100 core, è necessario specificare un valore pari a 100. Si noti che MaxCount e MaxCoreCount possono essere usati insieme, nel qual caso il vincolo effettivo inferiore avrà effetto. |
ShutdownPolicy | Corda | Indica cosa fare con la macchina virtuale quando un nodo viene arrestato. Se 'terminate' la macchina virtuale viene eliminata quando il nodo viene arrestato. Se "deallocate", il nodo viene invece arrestato. (Impostazione predefinita: termina) |
Attributo | Corda | Definizione |
---|---|---|
Azure.AllocationMethod | Corda | Impostare questa opzione su StandAlone per gestire singole macchine virtuali o lasciare non definita l'uso del set di scalabilità di macchine virtuali. |
Azure.SingleScaleset | Booleano | Usare un singolo set di scalabilità di macchine virtuali per tutti i nodi (impostazione predefinita: false). |
Azure.SinglePlacementGroup | Booleano | Usare l'impostazione del gruppo di posizionamento singolo per il set di scalabilità di macchine virtuali. (Impostazione predefinita: false) |
Azure.Overprovision | Booleano | Usare la funzionalità Di overprovisioning del set di scalabilità di macchine virtuali. Cyclecloud verrà impostato dinamicamente a seconda dello scenario. Si tratta di un override. |
Azure.MaxScaleSetSize | Numero intero | Limitare il numero di macchine virtuali in un singolo set di scalabilità di macchine virtuali. Una volta raggiunto questo valore massimo, CycleCloud aggiungerà altri set di scalabilità di macchine virtuali al cluster. (Impostazione predefinita: '40') |
InitialCount | Numero intero | Numero di nodi da avviare all'avvio del cluster. |
MaxCount | Numero intero | Per assicurarsi che il cluster non superi mai 10 nodi, specificare un valore pari a 10. Si noti che MaxCount e MaxCoreCount possono essere usati insieme, nel qual caso il vincolo effettivo inferiore avrà effetto. |
InitialCoreCount | Numero intero | Numero di core da avviare all'avvio del cluster. |
MaxCoreCount | Numero intero | Per assicurarsi che il cluster non superi mai 100 core, è necessario specificare un valore pari a 100. Si noti che MaxCount e MaxCoreCount possono essere usati insieme, nel qual caso il vincolo effettivo inferiore avrà effetto. |
ShutdownPolicy | Corda | Indica cosa fare con la macchina virtuale quando un nodo viene arrestato. Se 'terminate' la macchina virtuale viene eliminata quando il nodo viene arrestato. Se "deallocate", il nodo viene invece arrestato. (Impostazione predefinita: termina) |
ThrottleCapacity | Booleano | Indica se sospendere le richieste ad Azure quando si riceve Insufficient Capacity segnale. (Impostazione predefinita: false) |
ThrottleCapacityTime | Tempo relativo | Tempo di backoff dopo aver ricevuto Insufficient Capacity segnale da Azure.
AvailableCount verrà segnalato come zero durante questo periodo. (Impostazione predefinita: '5m') |
Nota
Tutti i set di scalabilità di macchine virtuali verranno assegnati FaultDomainCount = 1
Eredità
I nodi e i nodearray strettamente correlati possono essere derivati da altri nodi nello stesso modello di cluster.
Queste definizioni ereditate riducono al minimo le dichiarazioni necessarie condividendo attributi comuni. Comunemente usata è la sezione [[node defaults]]
, che è una definizione astratta speciale che si applica a tutti i nodi e nodearray nel cluster.
Attributo | Corda | Definizione |
---|---|---|
Astratto | Booleano | Se true, non creare un nodo o un oggetto nodearray nel cluster. L'astrazione può essere utilizzata per l'ereditarietà. (Impostazione predefinita: false) |
Si estende | Stringa (elenco) | Elenco ordinato di nomi node/nodearray ereditati. Gli elementi più avanti nell'elenco hanno la precedenza quando i valori sono in conflitto. Il nodo 'defaults' sarà sempre il primo nell'elenco. (Impostazione predefinita: []) |
Oggetti subordinati
Gli oggetti node/nodearray hanno volume, interfaccia di rete, cluster-init, endpoint di inpute configurazione come oggetti subordinati.