Ao criar um pod ECI com especificação de vCPU e memória, adicione a anotação k8s.aliyun.com/eci-instance-family se precisar de uma instância subjacente específica, como usar apenas a família ecs.g6. Este tópico descreve como especificar ou excluir famílias de instâncias ECS na criação de pods ECI.
Funcionamento
Na criação de um pod ECI com definição de vCPU e memória, o sistema pode utilizar diversos tipos de instância ECS. Ele seleciona automaticamente um tipo que atenda aos requisitos de vCPU e memória e tenha estoque disponível. Adicione a anotação k8s.aliyun.com/eci-instance-family para restringir essa seleção ao especificar ou excluir famílias de instâncias ECS.
Se você especificar uma ou mais famílias de instâncias ECS, o sistema selecionará tipos de instância apenas dessas famílias. Caso não haja tipos correspondentes disponíveis nas famílias especificadas, a criação do pod falhará.
Ao excluir uma ou mais famílias de instâncias ECS, o sistema selecionará um tipo de instância de qualquer outra família suportada.
Para controle mais granular, combine esta anotação com k8s.aliyun.com/eci-instance-generation para especificar ou excluir gerações de instâncias ECS.
A tabela a seguir lista as famílias de instâncias ECS que podem ser especificadas ou excluídas.
Arquitetura | Geração das famílias 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 tópicos a seguir:
Notas de uso
-
O faturamento de pods ECI criados com especificação ou exclusão de família de instâncias ECS baseia-se no tipo de instância ECS provisionado, e não na vCPU e memória solicitadas.
ImportanteApós criar o pod ECI, execute o comando
kubectl describe podpara visualizar seus detalhes. Verifique o campok8s.aliyun.com/eci-instance-specpara confirmar o tipo real de instância ECS usado no faturamento. Ao especificar ou excluir famílias de instâncias ECS, o sistema não seleciona automaticamente certos tipos especializados, como instâncias GPU (por exemplo, gn6i) ou com disco local (por exemplo, i2g). Para usar esses tipos, especifique-os diretamente. Para mais informações, consulte Especificar tipos de instância ECS para criar um pod.
Este recurso aplica-se apenas à especificação de requisitos de vCPU e memória. Se você definir um tipo exato de instância ECS, esta anotação não terá efeito.
Use este recurso para criar instâncias preemptíveis. Nesse cenário, o sistema considera tanto a ordem das famílias de instâncias na configuração quanto o preço de mercado, priorizando o preço. Caso tenha um requisito estrito para uma família específica, recomendamos configurar apenas uma.
Configuração
Defina o valor da anotação k8s.aliyun.com/eci-instance-family com uma ou mais famílias de instâncias ECS seguindo as regras abaixo:
-
Especifique uma lista separada por vírgulas de famílias de instâncias ECS compatíveis com o ECI.
ImportanteAtualmente, os tipos de instância de 8ª geração estão disponíveis apenas para a arquitetura ARM. Ao criar um pod, use um nodeSelector para agendá-lo em um nó baseado em ARM. Portanto, não misture famílias de instâncias baseadas em ARM e x86 no mesmo valor de anotação. Ao direcionar para nós ARM, especifique ou exclua apenas outras famílias baseadas em ARM. Para um exemplo de configuração, consulte Exemplo 5: Especificar uma família de instâncias baseada em ARM.
-
Adicione um hífen (
-) antes de uma família de instâncias para excluí-la.Por exemplo,
k8s.aliyun.com/eci-instance-family: "-ecs.c6, -ecs.c5"exclui as famílias ecs.c6 e ecs.c5. -
Caso especifique múltiplas famílias de instâncias, o sistema as tentará na ordem fornecida.
Por exemplo,
k8s.aliyun.com/eci-instance-family: "ecs.c6, ecs.c5"indica que o sistema tentará primeiro selecionar um tipo de instância da família ecs.c6. Se nenhum tipo adequado com estoque disponível for encontrado, ele recorrerá à família ecs.c5. Se a família ecs.c5 também não tiver um tipo adequado, a criação do pod falhará.
Ao usar a anotação k8s.aliyun.com/eci-instance-family, especifique primeiro a vCPU e a memória. Faça isso de uma das seguintes maneiras:
Defina requests ou limits para um contêiner. Recomendamos o uso de limits.
Adicione a anotação
k8s.aliyun.com/eci-use-specsaos metadados do pod.
Use a anotação k8s.aliyun.com/eci-instance-generation em conjunto com k8s.aliyun.com/eci-instance-family para obter controle mais granular sobre a seleção de instâncias. Se ambas forem especificadas, a anotação que aparecer primeiro no arquivo YAML terá maior prioridade. Os exemplos a seguir descrevem esse comportamento:
-
Exemplo 1: A configuração em family tem prioridade sobre a configuração em generation; portanto, a prioridade de seleção de especificação é 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; portanto, a prioridade de seleção de especificação é ecs.c6e>c6>g5.
k8s.aliyun.com/eci-instance-generation": "6,5" k8s.aliyun.com/eci-instance-family: "ecs.c6e, ecs.g5, ecs.c6"