Un pod es la unidad desplegable más pequeña en Kubernetes y suele constar de uno o varios contenedores. El tipo de cómputo y la calidad de potencia de cómputo de un pod influyen significativamente en el rendimiento de las aplicaciones y en el uso de los recursos. Container Compute Service (ACS) ofrece varios tipos de cómputo con sus respectivas clases de calidad de potencia de cómputo para satisfacer distintos requisitos de las aplicaciones. Este tema describe las funciones principales y los límites de los pods de ACS, entre ellos el aislamiento de seguridad, la configuración de recursos y especificaciones de CPU, memoria y GPU, la extracción de imágenes, el almacenamiento, la red y la recopilación de registros.
Definiciones de tipos de cómputo
ACS proporciona tipos de cómputo de contenedores de CPU y GPU rentables, con distintas asignaciones de recursos que se adaptan a diversos escenarios de negocio.
|
Tipo de cómputo |
Etiqueta |
Funciones |
|
De uso general (predeterminado) |
general-purpose |
Adecuado para la mayoría de las aplicaciones de microservicios sin estado, aplicaciones web Java y tareas de cómputo. |
|
Optimizado para rendimiento |
performance |
Recomendado cuando se requiere mayor rendimiento, como en entrenamiento e inference de IA/ML basados en CPU y procesamiento por lotes HPC. |
|
Tipo GPU |
gpu |
Diseñado para escenarios de cómputo heterogéneo como IA y HPC, lo que incluye inference con una o varias GPU y cómputo paralelo con GPU. |
|
GPU de red de alto rendimiento (gpu-hpn) |
gpu-hpn |
Más indicado para escenarios de cómputo heterogéneo como IA y HPC, entre ellos entrenamiento distribuido con GPU, inference distribuida y cómputo de alto rendimiento con GPU. |
El tipo de cómputo se especifica mediante la etiqueta alibabacloud.com/compute-class en el pod. A continuación se muestran ejemplos de la configuración YAML de una aplicación NGINX con el tipo de cómputo establecido en general-purpose, gpu o gpu-hpn.
De uso general
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 obtener más información sobre los modelos y especificaciones de GPU compatibles con ACS, consulte Accelerated compute type specifications.
GPU de red de alto rendimiento
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 GPU de red de alto rendimiento en ACS, primero cree un GPU-HPN capacity reservation.
Definiciones de calidad de potencia de cómputo
ACS ofrece dos clases de calidad de potencia de cómputo con distintas asignaciones de recursos que se adaptan a diversos escenarios de negocio.
Calidad de potencia de cómputo | Etiqueta | Funciones | Escenarios de aplicación típicos |
Predeterminada | default |
|
|
BestEffort | best-effort |
|
|
La calidad de potencia de cómputo se especifica mediante la etiqueta alibabacloud.com/compute-qos en el pod. A continuación se muestra un ejemplo de la configuración YAML de una aplicación NGINX con la calidad de potencia de cómputo establecida en 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
Las clases de calidad de potencia de cómputo definidas por ACS difieren de las clases QoS nativas de Kubernetes. La clase de calidad de potencia de cómputo predeterminada en ACS corresponde a la clase QoS Guaranteed de Kubernetes.
El inventario de instancias BestEffort es dinámico. En entornos de producción, se recomienda encarecidamente aplicar una directiva de programación basada en inventario prioritario. Esta directiva permite que la plataforma cambie automáticamente a la clase de calidad predeterminada cuando no hay inventario disponible. Para obtener más información, consulte Custom resource scheduling policy.
Asignaciones entre tipos de cómputo y clases de calidad de potencia de cómputo
|
Tipo de cómputo (etiqueta) |
Clases de calidad de potencia de cómputo compatibles (etiquetas) |
|
De uso general (general-purpose) |
Predeterminada (default), BestEffort (best-effort) |
|
Optimizado para rendimiento (performance) |
Predeterminada (default), BestEffort (best-effort) |
|
Tipo GPU (gpu) |
Predeterminada (default), BestEffort (best-effort) |
|
GPU de red de alto rendimiento (gpu-hpn) |
Predeterminada (default) |
Especificar la marca de CPU
Los tipos de cómputo de uso general (general-purpose) y optimizado para rendimiento (performance) admiten dos proveedores de CPU: Intel y AMD.
El proveedor de CPU se especifica al agregar la anotación alibabacloud.com/cpu-vendors a un pod o al definir la anotación alibabacloud.com/cpu-vendors en la plantilla de pod de una carga de trabajo. Para usar CPU AMD, envíe un ticket para que su cuenta se agregue a la lista de permitidos. No se admite especificar esta anotación para otros tipos de cómputo, ya que genera un mensaje de error. La anotación admite los siguientes valores:
Clave | Valor | Definición |
| intel (predeterminado) | Especifica una CPU Intel. Si no se indica, el valor predeterminado es "intel". |
amd | Especifica una CPU AMD. | |
intel, amd | Especifica una CPU Intel o AMD. El sistema selecciona la marca de CPU adecuada para crear la instancia según el inventario disponible. Cuando se indican varios valores, no se admite establecer un orden de preferencia. |
Una vez creada la instancia, compruebe el valor de la etiqueta alibabacloud.com/cpu-vendor en el YAML del pod para verificar la marca real de la CPU.
A continuación se muestra un ejemplo de la configuración YAML de una aplicación NGINX donde la marca de CPU se establece en 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
No utilice etiquetas del sistema de ACS, como alibabacloud.com/compute-class, alibabacloud.com/compute-qos y alibabacloud.com/cpu-vendor, como etiquetas de filtro en matchLabels de la carga de trabajo. El sistema puede modificar estas etiquetas, lo que provocaría que el controlador vuelva a crear los pods con frecuencia y afectaría la estabilidad de la aplicación.
Funciones principales
Función | Descripción |
Aislamiento de seguridad | ACS es un entorno de ejecución de contenedores serverless seguro. Cada instancia de pod se aísla de forma rigurosa mediante tecnología de sandbox ligera, sin interferencias entre instancias. Durante la programación, las instancias se distribuyen en distintas máquinas físicas tanto como sea posible para maximizar la disponibilidad. |
Configuración de especificaciones de recursos de CPU, memoria, GPU y EphemeralStorage |
|
Imagen | De forma predeterminada, cada vez que se reinicia un pod de ACS, este extrae una imagen de un registro de contenedores remoto a través de la virtual private cloud (VPC) donde está desplegado. Si el registro tiene acceso público, debe configurarse una puerta de enlace NAT para la VPC. Para acelerar la extracción de imágenes mediante VPC, utilice Container Registry (ACR) para alojar las imágenes de contenedor. Además, ACS es compatible con pulling private images from Container Registry without using Secrets. |
Almacenamiento | ACS admite cuatro tipos de almacenamiento persistente: discos en la nube, NAS, OSS y CPFS.
|
Red | De forma predeterminada, un pod de ACS utiliza una IP de pod independiente y ocupa una ENI de un vSwitch. En un clúster de ACS, los pods pueden comunicarse entre sí de las siguientes maneras:
|
Recopilación de registros | Configure directamente las variables de entorno del pod para recopilar registros de |
Especificaciones de recursos
En un clúster de ACS, las especificaciones de los pods para los tipos de cómputo GPU y GPU-HPN se ajustan automáticamente al enviarlos. Por ejemplo, los pods de GPU se ajustan de manera uniforme a QoS Guaranteed (la solicitud es igual al límite). Cuando se utiliza la potencia de cómputo de GPU de ACS desde otras fuentes, como clústeres de ACK o ACK One, el ajuste de las especificaciones de recursos no se refleja en los metadatos del pod. Asegúrese de que la QoS del pod permanezca sin cambios antes y después del envío. Para los tipos de cómputo GPU, envíe el pod con QoS Guaranteed para evitar errores en la actualización de su estado.
Tipos de cómputo de uso general
Tipo de cómputo General-Purpose
vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Ancho de banda de red (entrada + salida) (Gbit/s) | Almacenamiento |
0.25 | 0.5, 1, 2 | N/A | 0.08 | Las capacidades de 30 GiB o menos son gratuitas. Para capacidades superiores a 30 GiB, el excedente se factura por separado. La configuración máxima compatible es de 2,000 GiB. Para obtener espacio de almacenamiento adicional, monte volúmenes de almacenamiento como 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 cómputo Performance
vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Ancho de banda de red (entrada + salida) (Gbit/s) | Almacenamiento |
0.25 | 0.5, 1, 2 | N/A | 0.1 | Las capacidades de 30 GiB o menos son gratuitas. Para capacidades superiores a 30 GiB, el excedente se factura por separado. La configuración máxima compatible es de 2,000 GiB. Para obtener espacio de almacenamiento adicional, monte volúmenes de almacenamiento como 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 de ACS con más de 16 vCPU o más de 128 GiB de memoria, envíe un ticket para solicitar acceso.
Si no especifica las configuraciones mediante .resources.requests y .resources.limits para los contenedores, se asignan de forma predeterminada 2 vCPU y 4 GiB de memoria a cada pod.
ACS ajusta automáticamente las especificaciones del pod. El sistema calcula la suma acumulada de .resources.requests y .resources.limits de todos los contenedores, toma el valor máximo entre ambos y ajusta el pod a la especificación compatible más cercana. Esta especificación ajustada se muestra en la anotación alibabacloud.com/pod-use-spec. Si ocurre un ajuste al alza, ACS modifica .resources.requests o .resources.limits del contenedor para que la aplicación pueda utilizar todos los recursos asignados.
Lógica de ajuste de especificaciones de los pods de ACS
Por ejemplo, suponga que el valor acumulado de .resources.requests o .resources.limits es de 2 vCPU y 3.5 GiB de memoria. Cuando el pod se inicia, ACS ajusta automáticamente su especificación a 2 vCPU y 4 GiB de memoria. Los recursos adicionales resultantes del ajuste se aplican al primer contenedor, y el pod recibe la anotación alibabacloud.com/pod-use-spec=2-4Gi. A continuación se muestra un ejemplo de declaración 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
La declaración de recursos después del ajuste es la siguiente:
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
Especificar las configuraciones de los pods mediante una anotación
Aplicabilidad
Esta función solo está disponible para pods de CPU de los tipos de cómputo de uso general (general-purpose) y optimizados para rendimiento (performance).
La especificación máxima compatible con la anotación es de 64 vCPU y 512 GiB, lo cual está sujeto a general-purpose compute type specifications.
Uso
En escenarios donde la calidad de servicio (QoS) es Burstable (.resources.limits > .resources.requests), declare las especificaciones de recursos objetivo de un pod mediante la anotación alibabacloud.com/pod-required-spec: "X-YGi". Las especificaciones de recursos deben usar el formato <CPU>-<Memory>, donde la CPU se indica en núcleos (por ejemplo, "2" representa 2 vCPU) y la memoria en GiB (por ejemplo, "4Gi" representa 4 GiB). Las reglas detalladas de alineación y uso de recursos son las siguientes:
Si el formato de la especificación de recursos es incorrecto, por ejemplo, si faltan unidades, se usa MiB o el orden es erróneo, no se crea el pod.
Si establece la anotación pero no define
.resourcespara ningún contenedor, el sistema sigue estrictamente el valor de la anotación para el ajuste y no recurre a la especificación predeterminada de 2 vCPU y 4 GiB.Si el valor de la anotación es menor que la suma de
.resources.requestsde todos los contenedores del pod, no se crea el pod.-
Si el valor de la anotación es mayor que la suma de
.resources.limitsde todos los contenedores del pod, el sistema utiliza dicho valor como la especificación objetivo para ajustar el pod.En un pod con varios contenedores, el primero se considera el contenedor principal. El sistema calcula la diferencia entre el valor de la anotación y la suma de los
limitsactuales. Después, esta diferencia se suma a.resources.limitsdel contenedor principal. El valor de.resources.requeststambién se ajusta si es necesario para alinear los recursos totales del pod con la especificación objetivo.
Ejemplo
Por ejemplo, suponga que se configura alibabacloud.com/pod-required-spec: "2-4Gi" y que el valor acumulado de .resources.requests o .resources.limits del contenedor es de 1 vCPU y 2 GiB de memoria. Cuando el pod se inicia, ACS ajusta automáticamente su especificación a 2 vCPU y 4 GiB de memoria. Los recursos adicionales resultantes del ajuste se aplican al primer contenedor, y el pod recibe la anotación alibabacloud.com/pod-use-spec=2-4Gi.
A continuación se muestra un ejemplo de declaración de recursos:
El valor de .resources.limits.memory es 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
La declaración de recursos después del ajuste es la siguiente:
El valor de .resources.limits.memory se ajusta de 3.5 GiB a 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 cómputo acelerado
A continuación se muestran los modelos de GPU que ACS admite. Las especificaciones varían según el modelo. Para conocer la correspondencia exacta de cada especificación, envíe un ticket y obtenga más información.
GU8TF
GU8TF
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (96 GB de memoria 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 memoria GPU) | 16 | 16 a 128 | 1 | 30 a 512 |
32 | 32, 64, 128, 230 | N/A | ||
46 | 64, 128, 230 | N/A | ||
4 GPU (96 GB cada una) | 32 | 32, 64, 128, 256 | N/A | 30 a 1024 |
64 | 64, 128, 256, 460 | N/A | ||
92 | 128, 256, 460 | N/A | ||
8 GPU (96 × 8 GB de memoria 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 (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (141 GB de memoria 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 memoria 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 memoria 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 memoria 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 (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (48 GB de memoria 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 memoria GPU) | 16 | 16 a 128 | 1 | 30 a 512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 GB × 4 de memoria GPU) | 32 | 32, 64, 128, 256 | N/A | 30 a 1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 GB × 8 de memoria GPU) | 64 | 64, 128, 256, 512 | N/A | 30 a 2048 |
128 | 128, 256, 512, 920 | N/A |
L20X (GX8SF)
|
GPU (tarjetas) |
vCPU |
Memoria (GiB) |
Tamaño de incremento de memoria (GiB) |
Almacenamiento (GiB) |
|
8 (141 GB × 8 de memoria GPU) |
184 |
1800 |
N/A |
30 a 6144 |
P16EN
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (96 GB de memoria 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 memoria 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 memoria 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 memoria 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 memoria 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 (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (16 GB de memoria 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 memoria 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 (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (24 GB de memoria 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 memoria GPU) | 16 | 16 a 64 | 1 | 30 a 512 |
32 | 32, 64, 120 | N/A | ||
4 (24 GB × 4 de memoria GPU) | 32 | 32, 64, 128 | N/A | 30 a 1024 |
64 | 64, 128, 240 | N/A | ||
8 (24 GB × 8 de memoria GPU) | 64 | 64, 128, 256 | N/A | 30 a 2048 |
128 | 128, 256, 480 | N/A |
G28Ti
G28Ti
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (11 GB de memoria GPU) | 2 | De 2 a 8 | 1 | De 30 a 1536 |
4 | De 4 a 16 | 1 | ||
6 | De 6 a 24 | 1 | ||
8 | De 8 a 32 | 1 | ||
10 | De 10 a 40 | 1 | ||
12 | De 12 a 48 | 1 |
G49E
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (48 GB de memoria GPU) | 2 | De 2 a 16 | 1 | De 30 a 256 |
4 | De 4 a 32 | 1 | ||
6 | De 6 a 48 | 1 | ||
8 | De 8 a 64 | 1 | ||
10 | De 10 a 80 | 1 | ||
12 | De 12 a 96 | 1 | ||
14 | De 14 a 112 | 1 | ||
16 | De 16 a 120 | 1 | ||
2 (48 GB × 2 de memoria GPU) | 16 | De 16 a 128 | 1 | De 30 a 512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 GB × 4 de memoria GPU) | 32 | 32, 64, 128, 256 | N/A | De 30 a 1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 GB × 8 de memoria GPU) | 64 | 64, 128, 256, 512 | N/A | De 30 a 2048 |
128 | 128, 256, 512, 920 | N/A |
G59
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (32 GB de memoria GPU) | 2 | De 2 a 16 | 1 | De 30 a 256 |
4 | De 4 a 32 | 1 | ||
6 | De 6 a 48 | 1 | ||
8 | De 8 a 64 | 1 | ||
10 | De 10 a 80 | 1 | ||
12 | De 12 a 96 | 1 | ||
14 | De 14 a 112 | 1 | ||
16 | De 16 a 128 | 1 | ||
22 | 22, 32, 64, 128 | N/A | ||
2 (32 GB × 2 de memoria GPU) | 16 | De 16 a 128 | 1 | De 30 a 512 |
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 360 | N/A | ||
4 (32 GB × 4 de memoria GPU) | 32 | 32, 64, 128, 256 | N/A | De 30 a 1024 |
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 720 | N/A | ||
8 (32 GB × 8 de memoria GPU) | 64 | 64, 128, 256, 512 | N/A | De 30 a 2048 |
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1440 | N/A |
L20N
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (48 GB de memoria GPU) | 2 | De 2 a 16 | 1 | De 30 a 2048 |
4 | De 4 a 32 | 1 | ||
6 | De 6 a 48 | 1 | ||
8 | De 8 a 64 | 1 | ||
10 | De 10 a 80 | 1 | ||
12 | De 12 a 96 | 1 | ||
14 | De 14 a 112 | 1 | ||
16 | De 16 a 128 | 1 | ||
32 | 32, 64, 128, 256 | N/A | ||
2 (48 GB × 2 de memoria GPU) | 16 | De 16 a 128 | 1 | |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 512 | N/A | ||
4 (48 GB × 4 de memoria 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 memoria GPU) | 64 | 64, 128, 256, 512 | N/A | |
128 | 128, 256, 512, 1024 | N/A | ||
256 | 256, 512, 1024, 2048 | N/A |
L20NE
GPU (tarjetas) | vCPU | Memoria (GiB) | Tamaño de incremento de memoria (GiB) | Almacenamiento (GiB) |
1 (72 GB de memoria GPU) | 2 | De 2 a 16 | 1 | De 30 a 2048 |
4 | De 4 a 32 | 1 | ||
6 | De 6 a 48 | 1 | ||
8 | De 8 a 64 | 1 | ||
10 | De 10 a 80 | 1 | ||
12 | De 12 a 96 | 1 | ||
14 | De 14 a 112 | 1 | ||
16 | De 16 a 128 | 1 | ||
32 | 32, 64, 128, 180 | N/A | ||
2 (72 GB × 2 de memoria GPU) | 16 | De 16 a 128 | 1 | |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 360 | N/A | ||
4 (72 GB × 4 de memoria 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 memoria GPU) | 64 | 64, 128, 256, 512 | N/A | |
128 | 128, 256, 512, 1024 | N/A | ||
256 | 256, 512, 1024, 1440 | N/A |
Los modelos anteriores comparten las mismas especificaciones para instancias pay-as-you-go, de reserva de capacidad y BestEffort. Tenga en cuenta lo siguiente:
En las especificaciones con 16 GiB de memoria o menos, ACS asume la sobrecarga de memoria. En las especificaciones con más de 16 GiB de memoria, esta sobrecarga se asigna a los pods correspondientes. Asegúrese de reservar recursos suficientes para su aplicación, de modo que funcione de manera estable.
Los discos de sistema con una capacidad de 30 GiB o menos (incluido el tamaño de la imagen) no generan cargos adicionales. Para los discos de sistema mayores a 30 GiB, la capacidad excedente se factura por separado.
Ajuste automático de especificaciones
Si no se especifica ninguna especificación, se crea un pod de contenedor GPU con la especificación mínima del tipo de GPU seleccionado (por ejemplo, 2 vCPU, 2 GiB de memoria y 1 tarjeta GPU).
ACS ajusta automáticamente las especificaciones no compatibles. Después del ajuste, el valor de .resources.requests del contenedor no cambia, pero la especificación del pod se muestra en la anotación alibabacloud.com/pod-use-spec. Cuando el límite de recursos configurado para un contenedor (resources.limits) supera la especificación del pod, ACS establece el límite de recursos del contenedor conforme a la especificación del pod.
Lógica de ajuste de CPU y memoria: si los recursos totales de todos los contenedores suman 2 vCPU y 3.5 GiB de memoria, ACS ajusta automáticamente el pod a 2 vCPU y 4 GiB de memoria. Los recursos adicionales resultantes del ajuste se aplican al primer contenedor. El pod muestra la anotación
alibabacloud.com/pod-use-spec=2-4Gi. Si un solo contenedor del pod tiene un límite de recursos de 3 vCPU y 5 GiB de memoria, su límite de recursos se ajusta a 2 vCPU y 5 GiB.Lógica de ajuste de GPU: si la cantidad de GPU que solicita el pod no aparece en la tabla, el envío del pod falla.
Tipo de cómputo GPU-HPN
Para el tipo de cómputo GPU-HPN, ACS ajusta la solicitud y el límite de recursos para que sean iguales, con base en el valor de la solicitud. Las especificaciones de recursos del pod también están limitadas por la capacidad del nodo. Si las especificaciones solicitadas superan la capacidad del nodo, el pod entra en estado pendiente debido a la falta de recursos. Para obtener más información sobre las especificaciones de los nodos, consulte la descripción de especificaciones en la página de compra.
Límites de las aplicaciones de Kubernetes
ACS se integra con Kubernetes mediante nodos virtuales. Las instancias de pod de ACS no se ejecutan en nodos reales centralizados, sino que se distribuyen en el pool de recursos de Alibaba Cloud. Debido a los requisitos de seguridad de la nube pública y a las limitaciones de los nodos virtuales, ACS no es compatible con ciertas funciones de Kubernetes, como HostPath y DaemonSet, tal como se muestra a continuación.
Límite | Descripción | Acción si la validación falla | Alternativa recomendada |
DaemonSet | Se restringe el uso de cargas de trabajo DaemonSet. | El pod se ejecuta, pero no funciona como se espera. | Despliegue varios contenedores en el pod como sidecars. |
Service con type=NodePort | Asignación de puertos del host al contenedor | Se rechaza el envío. | Utilice un load balancer con |
HostNetwork | Se restringe la asignación de puertos del host a los contenedores. | El valor se reescribe como | No es obligatorio. |
HostIPC | Se restringe la comunicación entre procesos de los contenedores y procesos del host. | El valor se reescribe como | No es obligatorio. |
HostPID | Se restringe la visibilidad del espacio PID del host desde los contenedores. | El valor se reescribe como | No es obligatorio. |
HostUsers | Se restringe el uso de namespaces de usuario. | El valor se reescribe para quedar vacío. | No es obligatorio. |
DNSPolicy | Se restringe el uso de ciertas DNSPolicies. Nota
|
| Utilice un valor permitido. |
Formato de las variables de entorno del contenedor | Además de las restricciones predeterminadas que aplica el servidor de API de Kubernetes a las variables de entorno, para los tipos de cómputo GPU y GPU-HPN, ACS exige que los nombres de dichas variables contengan solo letras, números, guiones bajos, puntos o guiones. Tampoco deben comenzar con un número. | El inicio del pod termina con errores. | Utilice un nombre de variable de entorno que cumpla con estos requisitos. |
Cantidad de variables de entorno del contenedor | Debido a las restricciones de longitud en la lista de parámetros de las llamadas al sistema en Linux, la cantidad de variables de entorno de un solo contenedor debe limitarse a unas 2,000 o menos. Además, si | El inicio del pod termina con errores. | Reduzca la cantidad de variables de entorno del contenedor. Si hay muchos Services, establezca |
Uso de puertos
A continuación se describen los puertos que utiliza ACS. Evite usarlos cuando despliegue servicios.
|
Puerto |
Descripción |
|
111, 10250, 10255 |
Puertos que utilizan los clústeres de ACS para interfaces como exec, logs y metrics. |