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
[[node defaults]]
è un nodo astratto speciale che specifica l'impostazione predefinita per tutti i nodi e 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
$Credentials
è un riferimento a un parametro denominato "Credentials".
In my-cluster
nodearray grid
eredita le credenziali e il SubnetId dal nodo defaults
, ma usa una dimensione specifica della macchina virtuale HPC di Standard_H16
.
Esempio
Questo modello di esempio crea un cluster con due nodi e un nodearray. Il nodo proxy usa per IsReturnProxy
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 | Type | Definizione |
---|---|---|
MachineType | string | Dimensioni della macchina virtuale di Azure |
SubnetId | string | Definizione di subnet nel formato ${rg}/${vnet}/${subnet} |
Titolo | string | Nome dell'account Cloud Provider. |
Il quarto attributo obbligatorio è correlato a un'immagine. È necessario un attributo di immagine, ma possono essere necessari diversi moduli. Vedere Attributi immagine.
Attributi aggiuntivi
Attributo | Type | Definizione |
---|---|---|
NomeComputer | string | Nome computer per la macchina virtuale. Se specificato, esegue l'override del nome generato dal sistema. |
ComputerNamePrefix | string | Prefisso preceduto da un prefisso per i nomi di computer generati dal sistema |
Zona | Stringa (elenco) | Zona di disponibilità per macchine virtuali 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 | Integer | Dove CycleCloud troverà una coppia di chiavi SSH nel file system locale |
KeepAlive | Boolean | Se true, CycleCloud impedirà la chiusura di questo nodo |
Armadietto | string | Specificare il nome della casella di sicurezza da cui scaricare le specifiche del progetto. Vedere Usare progetti |
Attributo | Type | Definizione |
---|---|---|
NomeComputer | string | Nome computer per la macchina virtuale. Se specificato, esegue l'override del nome generato dal sistema. |
ComputerNamePrefix | string | Prefisso preceduto da un prefisso per i nomi di computer generati dal sistema |
EphemeralOSDisk | Boolean | Usare un disco di avvio temporaneo per la macchina virtuale, se supportato |
Zona | Stringa (elenco) | Zona di disponibilità per macchine virtuali 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 | string | ID completo per il gruppo di posizionamento di prossimità in cui inserire questo nodo. Deve iniziare con /subscriptions/ |
PlacementGroupId | string | Se impostata, questa etichetta viene usata per inserire questo nodo in un singolo gruppo di posizionamento con tutti gli altri nodi che hanno un valore corrispondente per PlacementGroupId. Ciò offre una comunicazione con latenza inferiore ed è necessario 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 deve essere specificata manualmente. |
KeyPairLocation | Integer | Dove CycleCloud troverà una coppia di chiavi SSH nel file system locale |
KeepAlive | Boolean | Se true, CycleCloud impedirà la chiusura di questo nodo |
Armadietto | string | Specificare il nome della casella di sicurezza da cui scaricare le specifiche del progetto. Vedere Usare progetti |
BootDiagnosticsUri | string | 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 | Boolean | Se true, abilita le licenze "Vantaggio Azure Hybrid" per le macchine virtuali Windows |
EnableTerminateNotification (8.2.0+) | Boolean | Se true, abilita Termina notifica per 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, in questo modo viene controllato il periodo di tempo per cui vengono date le macchine virtuali per gestire l'evento prima dell'eliminazione. |
ThrottleCapacity (8.2.2+) | Boolean | 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, per quanto tempo segnalare la disponibilità di 0 dopo che la capacità è vincolata. Il valore predefinito è "5m". |
HybridBenefitLicense (8.3.0+) | string | Se HybridBenefit è true, specifica la licenza da usare: RHEL_BYOS , SLES_BYOS o Windows_Server . Il valore predefinito è Windows_Server . |
FlexScaleSetId (8.3.0+) | string | Se impostato, si tratta dell'ID completo di un set di scalabilità in modalità di orchestrazione Flex usata per la macchina virtuale per questo nodo. |
EncryptionAtHost (8.4.0+) | Boolean | Se true, la macchina virtuale avrà l'opzione Encryption At Host abilitata. |
SecurityType (8.5.0+) | string | Imposta il tipo di sicurezza; indefinito o TrustedLaunch ConfidentialVM |
EnableSecureBoot (8.5.0+) | Boolean | Abilita l'avvio protetto, se si usano macchine virtuali di avvio attendibile o macchine virtuali riservate. |
EnableVTPM (8.5.0+) | Boolean | 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à generale di Azure e ne deve essere creata una prima di poter fare riferimento a un nodo.
In questo modo le macchine virtuali CycleCloud vengono 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 dell'immagine
L'immagine della macchina virtuale è un'impostazione necessaria per avviare una macchina virtuale. Esistono tre forme valide di definizione dell'immagine: i nomi predefiniti delle immagini CycleCloud, le definizioni delle immagini del Marketplace e gli ID immagine.
ImageName
CycleCloud supporta diverse immagini del Marketplace predefinite disponibili per diverse versioni del sistema operativo. Questi valori possono essere specificati con un oggetto ImageName
.
Attributo | Type | Definizione |
---|---|---|
ImageName | string | 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 Publisher
, Offer
Sku
e ImageVersion
.
Attributo | Type | Definizione |
---|---|---|
Azure.Publisher | string | Immagine del Marketplace della macchina virtuale |
Azure.Offer | string | Offerta per l'immagine del Marketplace della macchina virtuale |
Azure.Sku | string | Sku dell'immagine del Marketplace della macchina virtuale |
Azure.ImageVersion | string | Versione dell'immagine del Marketplace. |
Nota
È anche possibile specificare un'immagine del Marketplace nell'attributo ImageName
, codificato come URN nel formato Publisher:Offer:Sku:ImageVersion
.
Immagini con piano tariffario personalizzato
Raccolta immagini condivise immagini associate a un piano tariffario 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, è possibile usare anche l'ID risorsa di un'immagine di macchina virtuale nella sottoscrizione delle credenziali:
Attributo | Type | Definizione |
---|---|---|
ImageId | string | ID risorsa dell'immagine della macchina virtuale |
Attributi dell'immagine
Le immagini e le immagini del Marketplace definite da ImageId richiedono alcune impostazioni aggiuntive per configurare correttamente l'estensione del sistema operativo CycleCloud:
Attributo | Type | Definizione |
---|---|---|
DownloadJetpack | Boolean | Se false, CycleCloud non scaricherà Jetpack dall'account di archiviazione. Jetpack deve essere già installato. Nota: sono supportati solo i nodi Linux. Viene impostato come predefinito true. Aggiunta nella versione 8.4.1. |
InstallJetpack | Boolean | Se false, CycleCloud non installerà Jetpack nelle nuove macchine virtuali. Viene impostato come predefinito true. |
AwaitInstallation | Boolean | Se false, CycleCloud non attenderà che Jetpack visualizzi i dettagli di installazione al momento della creazione della macchina virtuale. Viene impostato come predefinito true. |
JetpackPlatform | string | Piattaforma di installazione jetpack da usare: centos-7 , ubuntu-14.04 centos-6 , , windows ubuntu-16.04 . Deprecato nella versione 7.7.0. |
Avviso
Impostazione InstallJetpack
o AwaitInstallation
non consigliata. Inoltre, l'impostazione DownloadJetpack
richiede un'immagine personalizzata con la versione corretta dell'installazione di Jetpack ed è consigliata solo per gli ambienti che riscontrano problemi di download dagli account di archiviazione.
Nota
ImageId
viene usato per impostazione predefinita se in una singola definizione di nodo vengono incluse più definizioni di immagine.
Esempio di immagine alternativa
Ecco un modello di esempio usando 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 | Type | Definizione |
---|---|---|
IsReturnProxy | Boolean | Stabilire il proxy del canale inverso a questo nodo. Un solo nodo per cluster può avere questa impostazione come true. |
ReturnPath.Hostname | Nome host | Nome host in cui il nodo può raggiungere CycleCloud. |
ReturnPath.WebserverPort | Integer | Porta del server Web in cui il nodo può raggiungere CycleCloud. |
ReturnPath.BrokerPort | Integer | Broker in cui il nodo può raggiungere CycleCloud. |
Tag
CycleCloud supporta l'assegnazione di tag alle macchine virtuali e alle macchine virtuali.
Attributo | string | Definizione |
---|---|---|
Tag | string | Usare 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 Macchine virtuali.
Attributo | string | Definizione |
---|---|---|
Interrompibile | Boolean | Se true, la macchina virtuale sarà una macchina virtuale spot per fornire prezzi ridotti. |
MaxPrice | Float | Prezzo massimo da spendere sulla macchina virtuale. (Impostazione predefinita: -1) |
attributi Nodearray-Specific
Tutti gli attributi per un nodo sono validi per un nodo, ma una matrice di nodi è una risorsa elastica in modo che siano disponibili attributi aggiuntivi. Nodearray è un driver per Azure VirtualMachine ScaleSets (VMSS) e può avere molte macchine virtuali di backup.
Attributo | string | Definizione |
---|---|---|
Azure.AllocationMethod | string | Impostare questa opzione su StandAlone per gestire singole macchine virtuali o lasciare non definita per l'uso di VMSS. |
Azure.SingleScaleset | Boolean | Usare una singola vmSS per tutti i nodi (Impostazione predefinita: false). |
Azure.SinglePlacementGroup | Boolean | Usare l'impostazione del gruppo di posizionamento singolo per vmSS. (Impostazione predefinita: false) |
Azure.Overprovision | Boolean | Usare la funzionalità Overprovision di VMSS. Cyclecloud verrà impostato dinamicamente a seconda dello scenario. Si tratta di un override. |
Azure.MaxScaleSetSize | Integer | Limitare il numero di macchine virtuali in una singola macchina virtuale. Una volta raggiunto questo massimo, CycleCloud aggiungerà altri VMSS al cluster. (Impostazione predefinita: '40') |
InitialCount | Integer | Numero di nodi da avviare all'avvio del cluster. |
MaxCount | Integer | Per assicurarsi che il cluster non superi mai 10 nodi, si specifica un valore pari a 10. Si noti che MaxCount e MaxCoreCount possono essere usati insieme, in tal caso il vincolo effettivo inferiore avrà effetto. |
InitialCoreCount | Integer | Numero di core da avviare all'avvio del cluster. |
MaxCoreCount | Integer | Per assicurarsi che il cluster non superi mai 100 core, si specifica un valore pari a 100. Si noti che MaxCount e MaxCoreCount possono essere usati insieme, in tal caso il vincolo effettivo inferiore avrà effetto. |
ShutdownPolicy | string | Indica cosa fare con la macchina virtuale quando un nodo viene arrestato. Se la macchina virtuale viene eliminata quando il nodo viene arrestato. Se invece "deallocate", il nodo viene arrestato. (Impostazione predefinita: termina) |
Attributo | string | Definizione |
---|---|---|
Azure.AllocationMethod | string | 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 | Boolean | Usare un singolo set di scalabilità di macchine virtuali per tutti i nodi (impostazione predefinita: false). |
Azure.SinglePlacementGroup | Boolean | Usare l'impostazione del gruppo di posizionamento singolo per il set di scalabilità di macchine virtuali. (Impostazione predefinita: false) |
Azure.Overprovision | Boolean | Usare la funzionalità Overprovision di VMSS. Cyclecloud verrà impostato dinamicamente a seconda dello scenario. Si tratta di un override. |
Azure.MaxScaleSetSize | Integer | 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 | Integer | Numero di nodi da avviare all'avvio del cluster. |
MaxCount | Integer | 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 | Integer | Numero di core da avviare all'avvio del cluster. |
MaxCoreCount | Integer | 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 | string | Indica cosa fare con la macchina virtuale quando un nodo viene arrestato. Se la macchina virtuale viene eliminata quando il nodo viene arrestato. Se "deallocare", il nodo viene invece arrestato. (Impostazione predefinita: terminate) |
ThrottleCapacity | Boolean | Indica se sospendere le richieste ad Azure al momento della ricezione Insufficient Capacity del segnale. (Impostazione predefinita: false) |
ThrottleCapacityTime | Tempo relativo | Tempo di backoff dopo la ricezione Insufficient Capacity del segnale da Azure. AvailableCount verrà segnalato come zero durante questo periodo. (Impostazione predefinita: '5m') |
Nota
Verranno assegnati tutti i set di scalabilità di macchine virtuali FaultDomainCount = 1
Ereditarietà
I nodi e gli oggetti nodearray strettamente correlati possono essere derivati da altri nodi nello stesso modello di cluster.
Queste definizioni ereditate riducono al minimo le dichiarazioni necessarie condividendo gli attributi comuni. Comunemente usata è la [[node defaults]]
sezione , che è una definizione astratta speciale che si applica a tutti i nodi e nodearray nel cluster.
Attributo | string | Definizione |
---|---|---|
Contenuto | Boolean | Se true, non creare un nodo o nodearray nel cluster. L'astrazione può essere utilizzata per l'ereditarietà. (Impostazione predefinita: false) |
Extends | 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, input-endpoint e configurazione come oggetti subordinati.