Um pod é a menor unidade implantável no Kubernetes e geralmente consiste em um ou mais contêineres. O tipo de computação e a qualidade do poder de computação de um pod impactam significativamente o desempenho da aplicação e a utilização de recursos. Container Compute Service (ACS) oferece vários tipos de computação e classes de qualidade de poder de computação correspondentes para atender a diversos requisitos de aplicação. Este tópico descreve os recursos principais e as limitações dos pods do ACS, incluindo isolamento de segurança, configurações de recursos e especificações de CPU, memória e GPU, pull de imagens, armazenamento, rede e coleta de logs.
Definições de tipo de computação
O ACS oferece tipos de computação de contêineres com CPU e GPU de alto custo-benefício, com diferentes alocações de recursos para se adequar a diversos cenários de negócios.
|
Tipo de computação |
Rótulo |
Recursos |
|
Uso geral (padrão) |
general-purpose |
Adequado para a maioria das aplicações de microsserviços sem estado, aplicações web Java e tarefas de computação. |
|
Otimizado para desempenho |
performance |
Adequado para cenários que exigem maior desempenho, como treinamento e inferência de IA/ML baseados em CPU e processamento em lote de HPC. |
|
Tipo GPU |
gpu |
Adequado para cenários de computação heterogênea, como IA e HPC, incluindo inferência com GPU única e múltiplas GPUs, e computação paralela de GPU. |
|
GPU de rede de alto desempenho (gpu-hpn) |
gpu-hpn |
Adequado para cenários de computação heterogênea, como IA e HPC, incluindo treinamento distribuído de GPU, inferência distribuída e computação de alto desempenho de GPU. |
O tipo de computação é definido por meio do rótulo alibabacloud.com/compute-class no pod. Os exemplos a seguir mostram a configuração YAML para uma aplicação NGINX com o tipo de computação definido como general-purpose, gpu ou gpu-hpn.
Uso geral
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Acelerado por GPU
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# Set the compute-class to gpu.
alibabacloud.com/compute-class: "gpu"
# Set the GPU model to example-model. Replace the value as needed, for example, T4.
alibabacloud.com/gpu-model-series: "example-model"
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # Specify the number of GPUs. Set the resource label and quantity as needed.
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # Specify the number of GPUs. Set the resource label and quantity as needed.
Para obter mais informações sobre os modelos e especificações de GPU compatíveis com o ACS, consulte Especificações do tipo de computação acelerada.
GPU de rede de alto desempenho
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# Set the compute-class to gpu-hpn.
alibabacloud.com/compute-class: "gpu-hpn"
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # Specify the number of GPUs. Set the resource label and quantity as needed.
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # Specify the number of GPUs. Set the resource label and quantity as needed.
Para usar GPUs de rede de alto desempenho no ACS, primeiro crie uma reserva de capacidade GPU-HPN.
Definições de qualidade do poder de computação
O ACS fornece duas classes de qualidade de poder de computação com diferentes alocações de recursos para se adequar a vários cenários de negócios.
Qualidade do poder de computação | Rótulo | Recursos | Cenários típicos de aplicação |
Padrão | default |
|
|
BestEffort | best-effort |
|
|
A qualidade do poder de computação é definida por meio do rótulo alibabacloud.com/compute-qos no pod. O exemplo a seguir mostra a configuração YAML para uma aplicação NGINX com a qualidade do poder de computação definida como default.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-qos: default
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
As classes de qualidade de poder de computação definidas pelo ACS são diferentes das classes de QoS nativas no Kubernetes. A classe de qualidade de poder de computação padrão no ACS corresponde à classe de QoS Guaranteed no Kubernetes.
O inventário para instâncias BestEffort é dinâmico. Em ambientes de produção, é altamente recomendável usar uma política de agendamento com prioridade para inventário. Essa política permite que a plataforma mude automaticamente para a classe de qualidade padrão quando o inventário não estiver disponível. Para obter mais informações, consulte Política de agendamento de recursos personalizados.
Mapeamentos entre tipos de computação e classes de qualidade do poder de computação
|
Tipo de computação (rótulo) |
Classes de qualidade do poder de computação compatíveis (rótulos) |
|
Uso geral (general-purpose) |
Padrão (default), BestEffort (best-effort) |
|
Otimizado para desempenho (performance) |
Padrão (default), BestEffort (best-effort) |
|
Tipo GPU (gpu) |
Padrão (default), BestEffort (best-effort) |
|
GPU de rede de alto desempenho (gpu-hpn) |
Padrão (default) |
Especifique a marca da CPU
Os tipos de computação Uso geral (general-purpose) e Otimizado para desempenho (performance) suportam dois fornecedores de CPU: Intel e AMD.
Especifique o fornecedor de CPU adicionando a anotação alibabacloud.com/cpu-vendors a um pod ou definindo a anotação alibabacloud.com/cpu-vendors no modelo de pod de uma carga de trabalho. Para usar CPUs AMD, envie um ticket para ser adicionado à lista de permissões. O sistema não aceita a especificação dessa anotação para outros tipos de computação, o que resulta em uma mensagem de erro. A anotação aceita os seguintes valores:
Chave | Valor | Definição |
| intel (padrão) | Especifica uma CPU Intel. Se não for especificado, o valor padrão é "intel". |
amd | Especifica uma CPU AMD. | |
intel, amd | Especifica uma CPU Intel ou AMD. O sistema seleciona uma marca de CPU adequada para criar a instância com base no inventário. Quando você especifica vários valores, o sistema não aceita uma ordem de preferência. |
Após a criação da instância, consulte o valor do rótulo alibabacloud.com/cpu-vendor no YAML do pod para verificar a marca real da CPU.
O exemplo a seguir mostra a configuração YAML para uma aplicação NGINX, especificando a marca da CPU como amd.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
annotations:
alibabacloud.com/cpu-vendors: amd
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Não use rótulos do sistema ACS, como alibabacloud.com/compute-class, alibabacloud.com/compute-qos e alibabacloud.com/cpu-vendor, como rótulos de filtro para o matchLabels da carga de trabalho. O sistema pode modificar esses rótulos, o que pode fazer com que o controlador recrie pods frequentemente e afete a estabilidade da aplicação.
Recursos principais
Recurso | Descrição |
Isolamento de segurança | O ACS é um ambiente de execução de contêineres serverless seguro. O ACS isola fortemente cada instância de pod usando tecnologia de sandbox leve, sem interferência entre instâncias. Durante o agendamento, o sistema distribui as instâncias em diferentes máquinas físicas tanto quanto possível para maximizar a disponibilidade. |
Configuração de especificação de recursos de CPU/Memória/GPU/EphemeralStorage |
|
Imagem | Por padrão, sempre que um pod do ACS é reiniciado, ele faz o pull de uma imagem de um registro de contêiner remoto através da virtual private cloud (VPC) onde o pod está implantado. Se o registro for acessível publicamente, você deve configurar um gateway NAT para a VPC. Para fazer o pull de imagens mais rapidamente através de VPCs, use o Container Registry (ACR) para hospedar imagens de contêiner. Além disso, o ACS oferece suporte ao pull de imagens privadas do Container Registry sem usar Secrets. |
Armazenamento | O ACS suporta quatro tipos de armazenamento persistente: discos em nuvem, NAS, OSS e CPFS.
|
Rede | Por padrão, um pod do ACS usa um IP de pod independente e ocupa uma ENI de um vSwitch. Em um cluster ACS, os pods podem se comunicar uns com os outros das seguintes maneiras:
|
Coleta de logs | Configure diretamente as variáveis de ambiente do pod para coletar logs de |
Especificações de recursos
Em um cluster ACS, as especificações de pod para os tipos de computação GPU e GPU-HPN são ajustadas automaticamente no momento do envio. Por exemplo, os pods de GPU são ajustados uniformemente para QoS Guaranteed (request igual a limit). Ao usar o poder de computação de GPU do ACS a partir de outras fontes (como clusters ACK ou ACK One), o ajuste de especificação de recurso não é refletido nos metadados do pod. Certifique-se de que o QoS do pod permaneça inalterado antes e depois do envio. Para tipos de computação GPU, envie o pod com QoS Guaranteed para evitar falhas na atualização do status do pod.
Tipos de computação de uso geral
Tipo de computação de uso geral
vCPU | Memória (GiB) | Incremento de memória (GiB) | Largura de banda de rede (entrada + saída) (Gbit/s) | Armazenamento |
0.25 | 0.5, 1, 2 | N/A | 0.08 | Capacidades de até 30 GiB são gratuitas. Para capacidades acima de 30 GiB, o excedente é cobrado separadamente. A configuração máxima suportada é de 2.000 GiB. Para espaço de armazenamento adicional, monte volumes de armazenamento como o NAS. |
0.5 | 1 a 4 | 1 | 0.08 | |
1 | 1 a 8 | 0.1 | ||
1.5 | 2 a 12 | 1 | ||
2 | 2 a 16 | |||
2.5 | 3 a 20 | 1.5 | ||
3 | 3 a 24 | |||
3.5 | 4 a 28 | |||
4 | 4 a 32 | |||
4.5 | 5 a 36 | |||
5 | 5 a 40 | |||
5.5 | 6 a 44 | |||
6 | 6 a 48 | |||
6.5 | 7 a 52 | 2.5 | ||
7 | 7 a 56 | |||
7.5 | 8 a 60 | |||
8 | 8 a 64 | |||
8.5 | 9 a 68 | |||
9 | 9 a 72 | |||
9.5 | 10 a 76 | |||
10 | 10 a 80 | |||
10.5 | 11 a 84 | |||
11 | 11 a 88 | |||
11.5 | 12 a 92 | |||
12 | 12 a 96 | |||
12.5 | 13 a 100 | 3 | ||
13 | 13 a 104 | |||
13.5 | 14 a 108 | |||
14 | 14 a 112 | |||
14.5 | 15 a 116 | |||
15 | 15 a 120 | |||
15.5 | 16 a 124 | |||
16 | 16 a 128 | |||
24 | 24, 48, 96, 192 | N/A | 4.5 | |
32 | 32, 64, 128, 256 | N/A | 6 | |
48 | 48, 96, 192, 384 | N/A | 12.5 | |
64 | 64, 128, 256, 512 | N/A | 20 |
Tipo de computação de desempenho
vCPU | Memória (GiB) | Incremento de memória (GiB) | Largura de banda de rede (entrada + saída) (Gbit/s) | Armazenamento |
0.25 | 0.5, 1, 2 | N/A | 0.1 | Capacidades de até 30 GiB são gratuitas. Para capacidades acima de 30 GiB, o excedente é cobrado separadamente. A configuração máxima suportada é de 2.000 GiB. Para espaço de armazenamento adicional, monte volumes de armazenamento como o NAS. |
0.5 | 1 a 4 | 1 | 0.5 | |
1 | 1 a 8 | |||
1.5 | 2 a 12 | |||
2 | 2 a 16 | 1.5 | ||
2.5 | 3 a 20 | |||
3 | 3 a 24 | |||
3.5 | 4 a 28 | |||
4 | 4 a 32 | 2 | ||
4.5 | 5 a 36 | |||
5 | 5 a 40 | |||
5.5 | 6 a 44 | |||
6 | 6 a 48 | 2.5 | ||
6.5 | 7 a 52 | |||
7 | 7 a 56 | |||
7.5 | 8 a 60 | |||
8 | 8 a 64 | 3 | ||
8.5 | 9 a 68 | |||
9 | 9 a 72 | |||
9.5 | 10 a 76 | |||
10 | 10 a 80 | 3.5 | ||
10.5 | 11 a 84 | |||
11 | 11 a 88 | |||
11.5 | 12 a 92 | |||
12 | 12 a 96 | 4 | ||
12.5 | 13 a 100 | |||
13 | 13 a 104 | |||
13.5 | 14 a 108 | |||
14 | 14 a 112 | 4.5 | ||
14.5 | 15 a 116 | |||
15 | 15 a 120 | |||
15.5 | 16 a 124 | |||
16 | 16 a 128 | 6 | ||
24 | 24, 48, 96, 192 | N/A | 8 | |
32 | 32, 64, 128, 256 | N/A | 10 | |
48 | 48, 96, 192, 384 | N/A | 16 | |
64 | 64, 128, 256, 512 | N/A | 25 |
Para usar pods do ACS com mais de 16 vCPUs ou mais de 128 GiB de memória, envie um ticket para solicitar acesso.
Caso não especifique as especificações ao definir .resources.requests e .resources.limits para os contêineres, um único pod receberá, por padrão, a alocação de 2 vCPUs e 4 GiB de memória.
O ACS ajusta automaticamente as especificações do pod. O sistema calcula o valor acumulado de .resources.requests e .resources.limits para todos os contêineres, obtém o valor máximo entre esses dois e ajusta o pod para a especificação suportada mais próxima. Essa especificação ajustada é exibida na anotação alibabacloud.com/pod-use-spec. Se ocorrer um ajuste para cima, o ACS modifica o .resources.requests ou .resources.limits do contêiner para garantir que a aplicação possa usar todos os recursos alocados.
Lógica de ajuste de especificação de pod do ACS
Por exemplo, suponha que o valor acumulado de .resources.requests ou .resources.limits seja de 2 vCPUs e 3,5 GiB de memória. Quando o pod é iniciado, o ACS ajusta automaticamente a especificação do pod para 2 vCPUs e 4 GiB de memória. Os recursos extras ajustados são aplicados ao primeiro contêiner, e o pod recebe a anotação alibabacloud.com/pod-use-spec=2-4Gi. A seguir, veja um exemplo de declaração de recursos:
apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 2 # Declare 2 vCPUs
memory: "3.5Gi" # Declare 3.5 GiB of memory
ephemeral-storage: "30Gi" # Declare 30 GiB of storage space
A declaração de recursos após o ajuste fica da seguinte forma:
apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/pod-use-spec: "2-4Gi"
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 2 # Declare 2 vCPUs
memory: "4Gi" # Declare 4 GiB of memory
ephemeral-storage: "30Gi" # Declare 30 GiB of storage space
Especifique as especificações do pod usando uma anotação
Aplicabilidade
Este recurso está disponível apenas para pods de CPU dos tipos de computação General-purpose (general-purpose) e Performance-optimized (performance).
A especificação máxima suportada pela anotação é de 64 vCPUs e 512 GiB, sujeita às especificações do tipo de computação de uso geral.
Uso
Para cenários em que a Qualidade de Serviço (QoS) é Burstable (.resources.limits > .resources.requests), você pode declarar as especificações de recursos de destino para um pod; para isso, especifique a anotação alibabacloud.com/pod-required-spec: "X-YGi". As especificações de recursos devem usar o formato <CPU>-<Memory>, em que você especifica a CPU em núcleos (por exemplo, "2" representa 2 vCPUs) e a memória em GiB (por exemplo, "4Gi" representa 4 GiB). As regras detalhadas de alinhamento e uso de recursos são as seguintes:
Se o formato da especificação de recurso estiver incorreto, como unidades ausentes, uso de MiB ou ordem incorreta, a criação do pod falhará.
Caso defina a anotação, mas não configure
.resourcespara nenhum contêiner, o sistema seguirá estritamente o valor da anotação para o ajuste e não retornará à especificação padrão de 2 vCPUs e 4 GiB.Se o valor da anotação for menor que a soma de
.resources.requestspara todos os contêineres no pod, a criação do pod falhará.-
Se o valor da anotação for maior que a soma de
.resources.limitspara todos os contêineres no pod, o sistema usará o valor da anotação como a especificação de destino para o ajuste do pod.Em um pod com vários contêineres, o primeiro contêiner é considerado o contêiner principal. O sistema calcula a diferença entre o valor da anotação e a soma dos
limitsatuais. Essa diferença é então adicionada ao.resources.limitsdo contêiner principal. O valor de.resources.requeststambém é ajustado, se necessário, para alinhar o total de recursos do pod com a especificação de destino.
Exemplo
Por exemplo, suponha que alibabacloud.com/pod-required-spec: "2-4Gi" esteja configurado e o valor acumulado de .resources.requests ou .resources.limits do contêiner seja de 1 vCPU e 2 GiB de memória. Quando o pod é iniciado, o ACS ajusta automaticamente a especificação do pod para 2 vCPUs e 4 GiB de memória. Os recursos extras ajustados são aplicados ao primeiro contêiner, e o pod recebe a anotação alibabacloud.com/pod-use-spec=2-4Gi.
A seguir, veja um exemplo de declaração de recursos:
O .resources.limits.memory é de 3,5 GiB.
apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
annotations:
alibabacloud.com/pod-required-spec: "2-4Gi"
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 1 # Declare 1 vCPU
memory: "2Gi" # Declare 2 GiB of memory
ephemeral-storage: "30Gi" # Declare 30 GiB of storage space
limits:
cpu: 2 # Declare 2 vCPUs
memory: "3.5Gi" # Declare 3.5 GiB of memory
ephemeral-storage: "30Gi" # Declare 30 GiB of storage space
A declaração de recursos após o ajuste fica da seguinte forma:
O .resources.limits.memory é ajustado de 3,5 GiB para 4 GiB.
apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/pod-required-spec: "2-4Gi"
alibabacloud.com/pod-use-spec: "2-4Gi"
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 1 # Declare 1 vCPU
memory: "2Gi" # Declare 2 GiB of memory
ephemeral-storage: "30Gi" # Declare 30 GiB of storage space
limits:
cpu: 2 # Declare 2 vCPUs
memory: "4Gi" # Declare 4 GiB of memory
ephemeral-storage: "30Gi" # Declare 30 GiB of storage space
Tipos de computação acelerada
A seguir, os modelos de GPU com suporte no ACS. As especificações podem variar entre os diferentes modelos. Para consultar o mapeamento detalhado das especificações, envie um ticket para obter mais informações.
GU8TF
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (96 GB de memória GPU) | 2 | 2 a 16 | 1 | 30 a 256 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 128 | 1 | ||
22 | 22, 32, 64, 128 | N/A | ||
2 (96 GB × 2 de memória GPU) | 16 | 16 a 128 | 1 | 30 a 512 |
32 | 32, 64, 128, 230 | N/A | ||
46 | 64, 128, 230 | N/A | ||
4 GPUs (96 GB cada) | 32 | 32, 64, 128, 256 | N/A | 30 a 1024 |
64 | 64, 128, 256, 460 | N/A | ||
92 | 128, 256, 460 | N/A | ||
8 GPUs (96 × 8 GB de memória GPU total) | 64 | 64, 128, 256, 512 | N/A | 30 a 2048 |
128 | 128, 256, 512, 920 | N/A | ||
184 | 256, 512, 920 | N/A |
GU8TEF
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (141 GB de memória GPU) | 2 | 2 a 16 | 1 | 30 a 768 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 128 | 1 | ||
22 | 22, 32, 64, 128, 225 | N/A | ||
2 (141 GB × 2 de memória GPU) | 16 | 16 a 128 | 1 | 30 a 1536 |
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 450 | N/A | ||
4 (141 GB × 4 de memória GPU) | 32 | 32, 64, 128, 256 | N/A | 30 a 3072 |
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 900 | N/A | ||
8 (141 GB × 8 de memória GPU) | 64 | 64, 128, 256, 512 | N/A | 30 a 6144 |
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1800 | N/A |
L20(GN8IS)
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (48 GB de memória GPU) | 2 | 2 a 16 | 1 | 30 a 256 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 120 | 1 | ||
2 (48 GB × 2 de memória GPU) | 16 | 16 a 128 | 1 | 30 a 512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 GB × 4 de memória GPU) | 32 | 32, 64, 128, 256 | N/A | 30 a 1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 GB × 8 de memória GPU) | 64 | 64, 128, 256, 512 | N/A | 30 a 2048 |
128 | 128, 256, 512, 920 | N/A |
L20X (GX8SF)
|
GPU (placas) |
vCPU |
Memória (GiB) |
Incremento de memória (GiB) |
Armazenamento (GiB) |
|
8 (141 GB × 8 de memória GPU) |
184 |
1800 |
N/A |
30 a 6144 |
P16EN
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (96 GB de memória GPU) | 2 | 2 a 16 | 1 | 30 a 384 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
2 (96 GB × 2 de memória GPU) | 4 | 4 a 32 | 1 | 30 a 768 |
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
16 | 16 a 128 | 1 | ||
22 | 32, 64, 128, 225 | N/A | ||
4 (96 GB × 4 de memória GPU) | 8 | 8 a 64 | 1 | 30 a 1536 |
16 | 16 a 128 | 1 | ||
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 450 | N/A | ||
8 (96 GB × 8 de memória GPU) | 16 | 16 a 128 | 1 | 30 a 3072 |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 900 | N/A | ||
16 (96 GB × 16 de memória GPU) | 32 | 32, 64, 128, 256 | N/A | 30 a 6144 |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1800 | N/A |
T4
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (16 GB de memória GPU) | 2 | 2 a 8 | 1 | 30 a 1536 |
4 | 4 a 16 | 1 | ||
6 | 6 a 24 | 1 | ||
8 | 8 a 32 | 1 | ||
10 | 10 a 40 | 1 | ||
12 | 12 a 48 | 1 | ||
14 | 14 a 56 | 1 | ||
16 | 16 a 64 | 1 | ||
24 | 24, 48, 90 | N/A | 30 a 1536 | |
2 (16 GB × 2 de memória GPU) | 16 | 16 a 64 | 1 | |
24 | 24, 48, 96 | N/A | ||
32 | 32, 64, 128 | N/A | ||
48 | 48, 96, 180 | N/A |
A10
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (24 GB de memória GPU) | 2 | 2 a 8 | 1 | 30 a 256 |
4 | 4 a 16 | 1 | ||
6 | 6 a 24 | 1 | ||
8 | 8 a 32 | 1 | ||
10 | 10 a 40 | 1 | ||
12 | 12 a 48 | 1 | ||
14 | 14 a 56 | 1 | ||
16 | 16 a 60 | 1 | ||
2 (24 GB × 2 de memória GPU) | 16 | 16 a 64 | 1 | 30 a 512 |
32 | 32, 64, 120 | N/A | ||
4 (24 GB × 4 de memória GPU) | 32 | 32, 64, 128 | N/A | 30 a 1024 |
64 | 64, 128, 240 | N/A | ||
8 (24 GB × 8 de memória GPU) | 64 | 64, 128, 256 | N/A | 30 a 2048 |
128 | 128, 256, 480 | N/A |
G28Ti
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (11 GB de memória de GPU) | 2 | 2 a 8 | 1 | 30 a 1536 |
4 | 4 a 16 | 1 | ||
6 | 6 a 24 | 1 | ||
8 | 8 a 32 | 1 | ||
10 | 10 a 40 | 1 | ||
12 | 12 a 48 | 1 |
G49E
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (48 GB de memória de GPU) | 2 | 2 a 16 | 1 | 30 a 256 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 120 | 1 | ||
2 (48 GB × 2 de memória de GPU) | 16 | 16 a 128 | 1 | 30 a 512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 GB × 4 de memória de GPU) | 32 | 32, 64, 128, 256 | N/A | 30 a 1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 GB × 8 de memória de GPU) | 64 | 64, 128, 256, 512 | N/A | 30 a 2048 |
128 | 128, 256, 512, 920 | N/A |
G59
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (32 GB de memória de GPU) | 2 | 2 a 16 | 1 | 30 a 256 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 128 | 1 | ||
22 | 22, 32, 64, 128 | N/A | ||
2 (32 GB × 2 de memória de GPU) | 16 | 16 a 128 | 1 | 30 a 512 |
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 360 | N/A | ||
4 (32 GB × 4 de memória de GPU) | 32 | 32, 64, 128, 256 | N/A | 30 a 1024 |
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 720 | N/A | ||
8 (32 GB × 8 de memória de GPU) | 64 | 64, 128, 256, 512 | N/A | 30 a 2048 |
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1440 | N/A |
L20N
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (48 GB de memória de GPU) | 2 | 2 a 16 | 1 | 30 a 2048 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 128 | 1 | ||
32 | 32, 64, 128, 256 | N/A | ||
2 (48 GB × 2 de memória de GPU) | 16 | 16 a 128 | 1 | |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 512 | N/A | ||
4 (48 GB × 4 de memória de GPU) | 32 | 32, 64, 128, 256 | N/A | |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 1024 | N/A | ||
8 (48 GB × 8 de memória de GPU) | 64 | 64, 128, 256, 512 | N/A | |
128 | 128, 256, 512, 1024 | N/A | ||
256 | 256, 512, 1024, 2048 | N/A |
L20NE
GPU (placas) | vCPU | Memória (GiB) | Incremento de memória (GiB) | Armazenamento (GiB) |
1 (72 GB de memória de GPU) | 2 | 2 a 16 | 1 | 30 a 2048 |
4 | 4 a 32 | 1 | ||
6 | 6 a 48 | 1 | ||
8 | 8 a 64 | 1 | ||
10 | 10 a 80 | 1 | ||
12 | 12 a 96 | 1 | ||
14 | 14 a 112 | 1 | ||
16 | 16 a 128 | 1 | ||
32 | 32, 64, 128, 180 | N/A | ||
2 (72 GB × 2 de memória de GPU) | 16 | 16 a 128 | 1 | |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 360 | N/A | ||
4 (72 GB × 4 de memória de GPU) | 32 | 32, 64, 128, 256 | N/A | |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 720 | N/A | ||
8 (72 GB × 8 de memória de GPU) | 64 | 64, 128, 256, 512 | N/A | |
128 | 128, 256, 512, 1024 | N/A | ||
256 | 256, 512, 1024, 1440 | N/A |
Os modelos anteriores compartilham as mesmas especificações para instâncias de pagamento conforme o uso, reserva de capacidade e BestEffort. Atente-se aos seguintes pontos:
Nas especificações com até 16 GiB de memória, o ACS cobre a sobrecarga de memória. Nas especificações com mais de 16 GiB, essa sobrecarga é alocada aos pods correspondentes. Reserve recursos suficientes para a sua aplicação, garantindo a estabilidade da operação.
Discos do sistema com capacidade de até 30 GiB (incluindo o tamanho da imagem) não geram cobranças adicionais. Para discos do sistema maiores que 30 GiB, a capacidade excedente é cobrada separadamente.
Ajuste automático de especificação
Se nenhuma especificação for definida, um pod de contêiner com GPU é criado com a especificação mínima para o tipo de GPU selecionado (por exemplo, 2 vCPUs, 2 GiB de memória e 1 placa de GPU).
O ACS ajusta automaticamente especificações não suportadas. Após esse ajuste, o campo .resources.requests do contêiner não é alterado, mas a especificação do pod passa a ser exibida na anotação alibabacloud.com/pod-use-spec. Se o limite de recursos definido para um contêiner (resources.limits) exceder a especificação do pod, o ACS define o limite de recursos do contêiner com base na especificação do pod.
Lógica de ajuste de CPU e memória: se a soma dos recursos de todos os contêineres resultar em 2 vCPUs e 3,5 GiB de memória, o ACS ajustará automaticamente o pod para 2 vCPUs e 4 GiB de memória. Os recursos extras resultantes desse ajuste são aplicados ao primeiro contêiner. O pod exibirá a anotação
alibabacloud.com/pod-use-spec=2-4Gi. Caso um único contêiner no pod especifique um limite de recursos de 3 vCPUs e 5 GiB de memória, o limite de recursos dele será definido como 2 vCPUs e 5 GiB.Lógica de ajuste de GPU: se a quantidade de GPUs solicitadas pelo pod não estiver listada na tabela, o envio do pod falhará.
Tipo de computação GPU-HPN
No tipo de computação GPU-HPN, o ACS ajusta a solicitação e o limite de recursos para que tenham o mesmo valor, com base no valor solicitado. A capacidade do nó também restringe as especificações de recursos do pod. Se as especificações solicitadas excederem a capacidade do nó, o pod entrará em estado pendente por insuficiência de recursos. Para obter mais informações sobre as especificações dos nós, consulte a descrição das especificações na página de compra.
Limites em aplicações Kubernetes
O ACS se integra ao Kubernetes por meio de nós virtuais. As instâncias de pod do ACS não executam em nós reais centralizados, mas são distribuídas pelo pool de recursos da Alibaba Cloud. Devido aos requisitos de segurança da cloud pública e às limitações dos nós virtuais, o ACS não oferece suporte a determinados recursos do Kubernetes, como HostPath e DaemonSet, conforme listado na tabela a seguir.
Limite | Descrição | Ação em caso de falha na validação | Alternativa recomendada |
DaemonSet | O uso de workloads do DaemonSet é restrito. | O pod executa, mas não funciona conforme o esperado. | Implante vários containers no pod como sidecars. |
Service com type=NodePort | Mapeamento de portas do host para o container | O envio é rejeitado. | Use um balanceador de carga com |
HostNetwork | O mapeamento de portas do host para containers é restrito. | O valor é reescrito para | Não necessário. |
HostIPC | A comunicação entre processos de containers e processos do host é restrita. | O valor é reescrito para | Não necessário. |
HostPID | A visibilidade do container no espaço de PID do host é restrita. | O valor é reescrito para | Não necessário. |
HostUsers | O uso de namespaces de usuário é restrito. | O valor é reescrito como vazio. | Não necessário. |
DNSPolicy | O uso de DNSPolicies específicas é restrito. Nota
|
| Use um valor permitido. |
Formato de variável de ambiente do container | Além das restrições padrão para variáveis de ambiente do servidor de API do Kubernetes, para os tipos de computação GPU e GPU-HPN, o ACS exige que os nomes das variáveis de ambiente sejam compostos apenas por letras, números, sublinhados, pontos ou hifens, e não podem começar com um número. | O pod falha ao iniciar. | Use um nome de variável de ambiente em conformidade. |
Número de variáveis de ambiente do container | Devido às restrições no comprimento da lista de parâmetros para chamadas de sistema no Linux, o número de variáveis de ambiente para um único container deve ser limitado a aproximadamente 2.000 ou menos. Além disso, se | O pod falha ao iniciar. | Reduza o número de variáveis de ambiente do container. Se houver muitos services, defina |
Uso de portas
A tabela a seguir descreve as portas que o ACS utiliza. Evite usar essas portas ao implantar services.
|
Porta |
Descrição |
|
111, 10250, 10255 |
Portas usadas pelos clusters do ACS para interfaces como exec, logs e métricas. |