Objetos Node y Nodearray
Los objetos Node y nodearray son 2 y están subordinados a cluster
. Un nodo representa una sola máquina virtual, mientras que una matriz de nodos puede representar una colección de máquinas virtuales o al menos un conjunto de escalado de máquinas virtuales.
Valores predeterminados del nodo
El [[node defaults]]
es un nodo abstracto especial que especifica la configuración predeterminada para todos los nodos y nodearrays de un clúster:
[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
El $Credentials
es una referencia a un parámetro denominado "Credentials".
En my-cluster
, el grid
nodearray hereda credential and SubnetId del nodo defaults
, pero usa un tamaño de máquina virtual hpC específico de Standard_H16
.
Ejemplo
En esta plantilla de ejemplo se crea un clúster con dos nodos y un elemento nodearray. El nodo proxy usa el IsReturnProxy
para definir el rol especial de ReturnProxy
, que será el punto de conexión de un proxy de canal inverso procedente de CycleCloud cuando se inicie el clúster.
[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
Referencia de atributo requerida
Hay un mínimo de cuatro atributos necesarios para iniciar correctamente un nodo:
Atributo | Tipo | Definición |
---|---|---|
MachineType | Cuerda | Tamaño de máquina virtual de Azure |
SubnetId | Cuerda | Definición de subred con el formato ${rg}/${vnet}/${subnet} |
Credenciales | Cuerda | Nombre de la cuenta del proveedor de nube. |
El cuarto atributo obligatorio está relacionado con una imagen. Se requiere un atributo de imagen, pero hay varias formas que puede tomar: consulte Atributos de imagen.
Atributos adicionales
Atributo | Tipo | Definición |
---|---|---|
ComputerName | Cuerda | Nombre de equipo de la máquina virtual. Si se especifica, invalida el nombre generado por el sistema. |
ComputerNamePrefix | Cuerda | Prefijo precedido a nombres de equipo generados por el sistema |
Zona | Cadena (lista) | Zona de disponibilidad para VM o VMSS. Puede ser una lista para VMSS. Por ejemplo, Zone = 1,3 |
KeyPairLocation | Entero | Donde CycleCloud encontrará un teclado SSH en el sistema de archivos local |
KeepAlive | Booleano | Si es true, CycleCloud impedirá la terminación de este nodo. |
Armario | Cuerda | Especifique el nombre de la caja de seguridad desde la que se van a descargar las especificaciones del proyecto. Consulte Usar proyectos |
Atributo | Tipo | Definición |
---|---|---|
ComputerName | Cuerda | Nombre de equipo de la máquina virtual. Si se especifica, invalida el nombre generado por el sistema. |
ComputerNamePrefix | Cuerda | Prefijo precedido a nombres de equipo generados por el sistema |
EphemeralOSDisk | Booleano | Use el disco de arranque efímero para la máquina virtual, si se admite. |
Zona | Cadena (lista) | Zona de disponibilidad para VM o VMSS. Puede ser una lista para VMSS. Por ejemplo, Zone = 1,3 |
ProximityPlacementGroupId | Cuerda | Identificador completo del grupo de selección de ubicación de proximidad en el que colocar este nodo. Debe comenzar con /subscriptions/ |
PlacementGroupId | Cuerda | Si se establece, esta etiqueta se usa para colocar este nodo en un único grupo de selección de ubicación con todos los demás nodos que tengan un valor coincidente para PlacementGroupId. Esto ofrece una comunicación de menor latencia y es necesario para habilitar InfiniBand en tamaños de máquina virtual que lo admiten. Normalmente, el programador establece esto según sea necesario, por lo que no es necesario especificar manualmente. |
KeyPairLocation | Entero | Donde CycleCloud encontrará un teclado SSH en el sistema de archivos local |
KeepAlive | Booleano | Si es true, CycleCloud impedirá la terminación de este nodo. |
Armario | Cuerda | Especifique el nombre de la caja de seguridad desde la que se van a descargar las especificaciones del proyecto. Consulte Usar proyectos |
BootDiagnosticsUri | Cuerda | URI de almacenamiento para diagnósticos de arranque (ejemplo: https://mystorageaccount.blob.core.windows.net/), si se especifica. Se aplicarán cargos de almacenamiento. |
HybridBenefit | Booleano | Si es true, habilita las licencias de "Ventaja híbrida de Azure" para máquinas virtuales Windows. |
EnableTerminateNotification (8.2.0+) | Booleano | Si es true, habilita finalizar la de notificación para enviar eventos en la eliminación de la máquina virtual a la máquina virtual para el control local. Esto solo se aplica a las máquinas virtuales del conjunto de escalado. |
TerminateNotificationTimeout (8.2.2+) | Hora relativa | Si la notificación de finalización está habilitada, controla cuánto tiempo se proporcionan las máquinas virtuales para controlar el evento antes de eliminarse. |
ThrottleCapacity (8.2.2+) | Booleano | Si es true, esta nodoarray notificará 0 capacidad para el escalado automático durante un valor predeterminado de 5 minutos después de encontrar un problema de capacidad. |
ThrottleCapacityTime (8.2.2+) | Hora relativa | Si ThrottleCapacity está habilitado, es cuánto tiempo se informa de la disponibilidad 0 después de restringir la capacidad. El valor predeterminado es "5m". |
HybridBenefitLicense (8.3.0+) | Cuerda | Si HybridBenefit es true, especifica la licencia que se va a usar: RHEL_BYOS , SLES_BYOS o Windows_Server . El valor predeterminado es Windows_Server . |
FlexScaleSetId (8.3.0+) | Cuerda | Si se establece, este es el identificador completo de un conjunto de escalado en modo de orquestación Flex que se usa para la máquina virtual para este nodo. |
EncryptionAtHost (8.4.0+) | Booleano | Si es true, la máquina virtual tendrá cifrado en host habilitado. |
SecurityType (8.5.0+) | Cuerda | Establece el tipo de seguridad ; ya sea sin definir, TrustedLaunch o ConfidentialVM |
EnableSecureBoot (8.5.0+) | Booleano | Habilita arranque seguro, si usa máquinas virtuales de inicio seguro o máquinas virtuales confidenciales. |
EnableVTPM (8.5.0+) | Booleano | Habilita módulo de plataforma segura virtual, si usa máquinas virtuales de inicio seguro o máquinas virtuales confidenciales. |
Nota
Un grupo de selección de ubicación por proximidad es una característica general de Azure y se debe crear una para poder hacer referencia a ella en un nodo.
Esto permite que las máquinas virtuales de CycleCloud se intercalen con otros recursos de Azure en ese grupo de selección de ubicación de proximidad, pero no habilitan las redes de InfiniBand.
Por el contrario, PlacementGroupId
es una cadena arbitraria en CycleCloud que se usa para agrupar las máquinas virtuales de los nodos en un único conjunto de escalado restringido para que esté bajo el mismo conmutador de red, pero puede que no se intercale con otros recursos de Azure.
Ambos se pueden usar juntos, pero esto puede reducir el número de máquinas virtuales que se pueden asignar.
Atributos de imagen
La imagen de máquina virtual es una configuración necesaria para iniciar una máquina virtual. Hay tres formas válidas de definición de imagen: nombres de imagen de CycleCloud predeterminados, definiciones de imágenes de Marketplace e identificadores de imagen.
ImageName
CycleCloud admite una serie de imágenes predeterminadas de Marketplace que están disponibles para diferentes tipos de sistema operativo. Se pueden especificar con un ImageName
.
Atributo | Tipo | Definición |
---|---|---|
ImageName | Cuerda | Nombre de imagen compatible con ciclo. cycle.image. [win2016, win2012, centos7, centos6, ubuntu16, ubuntu14] |
Imágenes de Marketplace
Junto con las imágenes de Marketplace administradas por ciclo, se puede usar cualquier imagen de Marketplace especificando el Publisher
, Offer
, Sku
y ImageVersion
.
Atributo | Tipo | Definición |
---|---|---|
Azure.Publisher | Cuerda | Publicador de la imagen de Marketplace de máquina virtual |
Azure.Offer | Cuerda | Oferta para la imagen de Marketplace de máquina virtual |
Azure.Sku | Cuerda | SKU de la imagen de Marketplace de máquina virtual |
Azure.ImageVersion | Cuerda | Versión de imagen de la imagen de Marketplace. |
Nota
También se puede especificar una imagen de Marketplace en el atributo ImageName
, codificado como un URN con el formato Publisher:Offer:Sku:ImageVersion
.
Imágenes con plan de precios personalizado
Las imágenes de Shared Image Gallery que tienen un plan de precios adjunto requieren información sobre el plan que se va a usar, a menos que esa información se almacene en la imagen de Shared Image Gallery. Se especifica con el atributo ImagePlan
mediante los atributos anidados Publisher, Product y Plan.
Nota
El uso de imágenes personalizadas con un plan de precios requiere CycleCloud 8.0.2 o posterior.
ImageId
Como alternativa, también se puede usar el identificador de recurso de una imagen de máquina virtual en la suscripción de la credencial:
Atributo | Tipo | Definición |
---|---|---|
ImageId | Cuerda | Identificador de recurso de la imagen de máquina virtual |
Atributos de imagen
Las imágenes e imágenes de Marketplace definidas por ImageIds necesitan algunas opciones adicionales para configurar correctamente la extensión del sistema operativo CycleCloud:
Atributo | Tipo | Definición |
---|---|---|
DownloadJetpack | Booleano | Si es false, CycleCloud no descargará Jetpack desde la cuenta de almacenamiento. Jetpack ya debe estar instalado. Nota: solo se admiten los nodos de Linux. El valor predeterminado es true. Agregado en la versión 8.4.1. |
InstallJetpack | Booleano | Si es false, CycleCloud no instalará Jetpack en nuevas máquinas virtuales. El valor predeterminado es true. |
AwaitInstallation | Booleano | Si es false, CycleCloud no esperará a que Jetpack notifique los detalles de instalación cuando se cree la máquina virtual. El valor predeterminado es true. |
JetpackPlatform | Cuerda | Plataforma del instalador de Jetpack que se va a usar: centos-7 , centos-6 , ubuntu-14.04 , ubuntu-16.04 , windows . En desuso en la versión 7.7.0. |
Advertencia
No se recomienda establecer InstallJetpack
o AwaitInstallation
. Además, establecer DownloadJetpack
requiere una imagen personalizada con la versión correcta de la instalación de Jetpack y solo se recomienda para entornos que experimentan problemas al descargar desde cuentas de almacenamiento.
Nota
ImageId
se usa de forma predeterminada si se incluyen varias definiciones de imagen en una definición de nodo único.
Ejemplo de imagen alternativa
Esta es una plantilla de ejemplo mediante las tres construcciones de imagen alternativas para los nodos:
[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 red avanzados
Atributo | Tipo | Definición |
---|---|---|
IsReturnProxy | Booleano | Establezca el proxy de canal inverso en este nodo. Solo un nodo por clúster puede tener esta configuración como true. |
ReturnPath.Hostname | Nombre de host | Nombre de host donde el nodo puede llegar a CycleCloud. |
ReturnPath.WebserverPort | Entero | Puerto de servidor web donde el nodo puede llegar a CycleCloud. |
ReturnPath.BrokerPort | Entero | Agente donde el nodo puede llegar a CycleCloud. |
Etiquetas
CycleCloud admite el etiquetado de máquinas virtuales y VMSS.
Atributo | Cuerda | Definición |
---|---|---|
Etiquetas | Cuerda | Use tags.my-tag = my-tag-value para agregar etiquetas a la implementación además de las etiquetas asignadas por CycleCloud de forma predeterminada. |
Atributos regulares o de acceso puntual
CycleCloud admite el uso de máquinas virtuales de Spot mediante los atributos siguientes. Consulte Spot Virtual Machines para obtener más información.
Atributo | Cuerda | Definición |
---|---|---|
Interrumpible | Booleano | Si es true, la máquina virtual será una máquina virtual de acceso puntual para proporcionar precios reducidos. |
MaxPrice | Flotar | El precio máximo que se va a gastar en la máquina virtual. (Valor predeterminado: -1) |
atributos de Nodearray-Specific
Todos los atributos de un nodo son válidos para una matriz de nodos, pero una matriz de nodos es un recurso elástico, por lo que hay atributos adicionales disponibles. Nodearray es un controlador para Azure VirtualMachine ScaleSets (VMSS) y puede tener muchas máquinas virtuales de respaldo.
Atributo | Cuerda | Definición |
---|---|---|
Azure.AllocationMethod | Cuerda | Establézcalo en StandAlone para administrar máquinas virtuales únicas o dejar sin definir para usar VMSS. |
Azure.SingleScaleset | Booleano | Use un único VMSS para todos los nodos (valor predeterminado: false). |
Azure.SinglePlacementGroup | Booleano | Use la configuración de grupo de selección de ubicación única para VMSS. (Valor predeterminado: false) |
Azure.Overprovision | Booleano | Use la característica Sobreaprovisionamiento de VMSS. Cyclecloud se establecerá dinámicamente en función del escenario. Se trata de una invalidación. |
Azure.MaxScaleSetSize | Entero | Limite el número de máquinas virtuales en un único VMSS. Una vez alcanzado este máximo, CycleCloud agregará VMSS adicionales al clúster. (Valor predeterminado: '40') |
InitialCount | Entero | Número de nodos que se van a iniciar cuando se inicia el clúster. |
MaxCount | Entero | Para asegurarse de que el clúster nunca supera los 10 nodos, debe especificar un valor de 10. Tenga en cuenta que MaxCount y MaxCoreCount se pueden usar juntos, en cuyo caso la restricción efectiva inferior surtirá efecto. |
InitialCoreCount | Entero | Número de núcleos que se van a iniciar cuando se inicia el clúster. |
MaxCoreCount | Entero | Para asegurarse de que el clúster nunca supera los 100 núcleos, especifique un valor de 100. Tenga en cuenta que MaxCount y MaxCoreCount se pueden usar juntos, en cuyo caso la restricción efectiva inferior surtirá efecto. |
ShutdownPolicy | Cuerda | Indica qué hacer con la máquina virtual cuando se apaga un nodo. Si "termina", la máquina virtual se elimina cuando se cierra el nodo. Si 'desasignar', el nodo se detiene en su lugar. (Valor predeterminado: finalizar) |
Atributo | Cuerda | Definición |
---|---|---|
Azure.AllocationMethod | Cuerda | Establézcalo en StandAlone para administrar máquinas virtuales únicas o dejar sin definir para usar VMSS. |
Azure.SingleScaleset | Booleano | Use un único VMSS para todos los nodos (valor predeterminado: false). |
Azure.SinglePlacementGroup | Booleano | Use la configuración de grupo de selección de ubicación única para VMSS. (Valor predeterminado: false) |
Azure.Overprovision | Booleano | Use la característica Sobreaprovisionamiento de VMSS. Cyclecloud se establecerá dinámicamente en función del escenario. Se trata de una invalidación. |
Azure.MaxScaleSetSize | Entero | Limite el número de máquinas virtuales en un único VMSS. Una vez alcanzado este máximo, CycleCloud agregará VMSS adicionales al clúster. (Valor predeterminado: '40') |
InitialCount | Entero | Número de nodos que se van a iniciar cuando se inicia el clúster. |
MaxCount | Entero | Para asegurarse de que el clúster nunca supera los 10 nodos, debe especificar un valor de 10. Tenga en cuenta que MaxCount y MaxCoreCount se pueden usar juntos, en cuyo caso la restricción efectiva inferior surtirá efecto. |
InitialCoreCount | Entero | Número de núcleos que se van a iniciar cuando se inicia el clúster. |
MaxCoreCount | Entero | Para asegurarse de que el clúster nunca supera los 100 núcleos, especifique un valor de 100. Tenga en cuenta que MaxCount y MaxCoreCount se pueden usar juntos, en cuyo caso la restricción efectiva inferior surtirá efecto. |
ShutdownPolicy | Cuerda | Indica qué hacer con la máquina virtual cuando se apaga un nodo. Si "termina", la máquina virtual se elimina cuando se cierra el nodo. Si 'desasignar', el nodo se detiene en su lugar. (Valor predeterminado: finalizar) |
ThrottleCapacity | Booleano | Si se suspenden las solicitudes a Azure al recibir Insufficient Capacity señal. (Valor predeterminado: false) |
ThrottleCapacityTime | Hora relativa | Tiempo de retroceso después de recibir Insufficient Capacity señal de Azure.
AvailableCount se notificará como cero durante este tiempo. (Valor predeterminado: '5m') |
Nota
Se asignarán todas las VMSS FaultDomainCount = 1
Herencia
Los nodos y nodearrays que están estrechamente relacionados pueden derivarse de otros nodos de la misma plantilla de clúster.
Estas definiciones heredadas minimizan las declaraciones necesarias al compartir atributos comunes. Normalmente se usa la sección [[node defaults]]
, que es una definición abstracta especial que se aplica a todos los nodos y nodearrays del clúster.
Atributo | Cuerda | Definición |
---|---|---|
Abstracto | Booleano | Si es true, no cree un nodo o un elemento nodearray en el clúster. El resumen se puede usar para la herencia. (Valor predeterminado: false) |
Extiende | Cadena (lista) | Lista ordenada de nombres de nodo o nodo heredados. Los elementos más adelante en la lista tienen prioridad cuando los valores entran en conflicto. El nodo 'defaults' siempre será el primero en la lista. (Valor predeterminado: []) |
Objetos subordinados
Los objetos node/nodearray tienen volumen, interfaz de red, cluster-init, de punto de conexión de entrada y configuración como objetos subordinados.