Utilice ALIYUN::CS::ManagedEdgeKubernetesCluster para crear un clúster perimetral administrado de ACK Kubernetes.
Sintaxis
{
"Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
"Properties": {
"Profile": String,
"VpcId": String,
"ServiceCidr": String,
"Name": String,
"Tags": List,
"ProxyMode": String,
"SnatEntry": Boolean,
"LoginPassword": String,
"KeyPair": String,
"Addons": List,
"EndpointPublicAccess": Boolean,
"TimeoutMins": Number,
"ClusterSpec": String,
"ContainerCidr": String,
"CloudMonitorFlags": Boolean,
"IsEnterpriseSecurityGroup": Boolean,
"NodeCidrMask": String,
"DeletionProtection": Boolean,
"ResourceGroupId": String,
"RrsaConfig": Map,
"MaintenanceWindow": Map,
"ZoneIds": List,
"VSwitchIds": List,
"NodePools": List,
"EncryptionProviderKey": String,
"KubernetesVersion": String,
"IpStack": String
}
}
Propiedades
Nombre de la propiedad | Tipo | Obligatorio | Actualización permitida | Descripción | Restricciones |
Name | String | Sí | No | El nombre del clúster. | El nombre debe comenzar con una letra o un dígito. Puede contener letras, caracteres chinos, dígitos y guiones (-). |
Addons | List | No | No | La lista de componentes que se instalarán en el clúster. | Valores válidos:
Para más información, consulte Addons properties. |
CloudMonitorFlags | Boolean | No | No | Especifica si se debe instalar el agente de CloudMonitor. | Valores válidos:
|
ClusterSpec | String | No | No | El tipo de clúster administrado. | Valores válidos:
|
ContainerCidr | String | No | No | El bloque CIDR para pods. | Este parámetro es obligatorio cuando se crea un clúster que utiliza el plugin Flannel. El valor debe ser un bloque CIDR privado válido o una subred de los siguientes bloques CIDR:
El bloque CIDR no puede superponerse con el bloque CIDR de la VPC ni con los bloques CIDR de clústeres de Kubernetes existentes en la VPC. Este parámetro no se puede modificar después de crear el clúster. Para más información sobre la planificación de red, consulte Plan CIDR blocks for an ACK managed cluster. |
RrsaConfig | Map | No | No | Las configuraciones de RRSA. | Para más información, consulte RrsaConfig properties. |
DeletionProtection | Boolean | No | Sí | Especifica si se debe habilitar la protección contra eliminación. | Si la protección contra eliminación está habilitada, el clúster no se puede eliminar directamente. Valores válidos:
|
EndpointPublicAccess | Boolean | No | No | Especifica si se debe exponer el servidor API a Internet. | Valores válidos:
|
IsEnterpriseSecurityGroup | Boolean | No | No | Determina si se debe crear un security group avanzado. | Este parámetro solo surte efecto cuando SecurityGroupId se deja vacío. Valores válidos:
|
KeyPair | String | No | No | El nombre del key pair. | Puede especificar LoginPassword o KeyPair. |
LoginPassword | String | No | No | La contraseña de inicio de sesión. | La contraseña debe tener entre 8 y 30 caracteres de longitud. Debe contener como mínimo tres de los siguientes tipos de caracteres: letras mayúsculas, letras minúsculas, dígitos y caracteres especiales. Los caracteres especiales admitidos son: Puede especificar LoginPassword o KeyPair. |
NodeCidrMask | String | No | No | El número máximo de bloques CIDR que se pueden asignar a un nodo. | El número se determina según el bloque CIDR de pod especificado. Este parámetro solo surte efecto cuando el clúster utiliza el plugin Flannel. Valor predeterminado: 25. |
Profile | String | No | No | El identificador del clúster perimetral. | Valor predeterminado: Edge. |
ProxyMode | String | No | No | El modo de proxy kube-proxy. | Valores válidos:
|
ResourceGroupId | String | No | Sí | El ID del resource group al que pertenece el clúster. | Ninguna |
ServiceCidr | String | No | No | El bloque CIDR de servicio. | El bloque CIDR no puede superponerse con el bloque CIDR de la VPC ni con el bloque CIDR del contenedor. Si permite que el sistema cree automáticamente una VPC, el bloque CIDR predeterminado es 172.19.0.0/20. |
SnatEntry | Boolean | No | No | Especifica si se debe configurar una entrada SNAT para la red. | Valores válidos:
Nota Si utiliza la VPC creada automáticamente por el sistema, debe establecer esta propiedad en true. Si utiliza una VPC existente que no fue creada automáticamente por el sistema, debe especificar esta propiedad según si la VPC tiene acceso a Internet. |
MaintenanceWindow | Map | No | Sí | La configuración de la ventana de mantenimiento del clúster. | Para más información, consulte MaintenanceWindow properties. |
Tags | List | No | Sí | Las etiquetas. | Puede agregar hasta 20 etiquetas. Para más información, consulte the Tags property. |
TimeoutMins | Number | No | No | El periodo de tiempo de espera para la creación de la pila del clúster. | Valor predeterminado: 60. Unidad: minutos. |
VSwitchIds | List | No | No | Los vSwitches a los que están conectados los nodos worker. | Ninguna |
VpcId | String | No | No | El ID de la virtual private cloud (VPC). | Si este parámetro se deja vacío, el sistema crea automáticamente una VPC con el bloque CIDR 192.168.0.0/16. VpcId y VSwitchIds deben especificarse ambos o dejarse vacíos ambos. |
ZoneIds | List | No | No | La lista de zonas. | Ninguna |
NodePools | List | No | No | La información sobre los node pools. | Para más información, consulte NodePools properties. |
EncryptionProviderKey | String | No | No | El ID de una clave gestionada por Key Management Service (KMS). | Esta clave cifra los discos de datos. Solo puede usar KMS en clústeres ACK Pro. |
IpStack | String | No | No | La pila de protocolos IP del clúster. | Valores válidos:
|
KubernetesVersion | String | No | Sí | La versión del clúster. Esta versión es consistente con la línea base de la comunidad de Kubernetes. Seleccione la versión más reciente. | Puede crear clústeres de las dos versiones más recientes. Para más información sobre las versiones de Kubernetes compatibles con ACK, consulte Version Guide. |
Sintaxis de MaintenanceWindow
"MaintenanceWindow": {
"Enable": Boolean,
"MaintenanceTime": String,
"Duration": String,
"WeeklyPeriod": String,
"Recurrence": String
}
Propiedades de MaintenanceWindow
Nombre de la propiedad | Tipo | Obligatorio | Actualizable | Descripción | Restricciones |
Duration | String | No | Sí | La duración de la ventana de mantenimiento. | El valor debe ser un número entero de 1 a 24. La unidad es horas. Valor predeterminado: 3h. |
Enable | Boolean | No | Sí | Especifica si se debe habilitar la ventana de mantenimiento. | Valores válidos:
Valor predeterminado: |
MaintenanceTime | String | No | Sí | La hora de inicio de la ventana de mantenimiento. | Formato RFC 3339. |
WeeklyPeriod | String | No | Sí | El periodo de mantenimiento. | Separe varios valores con comas (,). Valores válidos: {Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday} Valor predeterminado: |
Recurrence | String | No | Sí | La regla de recurrencia para la ventana de mantenimiento, definida mediante la sintaxis de Regla de Recurrencia RFC5545. | Solo se admite FREQ=WEEKLY. Los parámetros COUNT y UNTIL no son compatibles. |
Sintaxis de NodePools
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map
}
]
Propiedades de NodePools
|
Nombre de la propiedad |
Tipo |
Obligatorio |
Permite actualizaciones |
Descripción |
Restricciones |
|
ScalingGroup |
Map |
Sí |
No |
La configuración del grupo de escalado horizontal para el node pool. |
Para más información, consulte ScalingGroup properties. |
|
KubernetesConfig |
Map |
No |
No |
La configuración del clúster. |
Para más información, consulte KubernetesConfig properties. |
|
NodePoolInfo |
Map |
No |
No |
La configuración del node pool. |
Para más información, consulte NodePoolInfo properties. |
Sintaxis de NodePoolInfo
"NodePoolInfo": {
"Name": String,
"Type": String,
"ResourceGroupId": String
}
Propiedades de NodePoolInfo
Nombre de la propiedad | Tipo | Obligatorio | Permite actualizaciones | Descripción | Restricciones |
ResourceGroupId | String | No | Sí | El resource group al que pertenece el node pool. | Ninguna |
Name | String | Sí | No | El nombre del node pool. | Ninguna |
Type | String | No | No | El tipo de node pool. | Valores válidos:
|
Sintaxis de KubernetesConfig
"KubernetesConfig": {
"Runtime": String,
"RuntimeVersion": String,
"CpuPolicy": String,
"Labels": List,
"NodeNameMode": String,
"Taints": List
}
Propiedades de KubernetesConfig
Nombre de propiedad | Tipo | Obligatorio | Actualizable | Descripción | Restricciones |
Runtime | String | Sí | No | El entorno de ejecución del contenedor. | Ninguna |
RuntimeVersion | String | Sí | No | La versión del entorno de ejecución del contenedor. | Ninguna |
CpuPolicy | String | No | No | La directiva de administración de CPU para el nodo. | Se admiten las siguientes dos directivas para clústeres de la versión 1.12.6 o posterior:
|
Labels | List | No | No | Las etiquetas del nodo. | Agrega etiquetas a los nodos del clúster de Kubernetes. Para obtener más información, consulte Labels properties. |
NodeNameMode | String | No | No | El nombre personalizado del nodo. | El nombre del nodo consta de tres partes: un prefijo, una subcadena de la dirección IP del nodo y un sufijo.
Por ejemplo, si la dirección IP del nodo es 192.168.XX.XX, el prefijo es |
Taints | List | No | No | La configuración de taints. | Para obtener más información, consulte Taints properties. |
Sintaxis de Label
"Labels": {
"Value": String,
"Key": String
}
Propiedades de Labels
|
Nombre de propiedad |
Tipo |
Obligatorio |
Actualización permitida |
Descripción |
Restricciones |
|
Key |
String |
Sí |
No |
La clave de la etiqueta. |
Ninguna |
|
Value |
String |
Sí |
No |
El valor de la etiqueta. |
Ninguna |
Sintaxis de Taints
"Taints": [{
"Value": String,
"Effect": String,
"Key": String
}]
Propiedades de Taint
Nombre de propiedad | Tipo | Obligatorio | Actualizable | Descripción | Restricciones |
Key | String | Sí | No | El nombre del taint. | Ninguna |
Value | String | Sí | No | El valor del taint. | Ninguna |
Effect | String | No | No | La directiva de programación. |
|
Sintaxis de ScalingGroup
"ScalingGroup": {
"SocEnabled": Boolean,
"ImageType": String,
"InstancePatterns": List,
"SecurityHardeningOs": Boolean,
"RdsInstances": List,
"IsEnterpriseSecurityGroup": Boolean,
"VSwitchIds": List,
"InternetMaxBandwidthOut": Integer,
"DataDisks": List,
"Period": Integer,
"InternetChargeType": String,
"KeyPair": String,
"SystemDiskPerformanceLevel": String,
"ImageId": String,
"InstanceTypes": List,
"SystemDiskCategory": String,
"PeriodUnit": String,
"LoginPassword": String,
"InstanceChargeType": String,
"SystemDiskSize": Integer,
"Tags": List,
"ZoneIds": List,
"DesiredSize": Integer
}
Propiedades de ScalingGroup
Nombre de propiedad | Tipo | Obligatorio | Actualizable | Descripción | Restricciones |
InstanceTypes | List | No | No | Los tipos de instancia. | Ninguna |
SystemDiskSize | Integer | Sí | No | El tamaño del disco del sistema del nodo. | Unidad: GiB. Rango de valores: de 40 a 500. |
VSwitchIds | List | No | No | Una lista de ID de vSwitch. | Ninguna |
SocEnabled | Boolean | No | No | Especifica si se habilita el endurecimiento de seguridad basado en protección clasificada. | Valores válidos:
|
ImageType | String | No | No | El tipo de imagen del sistema operativo. | Ninguna |
InstancePatterns | List | No | No | Las configuraciones de propiedades de la instancia. | Para obtener más información, consulte InstancePatterns properties. |
SecurityHardeningOs | Boolean | No | No | Endurecimiento de seguridad de Alibaba Cloud OS. | Valores válidos:
Valor predeterminado: |
DesiredSize | Integer | No | No | El número esperado de nodos en el node pool. | Ninguna |
DataDisks | List | No | No | Las configuraciones de discos de datos para los nodos del node pool. | Para obtener más información, consulte DataDisks properties. |
ImageId | String | No | No | El ID de la imagen personalizada. | De forma predeterminada, se utiliza la imagen proporcionada por el sistema. |
InstanceChargeType | String | No | No | El método de facturación para los nodos del node pool. | Valores válidos:
|
InternetChargeType | String | No | No | El método de facturación para la dirección IP pública. | Valores válidos:
|
InternetMaxBandwidthOut | Integer | No | No | El ancho de banda de salida máximo de la dirección IP pública para el nodo. | Unidad: Mbps. Rango de valores: de 1 a 100. |
IsEnterpriseSecurityGroup | Boolean | No | No | Se crea automáticamente un security group de nivel empresarial. | Valores válidos:
|
KeyPair | String | No | No | El nombre del key pair para iniciar sesión sin contraseña. | Especifique |
LoginPassword | String | No | No | La contraseña de inicio de sesión SSH. | Especifique La contraseña debe tener entre 8 y 30 caracteres y contener letras mayúsculas, letras minúsculas, dígitos y caracteres especiales. |
Period | Integer | No | No | La duración de la suscripción para los nodos del node pool. | Esta propiedad es obligatoria y surte efecto solo cuando Cuando period_unit se establece en Month, los valores válidos para period son 1, 2, 3, 6 y 12. Valor predeterminado: 1. |
PeriodUnit | String | No | No | El ciclo de facturación para los nodos del node pool. | Esta propiedad es obligatoria cuando Month: La unidad de tiempo es meses. |
RdsInstances | List | No | No | Los ID de instancia de ApsaraDB RDS. | Ninguna |
SystemDiskCategory | String | No | No | La categoría del disco del sistema del nodo. | Valores válidos:
|
SystemDiskPerformanceLevel | String | No | No | El nivel de rendimiento del disco del sistema del nodo. | Esta propiedad solo surte efecto para ESSDs. |
Tags | List | No | No | Solo puede agregar etiquetas a instancias de ECS. | Para obtener más información, consulte Tags properties. |
ZoneIds | List | No | No | Zonas de disponibilidad | Ninguna |
Sintaxis de RrsaConfig
"RrsaConfig":
{
"Enabled": Boolean
}
Propiedades de RrsaConfig
Nombre de propiedad | Tipo | Obligatorio | Actualización permitida | Descripción | Restricciones |
Enabled | Boolean | Sí | No | Especifica si se habilitan los roles de RAM para cuentas de servicio (RRSA). | Valores válidos:
|
Sintaxis de Tags
"Tags": [
{
"Key": String,
"Value": String
}
]
Propiedades de Tags
|
Nombre de propiedad |
Tipo |
Obligatorio |
Habilitar actualizaciones |
Descripción |
Restricciones |
|
Key |
String |
Sí |
No |
La clave de la etiqueta. |
La longitud debe ser de 1 a 64 caracteres. La clave no puede comenzar con |
|
Value |
String |
Sí |
No |
El valor de la etiqueta. |
La longitud puede ser de 0 a 128 caracteres. El valor no puede comenzar con |
Sintaxis de Addons
"Addons": [
{
"Disabled": Boolean,
"Config": String,
"Name": String,
"Version": String
}
]
Propiedades de Addon
Nombre de propiedad | Tipo | Obligatorio | Permitir actualizaciones | Descripción | Restricciones |
Name | String | Sí | No | El nombre del componente. | Ninguna |
Config | String | No | No | La configuración del componente. | Ninguna |
Disabled | Boolean | No | No | Especifica si se deshabilita la instalación predeterminada del componente. | Valores válidos:
|
Version | String | No | No | La versión del addon. | Se utiliza la versión más reciente de forma predeterminada. |
Sintaxis de InstancePatterns
"InstancePatterns": [
{
"CpuArchitectures": List,
"MaxCpuCores": Integer,
"MinMemorySize": Integer,
"Memory": Integer,
"InstanceFamilyLevel": String,
"MinCpuCores": Integer,
"Cores": Integer,
"InstanceTypeFamilies": List,
"InstanceCategories": List,
"ExcludedInstanceTypes": List,
"MaxMemorySize": Integer
}
]
Propiedades de InstancePatterns
Nombre de la propiedad | Tipo | Obligatorio | Permite actualizaciones | Descripción | Restricciones |
CpuArchitectures | List | No | No | Arquitectura de CPU de la instancia. | Valores válidos:
|
MaxCpuCores | Integer | No | No | Número máximo de núcleos vCPU para el tipo de instancia. | Ninguna |
MinMemorySize | Integer | No | No | Tamaño mínimo de memoria del tipo de instancia. | La unidad es GiB. |
Memory | Integer | No | No | Tamaño de memoria del tipo de instancia. | La unidad es GiB. |
InstanceFamilyLevel | String | No | No | Nivel de la familia de instancias. | Ninguna |
MinCpuCores | Integer | No | No | Número mínimo de núcleos vCPU para el tipo de instancia. | Ninguna |
Cores | Integer | No | No | Número de núcleos vCPU del tipo de instancia. | Ninguna |
InstanceTypeFamilies | List | No | No | Permite especificar la familia de instancias. | Ninguna |
InstanceCategories | List | No | No | Clasificación de la instancia. | Ninguna |
ExcludedInstanceTypes | List | No | No | Tipos de instancia que se deben excluir. | Ninguna |
MaxMemorySize | Integer | No | No | Tamaño máximo de memoria del tipo de instancia. | La unidad es GiB. |
Sintaxis de DataDisks
"DataDisks": [
{
"Category": String,
"Encrypted": Boolean,
"PerformanceLevel": String,
"Size": Integer,
"AutoSnapshotPolicyId": String,
"Categories": List
}
]
Propiedades de DataDisks
Nombre de la propiedad | Tipo | Obligatorio | Permite actualizaciones | Descripción | Restricciones |
AutoSnapshotPolicyId | String | No | No | ID de la directiva de instantáneas automáticas del disco. El disco se respalda automáticamente según esta directiva. | De forma predeterminada, este parámetro está vacío y las copias de seguridad automáticas están deshabilitadas. |
Category | String | No | No | Tipo de disco de datos. | Valores válidos:
|
Encrypted | Boolean | No | No | Especifica si se debe cifrar el disco de datos. | Valores válidos:
|
PerformanceLevel | String | No | No | Permite establecer el nivel de rendimiento del disco en la nube. | Valores válidos:
Para obtener más información, consulte enterprise SSD (ESSD). |
Size | Integer | No | No | Tamaño del disco de datos. | Rango de valores: 40 a 32768. Valor predeterminado: 120. Unidad: GiB. |
Categories | List | No | No | Lista de tipos de discos de datos. | Ninguna |
Valor de retorno
Fn::GetAtt
ClusterId: ID del clúster.
TaskId: ID de la tarea. El sistema asigna este ID automáticamente. Puede usar este ID para consultar el estado de la tarea.
DefaultUserKubeConfig: configuración predeterminada de Kubernetes para las credenciales del clúster.
ScalingRuleId: ID de la regla de escalado.
ScalingGroupId: ID del grupo de escalado.
PrivateUserKubConfig: configuración privada de Kubernetes para las credenciales del clúster.
ScalingConfigurationId: ID de la configuración de escalado.
Nodes: lista de nodos del clúster.
APIServerSLBId: ID del balanceador de carga del servidor API.
IngressSLBId: ID del balanceador de carga Ingress.
WorkerRamRoleName: nombre del rol RAM del nodo worker.
Ejemplos
ROSTemplateFormatVersion: '2015-09-01'
Description: Test ManagedEdgeKubernetesCluster
Parameters:
VSwitchZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Description: The zone ID for the vSwitch.
Label: VSwitch Zone ID
VpcId:
Type: String
Default: Null
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Description: The ID of the VPC. The ID starts with vpc- and is available in the Virtual Private Cloud console.
Label: Existing VPC ID
VSwitchId:
Type: String
Default: Null
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Description: The ID of the vSwitch. The ID starts with vsw- and is available on the VSwitches page of the VPC console.
Label: VSwitch ID
AssociationPropertyMetadata:
ZoneId: ${VSwitchZoneId}
VpcId: ${VpcId}
ClusterName:
Type: String
Default: mytest
Password:
Type: String
Description: The logon password for the server. The password must be 8 to 30 characters long and include characters from three of the following types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ()`~!@#$%^*_-+=|{}[]:;,.?
MinLength: 8
Label: Instance Password
NoEcho: true
MaxLength: 30
ConstraintDescription: The password must be 8 to 30 characters long and include characters from three of the following types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ()`~!@#$%^*_-+=|{}[]:;',.?/
NumOfNodes:
Type: Number
Default: 1
MinValue: 0
MaxValue: 300
Resources:
Cluster:
Type: ALIYUN::CS::ManagedEdgeKubernetesCluster
Properties:
NumOfNodes:
Ref: NumOfNodes
Name:
Ref: ClusterName
LoginPassword:
Ref: Password
VpcId:
Ref: VpcId
VSwitchIds:
- Ref: VSwitchId
ServiceCidr: 172.19.0.0/20
Outputs:
ClusterId:
Value:
Fn::GetAtt:
- Cluster
- ClusterId
TaskId:
Value:
Fn::GetAtt:
- Cluster
- TaskId
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test ManagedEdgeKubernetesCluster",
"Parameters": {
"VSwitchZoneId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"Description": "The zone ID for the vSwitch.",
"Label": "VSwitch Zone ID"
},
"VpcId": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
"Description": "The ID of the VPC. The ID starts with vpc- and is available in the Virtual Private Cloud console.",
"Label": "Existing VPC ID"
},
"VSwitchId": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Description": "The ID of the vSwitch. The ID starts with vsw- and is available on the VSwitches page of the VPC console.",
"Label": "VSwitch ID",
"AssociationPropertyMetadata": {
"ZoneId": "${VSwitchZoneId}",
"VpcId": "${VpcId}"
}
},
"ClusterName": {
"Type": "String",
"Default": "mytest"
},
"Password": {
"Type": "String",
"Description": "The logon password for the server. The password must be 8 to 30 characters long and include characters from three of the following types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ()`~!@#$%^*_-+=|{}[]:;,.?",
"MinLength": 8,
"Label": "Instance Password",
"NoEcho": true,
"MaxLength": 30,
"ConstraintDescription": "The password must be 8 to 30 characters long and include characters from three of the following types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ()`~!@#$%^*_-+=|{}[]:;',.?/"
},
"NumOfNodes": {
"Type": "Number",
"Default": 1,
"MinValue": 0,
"MaxValue": 300
}
},
"Resources": {
"Cluster": {
"Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
"Properties": {
"NumOfNodes": {
"Ref": "NumOfNodes"
},
"Name": {
"Ref": "ClusterName"
},
"LoginPassword": {
"Ref": "Password"
},
"VpcId": {
"Ref": "VpcId"
},
"VSwitchIds": [
{
"Ref": "VSwitchId"
}
],
"ServiceCidr": "172.19.0.0/20"
}
}
},
"Outputs": {
"ClusterId": {
"Value": {
"Fn::GetAtt": [
"Cluster",
"ClusterId"
]
}
},
"TaskId": {
"Value": {
"Fn::GetAtt": [
"Cluster",
"TaskId"
]
}
}
}
}