O Elastic Container Instance (ECI) permite executar pods em infraestrutura serverless totalmente gerenciada em clusters ACK Serverless, sem necessidade de gerenciar nós. Esta página aborda as especificações de computação compatíveis com o ECI e como escolher o método de criação mais adequado para sua carga de trabalho.
Como funciona
Ao criar um pod ECI, especifique os recursos de computação usando a anotação k8s.aliyun.com/eci-use-specs. O ECI seleciona uma instância correspondente e executa o pod nela. Após o início do pod, verifique o campo k8s.aliyun.com/eci-instance-spec no arquivo YAML do pod para identificar qual especificação foi realmente utilizada, pois isso determina o faturamento.
Se o ECI utilizar um tipo de instância ECS, o faturamento será baseado nesse tipo de instância.
Caso o ECI utilize especificações de vCPU e memória, o faturamento considerará a quantidade de vCPUs e o tamanho da memória.
Limitações
Antes de criar pods ECI, revise as seguintes restrições:
GPU, disco local e ARM: Se o pod exigir aceleração por GPU, discos locais ou arquitetura ARM, especifique apenas os tipos de instância correspondentes. Não há suporte para combinar esses requisitos com especificações incompatíveis.
Instâncias preemptíveis: Algumas especificações de vCPU e memória (disponíveis apenas em certas regiões) não permitem a criação de instâncias preemptíveis.
Arquitetura: O ECI utiliza a arquitetura x86 por padrão. Para pods baseados em ARM, consulte Agendar pods em um nó virtual baseado em ARM.
Posicionamento da anotação: Adicione
k8s.aliyun.com/eci-use-specsao campometadatana especificação do pod. Em um Deployment, adicione-a emspec.template.metadata.
Especifique recursos de computação usando k8s.aliyun.com/eci-use-specs
Utilize esta anotação para declarar os recursos de computação necessários ao pod. O ECI tenta cada especificação seguindo a ordem de prioridade (da primeira à última) até criar o pod com sucesso.
|
Chave da anotação |
Obrigatório |
Formato do valor |
Observações |
|
|
Sim |
Lista de especificações separadas por vírgula |
Até 5 especificações. Especifique vCPU/memória (ex.: |
Exemplo 1: Especificar tipos de instância com GPU
Use tipos de instância com GPU e defina o limite de recurso nvidia.com/gpu por contêiner. As GPUs são compartilhadas entre os contêineres do pod.
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-use-specs: "ecs.gn6i-c4g1.xlarge,ecs.gn6i-c8g1.2xlarge" # Specify a maximum of five GPU-accelerated ECS instance types at a time.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
resources:
limits:
nvidia.com/gpu: "1" # The number of GPUs required by the Nginx container. The GPUs are shared.
ports:
- containerPort: 80
- name: busybox
image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
command: ["sleep"]
args: ["999999"]
resources:
limits:
nvidia.com/gpu: "1" # The number of GPUs required by the BusyBox container. The GPUs are shared.
Exemplo 2: Combinar especificações de vCPU/memória e tipos de instância ECS
Liste as especificações em ordem de prioridade. O ECI as testa da esquerda para a direita até obter êxito em uma delas.
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-use-specs: 2-4Gi,ecs.c5.large,ecs.c6.large # Sets the specifications that you want to use to create the pod. Replace the value by using the actual specifications.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Verificar a especificação utilizada
Após o início do pod, consulte o campo k8s.aliyun.com/eci-instance-spec no arquivo YAML do pod para confirmar qual especificação o ECI alocou efetivamente e validar a base de faturamento.
Especificações de computação compatíveis
Especificações de vCPU e memória
Disponíveis em todas as regiões
|
vCPU |
Memória (GiB) |
Largura de banda (bidirecional, Gbit/s, limite superior teórico) |
|
0,25 |
0,5 e 1 |
0,08 |
|
0,5 |
1 e 2 |
0,08 |
|
1 |
2, 4 e 8 |
0,1 |
|
2 |
1, 2, 4, 8 e 16 |
1 |
|
4 |
2, 4, 8, 16 e 32 |
1,5 |
|
8 |
4, 8, 16, 32 e 64 |
2 |
|
12 |
12, 24, 48 e 96 |
2,5 |
|
16 |
16, 32, 64 e 128 |
3 |
|
24 |
24, 48, 96 e 192 |
4,5 |
|
32 |
32, 64, 128 e 256 |
6 |
|
52 |
96, 192 e 384 |
12,5 |
|
64 |
128, 256 e 512 |
20 |
Disponíveis apenas em algumas regiões
Estas especificações não podem ser usadas para instâncias preemptíveis. Regiões compatíveis: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Chengdu) e Singapura. Caso a especificação não esteja disponível na região e zona selecionadas, não será possível criar o pod.
|
vCPU |
Memória (GiB) |
Largura de banda (bidirecional, Gbit/s, limite superior teórico) |
|
2 |
6, 10, 12 e 14 |
1 |
|
4 |
6, 10, 12, 14, 18, 20, 22, 24, 26, 28 e 30 |
1,5 |
|
6 |
6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46 e 48 |
1,5 |
|
8 |
10, 12, 14, 18, 20, 22, 24, 26, 28, 30, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60 e 62 |
2,5 |
ECS instance families
Escolha um método de criação
O ECI oferece três métodos de criação. Escolha aquele que melhor atende aos seus requisitos de recursos e faturamento.
|
Método de criação |
Base de faturamento |
Quando usar |
|
Especificar tamanho de vCPU e memória |
Especificações de vCPU + memória |
Quando você precisa de dimensionamento flexível de recursos e deseja pagar conforme a solicitação. Se forem especificadas combinações de vCPU/memória incompatíveis, o sistema ajustará as especificações e cobrará com base nas novas configurações. |
|
Especificar um tipo de instância ECS |
Tipo de instância ECS |
Recomendado quando são necessárias capacidades específicas de hardware, como aceleração por GPU ou discos locais |
|
Especificar famílias ou gerações de instâncias ECS como filtros (com vCPU/memória) |
Tipo real de instância ECS selecionado pelo ECI |
Mais indicado para quem busca flexibilidade de vCPU/memória, mas precisa restringir quais famílias de instâncias o ECI pode selecionar |
Para etapas detalhadas de cada método, consulte:
Especificar o número de vCPUs e o tamanho da memória para criar um pod
Ignorar contêineres específicos quando o sistema ajusta as especificações de recursos
Especificar ou excluir famílias de instâncias ECS para criar um pod
Especificar ou excluir gerações específicas de famílias de instâncias ECS para criar um pod
Reduza custos
Instâncias preemptíveis
Instâncias preemptíveis reduzem significativamente os custos para cargas de trabalho stateless e tolerantes a falhas. Consulte Criar uma elastic container instance preemptível.
Instâncias reservadas e planos de economia
Para cargas de trabalho estáveis e de longa duração, compense suas faturas do ECI com instâncias reservadas ou planos de economia:
Pods faturados por vCPU/memória: Utilize planos de economia de uso geral.
Pods faturados por tipo de instância ECS: Opte por planos de economia de uso geral, planos de economia de computação ECS ou instâncias reservadas.
Consulte Usar instâncias reservadas e Usar planos de economia.
Lidar com insuficiência de recursos
O ECI consome recursos dos pools regionais da nuvem. Ao criar muitos pods, algumas regiões ou zonas podem ficar com poucos recursos disponíveis. Para aumentar a taxa de sucesso na criação de pods, especifique múltiplas configurações e vários vSwitches em diferentes zonas: