Ao criar um pod do Elastic Container Instance informando o número de vCPUs e o tamanho da memória, talvez você precise de tipos específicos de instância do Elastic Compute Service (ECS). Por exemplo, suponha que deseje utilizar apenas famílias de instâncias ECS de sexta geração, como g6 ou c6, para criar o pod. Nesse caso, adicione a anotação k8s.aliyun.com/eci-instance-generation para definir a geração desejada das famílias de instâncias ECS. Este tópico descreve como especificar ou excluir gerações específicas de famílias de instâncias ECS durante a criação de um pod.
Descrição do recurso
Ao criar um pod do Elastic Container Instance definindo o número de vCPUs e o tamanho da memória, o sistema utiliza diversos tipos de instância ECS para viabilizar a criação. Ele seleciona automaticamente os tipos de instância que atendem aos requisitos de vCPU e memória e possuem recursos suficientes. Nessa situação, adicione a anotação k8s.aliyun.com/eci-instance-generation para especificar ou excluir gerações específicas de famílias de instâncias ECS.
Se você especificar gerações de famílias de instâncias ECS, o sistema selecionará tipos de instância ECS apenas dentro dessas gerações indicadas. Caso os recursos das gerações especificadas sejam insuficientes, o sistema não criará o pod.
Ao excluir gerações específicas de famílias de instâncias ECS, o sistema seleciona tipos de instância de outras gerações compatíveis com o Elastic Container Instance para criar o pod.
A tabela a seguir descreve as gerações de famílias de instâncias ECS que podem ser especificadas ou excluídas na criação de pods, bem como as famílias pertencentes a cada geração.
Arquitetura | Geração da família de instâncias ECS | Família de instâncias ECS |
ARM | 8 | g8y, c8y e r8y |
|
x86 |
8 |
g8i, c8i, r8i, hfg8i, hfc8i e hfr8i |
7 | g7, c7, r7, hfg7, hfc7, hfr7 e g7ne | |
6 |
g6e, g6, c6e, c6, r6e, r6, hfc6, hfg6 |
|
5 | u1, g5, g5ne, c5, r5, ic5, hfc5 e hfg5 | |
4 | sn2ne, sn1ne, se1ne e se1 |
Para obter mais informações sobre os tipos de instância ECS, consulte os seguintes tópicos:
Precauções
-
Os pods criados com base em gerações específicas de famílias de instâncias ECS são faturados conforme o tipo de instância ECS efetivamente utilizado. O faturamento não considera o número de vCPUs e o tamanho de memória especificados inicialmente.
ImportanteApós a criação do pod, execute o comando
kubectl describe podpara visualizar os detalhes YAML do pod. O valor do campok8s.aliyun.com/eci-instance-specindica o tipo de instância ECS em uso pelo pod. O faturamento ocorre com base nesse tipo de instância ECS. Ao especificar ou excluir gerações de famílias de instâncias ECS, o sistema não consegue selecionar automaticamente certos tipos de instância. Isso inclui tipos acelerados por GPU, como os da família gn6i, e tipos com discos locais, como os da família i2g. Para criar um pod usando tipos específicos de instância ECS, especifique diretamente esses tipos. Para mais detalhes, consulte Especificar tipos de instância ECS para criar pods.
É possível especificar ou excluir gerações de famílias de instâncias ECS para criar elastic container instances preemptíveis. Nesse cenário, o sistema escolhe o tipo de instância ECS mais adequado com base no preço de mercado e na ordem das gerações configuradas. Se houver requisitos rigorosos quanto às gerações, recomenda-se especificar apenas uma geração.
O recurso de especificar ou excluir gerações de famílias de instâncias ECS só entra em vigor quando os pods são criados mediante a definição do número de vCPUs e do tamanho da memória. Caso você defina tipos de instância ECS diretamente durante a criação do pod, esse recurso não terá efeito.
Descrição da configuração
Os valores válidos para k8s.aliyun.com/eci-instance-generation correspondem às gerações das famílias de instâncias ECS. Observe os seguintes pontos:
-
Várias gerações podem ser configuradas simultaneamente. Os valores aceitos são as gerações das famílias de instâncias ECS aptas para a criação de pods.
ImportanteAs famílias de instâncias ECS de oitava geração suportam exclusivamente a arquitetura ARM. Para criar um pod utilizando essas famílias, defina o campo nodeSelector a fim de agendar o pod em um nó virtual baseado em ARM. Não é permitido combinar famílias de oitava geração com aquelas que utilizam arquitetura x86. Na criação de pods baseados em ARM, não há necessidade de especificar ou excluir gerações específicas de famílias de instâncias ECS. Por exemplo, não é preciso excluir as famílias de oitava geração. Para mais informações, consulte Agendar pods em um nó virtual baseado em ARM e Tipos de instância ECS de arquitetura ARM.
-
Adicionar um sinal de menos (
-) antes de uma geração de família de instâncias ECS resulta na exclusão dessa geração.Por exemplo,
k8s.aliyun.com/eci-instance-generation: "-5,-4"determina a exclusão das famílias de instâncias ECS de quinta e quarta gerações, permitindo o uso das famílias de sétima ou sexta geração. -
A seleção das gerações especificadas segue a ordem em que foram definidas.
Como exemplo, a anotação
k8s.aliyun.com/eci-instance-generation: "6,5"instrui o sistema a priorizar as famílias de instâncias ECS de sexta geração. Se os recursos dessas famílias que atendem às especificações de vCPU e memória forem insuficientes, o sistema recorre às famílias de quinta geração. Caso os recursos da quinta geração também estejam indisponíveis, nenhum pod será criado.
Antes de utilizar a anotação k8s.aliyun.com/eci-instance-generation, defina o número de vCPUs e o tamanho da memória através de um dos métodos abaixo:
Defina o parâmetro limits ou requests dos contêineres. Recomenda-se o uso do parâmetro limits.
Adicione a anotação
k8s.aliyun.com/eci-use-specsaos metadados do pod.
Você pode usar conjuntamente k8s.aliyun.com/eci-instance-family para especificar ou excluir famílias de especificações ECS, permitindo um controle mais granular das especificações. Se ambos forem definidos, a anotação listada primeiro terá maior prioridade. Veja os exemplos a seguir:
-
Exemplo 1: A configuração em family tem prioridade sobre a configuração em generation; portanto, a ordem de seleção de especificações é ecs.c5 > ecs.c6.
k8s.aliyun.com/eci-instance-family: "ecs.c5, ecs.c6" k8s.aliyun.com/eci-instance-generation: "6,5" -
Exemplo 2: A configuração em generation tem prioridade sobre a configuração em family; logo, a ordem de seleção de especificações é ecs.c6e > c6 > g5.
k8s.aliyun.com/eci-instance-generation": "6,5" k8s.aliyun.com/eci-instance-family: "ecs.c6e, ecs.g5, ecs.c6"