Use ALIYUN::CS::ManagedEdgeKubernetesCluster para criar um cluster Kubernetes de borda gerenciado pelo ACK.
Sintaxe
{
"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
}
}
Propriedades
Nome da propriedade | Tipo | Obrigatório | Atualização permitida | Descrição | Restrições |
Name | String | Sim | Não | Nome do cluster. | O nome deve começar com uma letra ou dígito. Pode conter letras, caracteres chineses, dígitos e hifens (-). |
Addons | List | Não | Não | Lista de componentes a instalar no cluster. | Valores válidos:
Para mais informações, consulte Propriedades de Addons. |
CloudMonitorFlags | Boolean | Não | Não | Define se o agente do CloudMonitor será instalado. | Valores válidos:
|
ClusterSpec | String | Não | Não | Tipo do cluster gerenciado. | Valores válidos:
|
ContainerCidr | String | Não | Não | Bloco CIDR para pods. | Parâmetro obrigatório ao criar um cluster com o plugin Flannel. O valor deve ser um bloco CIDR privado válido ou uma sub-rede dos seguintes blocos CIDR:
O bloco CIDR não pode sobrepor o bloco CIDR da VPC ou os blocos CIDR de clusters Kubernetes existentes na VPC. Este parâmetro não pode ser alterado após a criação do cluster. Para mais informações sobre planejamento de rede, consulte Planejar blocos CIDR para um cluster gerenciado pelo ACK. |
RrsaConfig | Map | Não | Não | Configurações do RRSA. | Para mais informações, consulte Propriedades de RrsaConfig. |
DeletionProtection | Boolean | Não | Sim | Define se a proteção contra exclusão está ativada. | Se a proteção contra exclusão estiver ativada, o cluster não poderá ser excluído diretamente. Valores válidos:
|
EndpointPublicAccess | Boolean | Não | Não | Define se o servidor de API será exposto à internet. | Valores válidos:
|
IsEnterpriseSecurityGroup | Boolean | Não | Não | Determina se um grupo de segurança avançado será criado. | Este parâmetro só tem efeito quando SecurityGroupId estiver vazio. Valores válidos:
|
KeyPair | String | Não | Não | Nome do par de chaves. | Especifique LoginPassword ou KeyPair. |
LoginPassword | String | Não | Não | Senha de login. | A senha deve ter de 8 a 30 caracteres e conter pelo menos três dos seguintes tipos: letras maiúsculas, letras minúsculas, dígitos e caracteres especiais. Caracteres especiais suportados: Especifique LoginPassword ou KeyPair. |
NodeCidrMask | String | Não | Não | Número máximo de blocos CIDR atribuíveis a um nó. | O número depende do bloco CIDR de pod especificado. Este parâmetro só tem efeito quando o cluster usa o plugin Flannel. Valor padrão: 25. |
Profile | String | Não | Não | Identificador do cluster de borda. | Valor padrão: Edge. |
ProxyMode | String | Não | Não | Modo de proxy do kube-proxy. | Valores válidos:
|
ResourceGroupId | String | Não | Sim | ID do grupo de recursos ao qual o cluster pertence. | Nenhuma |
ServiceCidr | String | Não | Não | Bloco CIDR de serviço. | O bloco CIDR não pode sobrepor o bloco CIDR da VPC ou o bloco CIDR do contêiner. Se o sistema criar automaticamente uma VPC, o bloco CIDR padrão será 172.19.0.0/20. |
SnatEntry | Boolean | Não | Não | Define se uma entrada SNAT será configurada para a rede. | Valores válidos:
Nota Se você usar a VPC criada automaticamente pelo sistema, defina esta propriedade como true. Caso utilize uma VPC existente não criada pelo sistema, especifique esta propriedade com base na capacidade da VPC de acessar a internet. |
MaintenanceWindow | Map | Não | Sim | Configuração da janela de manutenção do cluster. | Para mais informações, consulte Propriedades de MaintenanceWindow. |
Tags | List | Não | Sim | Tags. | É possível adicionar até 20 tags. Para mais informações, consulte a propriedade Tags. |
TimeoutMins | Number | Não | Não | Tempo limite para a criação da pilha do cluster. | Valor padrão: 60. Unidade: minutos. |
VSwitchIds | List | Não | Não | vSwitches aos quais os nós trabalhadores estão conectados. | Nenhuma |
VpcId | String | Não | Não | ID da Virtual Private Cloud (VPC). | Se este parâmetro estiver vazio, o sistema cria automaticamente uma VPC com o bloco CIDR 192.168.0.0/16. VpcId e VSwitchIds devem ser ambos especificados ou ambos deixados vazios. |
ZoneIds | List | Não | Não | Lista de zonas. | Nenhuma |
NodePools | List | Não | Não | Informações sobre os pools de nós. | Para mais informações, consulte Propriedades de NodePools. |
EncryptionProviderKey | String | Não | Não | ID de uma chave gerenciada pelo Key Management Service (KMS). | Esta chave criptografa discos de dados. O KMS só pode ser usado em clusters ACK Pro. |
IpStack | String | Não | Não | Pilha de protocolos IP do cluster. | Valores válidos:
|
KubernetesVersion | String | Não | Sim | Versão do cluster. Esta versão é consistente com a linha de base da comunidade Kubernetes. Selecione a versão mais recente. | É possível criar clusters das duas versões mais recentes. Para mais informações sobre as versões do Kubernetes suportadas pelo ACK, consulte Guia de Versões. |
Sintaxe de MaintenanceWindow
"MaintenanceWindow": {
"Enable": Boolean,
"MaintenanceTime": String,
"Duration": String,
"WeeklyPeriod": String,
"Recurrence": String
}
Propriedades de MaintenanceWindow
Nome da propriedade | Tipo | Obrigatório | Atualizável | Descrição | Restrições |
Duration | String | Não | Sim | Duração da janela de manutenção. | O valor deve ser um número inteiro de 1 a 24. Unidade: horas. Valor padrão: 3h. |
Enable | Boolean | Não | Sim | Define se a janela de manutenção será ativada. | Valores válidos:
Valor padrão: |
MaintenanceTime | String | Não | Sim | Hora de início da janela de manutenção. | Formato RFC 3339. |
WeeklyPeriod | String | Não | Sim | Período de manutenção. | Separe vários valores com vírgulas (,). Valores válidos: {Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday} Valor padrão: |
Recurrence | String | Não | Sim | Regra de recorrência para a janela de manutenção, definida com a sintaxe de Regra de Recorrência RFC5545. | Apenas FREQ=WEEKLY é suportado. Os parâmetros COUNT e UNTIL não são suportados. |
Sintaxe de NodePools
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map
}
]
Propriedades de NodePools
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrições |
|
ScalingGroup |
Map |
Sim |
Não |
Configuração do grupo de dimensionamento para o pool de nós. |
Para mais informações, consulte Propriedades de ScalingGroup. |
|
KubernetesConfig |
Map |
Não |
Não |
Configuração do cluster. |
Para mais informações, consulte Propriedades de KubernetesConfig. |
|
NodePoolInfo |
Map |
Não |
Não |
Configuração do pool de nós. |
Para mais informações, consulte Propriedades de NodePoolInfo. |
Sintaxe de NodePoolInfo
"NodePoolInfo": {
"Name": String,
"Type": String,
"ResourceGroupId": String
}
Propriedades de NodePoolInfo
Nome da propriedade | Tipo | Obrigatório | Permite atualizações | Descrição | Restrições |
ResourceGroupId | String | Não | Sim | Grupo de recursos ao qual o pool de nós pertence. | Nenhuma |
Name | String | Sim | Não | Nome do pool de nós. | Nenhuma |
Type | String | Não | Não | Tipo do pool de nós. | Valores válidos:
|
Sintaxe de KubernetesConfig
"KubernetesConfig": {
"Runtime": String,
"RuntimeVersion": String,
"CpuPolicy": String,
"Labels": List,
"NodeNameMode": String,
"Taints": List
}
Propriedades de KubernetesConfig
Nome da propriedade | Tipo | Obrigatório | Atualizável | Descrição | Restrições |
Runtime | String | Sim | Não | Runtime de contêiner. | Nenhuma |
RuntimeVersion | String | Sim | Não | Versão do runtime de contêiner. | Nenhuma |
CpuPolicy | String | Não | Não | Política de gerenciamento de CPU para o nó. | As duas políticas a seguir são suportadas para clusters da versão 1.12.6 ou posterior:
|
Labels | List | Não | Não | Rótulos do nó. | Adiciona rótulos aos nós do cluster Kubernetes. Para mais informações, consulte Propriedades de Labels. |
NodeNameMode | String | Não | Não | Nome personalizado do nó. | O nome do nó consiste em três partes: prefixo, substring do endereço IP do nó e sufixo.
Por exemplo, se o endereço IP do nó for 192.168.XX.XX, o prefixo for |
Taints | List | Não | Não | Configuração de taint. | Para mais informações, consulte Propriedades de Taints. |
Sintaxe de Label
"Labels": {
"Value": String,
"Key": String
}
Propriedades de Labels
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualização permitida |
Descrição |
Restrições |
|
Key |
String |
Sim |
Não |
Chave da tag. |
Nenhuma |
|
Value |
String |
Sim |
Não |
Valor da tag. |
Nenhuma |
Sintaxe de Taints
"Taints": [{
"Value": String,
"Effect": String,
"Key": String
}]
Propriedades de Taint
Nome da propriedade | Tipo | Obrigatório | Atualizável | Descrição | Restrições |
Key | String | Sim | Não | Nome do taint. | Nenhuma |
Value | String | Sim | Não | Valor do taint. | Nenhuma |
Effect | String | Não | Não | Política de agendamento. |
|
Sintaxe 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
}
Propriedades de ScalingGroup
Nome da propriedade | Tipo | Obrigatório | Atualizável | Descrição | Restrições |
InstanceTypes | List | Não | Não | Tipos de instância. | Nenhuma |
SystemDiskSize | Integer | Sim | Não | Tamanho do disco do sistema do nó. | Unidade: GiB. Intervalo de valores: 40 a 500. |
VSwitchIds | List | Não | Não | Lista de IDs de vSwitch. | Nenhuma |
SocEnabled | Boolean | Não | Não | Define se o reforço de segurança baseado em proteção classificada será ativado. | Valores válidos:
|
ImageType | String | Não | Não | Tipo da imagem do sistema operacional. | Nenhuma |
InstancePatterns | List | Não | Não | Configurações de propriedades da instância. | Para mais informações, consulte Propriedades de InstancePatterns. |
SecurityHardeningOs | Boolean | Não | Não | Reforço de segurança do Alibaba Cloud OS. | Valores válidos:
Valor padrão: |
DesiredSize | Integer | Não | Não | Número esperado de nós no pool de nós. | Nenhuma |
DataDisks | List | Não | Não | Configurações de disco de dados para os nós no pool de nós. | Para mais informações, consulte Propriedades de DataDisks. |
ImageId | String | Não | Não | ID da imagem personalizada. | Por padrão, a imagem fornecida pelo sistema é usada. |
InstanceChargeType | String | Não | Não | Método de faturamento para os nós no pool de nós. | Valores válidos:
|
InternetChargeType | String | Não | Não | Método de faturamento para o endereço IP público. | Valores válidos:
|
InternetMaxBandwidthOut | Integer | Não | Não | Largura de banda de saída máxima do endereço IP público para o nó. | Unidade: Mbps. Intervalo de valores: 1 a 100. |
IsEnterpriseSecurityGroup | Boolean | Não | Não | Cria automaticamente um grupo de segurança de nível empresarial. | Valores válidos:
|
KeyPair | String | Não | Não | Nome do par de chaves para login sem senha. | Especifique |
LoginPassword | String | Não | Não | Senha de login SSH. | Especifique A senha deve ter de 8 a 30 caracteres e conter letras maiúsculas, letras minúsculas, dígitos e caracteres especiais. |
Period | Integer | Não | Não | Duração da assinatura para os nós no pool de nós. | Esta propriedade é obrigatória e tem efeito apenas quando Quando period_unit está definido como Month, os valores válidos para period são 1, 2, 3, 6 e 12. Valor padrão: 1. |
PeriodUnit | String | Não | Não | Ciclo de faturamento para os nós no pool de nós. | Esta propriedade é obrigatória quando Month: A unidade de tempo é meses. |
RdsInstances | List | Não | Não | IDs das instâncias do ApsaraDB RDS. | Nenhuma |
SystemDiskCategory | String | Não | Não | Categoria do disco do sistema do nó. | Valores válidos:
|
SystemDiskPerformanceLevel | String | Não | Não | Nível de desempenho do disco do sistema do nó. | Esta propriedade tem efeito apenas para ESSDs. |
Tags | List | Não | Não | É possível adicionar tags apenas a instâncias ECS. | Para mais informações, consulte Propriedades de Tags. |
ZoneIds | List | Não | Não | Zonas de disponibilidade | Nenhuma |
Sintaxe de RrsaConfig
"RrsaConfig":
{
"Enabled": Boolean
}
Propriedades de RrsaConfig
Nome da propriedade | Tipo | Obrigatório | Atualização permitida | Descrição | Restrições |
Enabled | Boolean | Sim | Não | Define se o RAM Roles for Service Accounts (RRSA) será ativado. | Valores válidos:
|
Sintaxe de Tags
"Tags": [
{
"Key": String,
"Value": String
}
]
Propriedades de Tags
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrições |
|
Key |
String |
Sim |
Não |
Chave da tag. |
O comprimento deve ser de 1 a 64 caracteres. A chave não pode começar com |
|
Value |
String |
Sim |
Não |
Valor da tag. |
O comprimento pode ser de 0 a 128 caracteres. O valor não pode começar com |
Sintaxe de Addons
"Addons": [
{
"Disabled": Boolean,
"Config": String,
"Name": String,
"Version": String
}
]
Propriedades de Addon
Nome da propriedade | Tipo | Obrigatório | Permite atualizações | Descrição | Restrições |
Name | String | Sim | Não | Nome do componente. | Nenhuma |
Config | String | Não | Não | Configuração do componente. | Nenhuma |
Disabled | Boolean | Não | Não | Define se a instalação padrão do componente será desativada. | Valores válidos:
|
Version | String | Não | Não | Versão do addon. | A versão mais recente é usada por padrão. |
Sintaxe 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
}
]
Propriedades de InstancePatterns
Nome da propriedade | Tipo | Obrigatório | Permite atualizações | Descrição | Restrições |
CpuArchitectures | List | Não | Não | Arquitetura de CPU da instância. | Valores válidos:
|
MaxCpuCores | Integer | Não | Não | Número máximo de núcleos vCPU para o tipo de instância. | Nenhuma |
MinMemorySize | Integer | Não | Não | Tamanho mínimo de memória do tipo de instância. | Unidade: GiB. |
Memory | Integer | Não | Não | Tamanho de memória do tipo de instância. | Unidade: GiB. |
InstanceFamilyLevel | String | Não | Não | Nível da família de instâncias. | Nenhuma |
MinCpuCores | Integer | Não | Não | Número mínimo de núcleos vCPU para o tipo de instância. | Nenhuma |
Cores | Integer | Não | Não | Número de núcleos vCPU para o tipo de instância. | Nenhuma |
InstanceTypeFamilies | List | Não | Não | Especifique a família de instâncias. | Nenhuma |
InstanceCategories | List | Não | Não | Classificação da instância. | Nenhuma |
ExcludedInstanceTypes | List | Não | Não | Tipos de instância a excluir. | Nenhuma |
MaxMemorySize | Integer | Não | Não | Tamanho máximo de memória do tipo de instância. | Unidade: GiB. |
Sintaxe de DataDisks
"DataDisks": [
{
"Category": String,
"Encrypted": Boolean,
"PerformanceLevel": String,
"Size": Integer,
"AutoSnapshotPolicyId": String,
"Categories": List
}
]
Propriedades de DataDisks
Nome da propriedade | Tipo | Obrigatório | Permite atualizações | Descrição | Restrições |
AutoSnapshotPolicyId | String | Não | Não | ID da política de snapshot automático para o disco. O disco passa por backup automático com base nesta política. | Por padrão, este parâmetro está vazio e os backups automáticos estão desativados. |
Category | String | Não | Não | Tipo do disco de dados. | Valores válidos:
|
Encrypted | Boolean | Não | Não | Define se o disco de dados será criptografado. | Valores válidos:
|
PerformanceLevel | String | Não | Não | Defina o nível de desempenho do disco em nuvem. | Valores válidos:
Para mais informações, consulte SSD empresarial (ESSD). |
Size | Integer | Não | Não | Tamanho do disco de dados. | Intervalo de valores: 40 a 32768. Valor padrão: 120. Unidade: GiB. |
Categories | List | Não | Não | Lista de tipos de disco de dados. | Nenhuma |
Valor de retorno
Fn::GetAtt
ClusterId: ID do cluster.
TaskId: ID da tarefa. O sistema atribui este ID automaticamente. Use-o para consultar o status da tarefa.
DefaultUserKubeConfig: Configuração padrão do Kubernetes para credenciais do cluster.
ScalingRuleId: ID da regra de dimensionamento.
ScalingGroupId: ID do grupo de dimensionamento.
PrivateUserKubConfig: Configuração privada do Kubernetes para credenciais do cluster.
ScalingConfigurationId: ID da configuração de dimensionamento.
Nodes: Lista de nós do cluster.
APIServerSLBId: ID do Balanceador de Carga do Servidor de API.
IngressSLBId: ID do Server Load Balancer de Ingress.
WorkerRamRoleName: Nome da função RAM do nó trabalhador.
Exemplos
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"
]
}
}
}
}