Un pod est la plus petite unité déployable dans Kubernetes et se compose généralement d'un ou plusieurs conteneurs. Le type de calcul et la qualité de la puissance de calcul d'un pod ont un impact significatif sur les performances des applications et l'utilisation des ressources. Container Compute Service (ACS) propose plusieurs types de calcul et classes de qualité de puissance de calcul correspondantes pour répondre à divers besoins applicatifs. Cette rubrique décrit les fonctionnalités principales et les limites des pods ACS, notamment l'isolation de sécurité, la configuration des ressources et des spécifications CPU, mémoire et GPU, le téléchargement d'images, le stockage, la mise en réseau et la collecte des journaux.
Définitions des types de calcul
ACS propose des types de calcul de conteneurs CPU et GPU rentables avec différentes allocations de ressources adaptées à divers scénarios métier.
|
Type de calcul |
Libellé |
Fonctionnalités |
|
À usage général (par défaut) |
general-purpose |
Convient à la plupart des applications de microservices sans état, aux applications web Java et aux tâches de calcul. |
|
Optimisé pour les performances |
performance |
Adapté aux scénarios nécessitant des performances supérieures, tels que l'entraînement et l'inférence IA/ML basés sur le CPU, ainsi que le traitement par lots HPC. |
|
Type GPU |
gpu |
Conçu pour les scénarios de calcul hétérogène tels que l'IA et le HPC, y compris l'inférence mono-GPU et multi-GPU, ainsi que le calcul parallèle GPU. |
|
GPU à réseau haute performance (gpu-hpn) |
gpu-hpn |
Recommandé pour les scénarios de calcul hétérogène tels que l'IA et le HPC, incluant l'entraînement distribué GPU, l'inférence distribuée et le calcul haute performance GPU. |
Le type de calcul est spécifié à l'aide du libellé alibabacloud.com/compute-class sur le pod. Les exemples suivants illustrent la configuration YAML d'une application NGINX avec le type de calcul défini sur general-purpose, gpu ou gpu-hpn.
À usage général
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
Accéléré par 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.
Pour plus d'informations sur les modèles et spécifications GPU pris en charge par ACS, consultez Spécifications des types de calcul accélérés.
GPU à réseau haute performance
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.
Pour utiliser des GPU à réseau haute performance dans ACS, créez d'abord une réservation de capacité GPU-HPN.
Définitions de la qualité de la puissance de calcul
ACS propose deux classes de qualité de puissance de calcul avec différentes allocations de ressources adaptées à divers scénarios métier.
Qualité de la puissance de calcul | Libellé | Fonctionnalités | Scénarios d'application typiques |
Par défaut | default |
|
|
BestEffort | best-effort |
|
|
La qualité de la puissance de calcul est spécifiée à l'aide du libellé alibabacloud.com/compute-qos sur le pod. L'exemple suivant présente la configuration YAML d'une application NGINX avec la qualité de la puissance de calcul définie sur 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
Les classes de qualité de la puissance de calcul définies par ACS diffèrent des classes QoS natives de Kubernetes. La classe de qualité de puissance de calcul par défaut dans ACS correspond à la classe QoS Guaranteed de Kubernetes.
L'inventaire des instances BestEffort est dynamique. Dans les environnements de production, il est fortement recommandé d'utiliser une politique de planification basée sur la disponibilité de l'inventaire. Cette politique permet à la plateforme de basculer automatiquement vers la classe de qualité par défaut lorsque l'inventaire n'est pas disponible. Pour plus d'informations, consultez Politique de planification des ressources personnalisée.
Correspondances entre les types de calcul et les classes de qualité de la puissance de calcul
|
Type de calcul (libellé) |
Classes de qualité de la puissance de calcul prises en charge (libellés) |
|
À usage général (general-purpose) |
Par défaut (default), BestEffort (best-effort) |
|
Optimisé pour les performances (performance) |
Par défaut (default), BestEffort (best-effort) |
|
Type GPU (gpu) |
Par défaut (default), BestEffort (best-effort) |
|
GPU à réseau haute performance (gpu-hpn) |
Par défaut (default) |
Spécifier la marque du CPU
Les types de calcul À usage général (general-purpose) et Optimisé pour les performances (performance) prennent en charge deux fournisseurs de CPU : Intel et AMD.
Le fournisseur de CPU est spécifié en ajoutant l'annotation alibabacloud.com/cpu-vendors à un pod ou en définissant l'annotation alibabacloud.com/cpu-vendors dans le modèle de pod d'une charge de travail. Pour utiliser des CPU AMD, soumettez un ticket afin d'être ajouté à la liste d'autorisation. La spécification de cette annotation pour d'autres types de calcul n'est pas prise en charge et génère un message d'erreur. L'annotation prend en charge les valeurs suivantes :
Clé | Valeur | Définition |
| intel (par défaut) | Spécifie un CPU Intel. Si non spécifié, la valeur par défaut est « intel ». |
amd | Spécifie un CPU AMD. | |
intel, amd | Spécifie un CPU Intel ou AMD. Le système sélectionne une marque de CPU appropriée pour créer l'instance en fonction de l'inventaire. Lorsque plusieurs valeurs sont spécifiées, aucun ordre de préférence n'est pris en charge. |
Une fois l'instance créée, vérifiez la valeur du libellé alibabacloud.com/cpu-vendor dans le YAML du pod pour confirmer la marque réelle du CPU.
L'exemple suivant présente la configuration YAML d'une application NGINX, en spécifiant la marque du CPU comme étant 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'utilisez pas les libellés système ACS, tels que alibabacloud.com/compute-class, alibabacloud.com/compute-qos et alibabacloud.com/cpu-vendor, comme libellés de filtre pour les matchLabels de la charge de travail. Ces libellés peuvent être modifiés par le système, ce qui peut amener le contrôleur à recréer fréquemment les pods et affecter la stabilité de l'application.
Fonctionnalités principales
Fonctionnalité | Description |
Isolation de sécurité | ACS est un runtime de conteneurs serverless sécurisé. Chaque instance de pod est fortement isolée grâce à la technologie de sandbox légère, sans interférence entre les instances. Lors de la planification, les instances sont réparties autant que possible sur différentes machines physiques afin de maximiser la disponibilité. |
Configuration des spécifications de ressources CPU/Mémoire/GPU/EphemeralStorage |
|
Image | Par défaut, chaque redémarrage d'un pod ACS entraîne le téléchargement d'une image depuis un registre de conteneurs distant via le VPC où le pod est déployé. Si le registre est accessible publiquement, une passerelle NAT doit être configurée pour le VPC. Pour accélérer le téléchargement des images via les VPC, utilisez Container Registry (ACR) pour héberger vos images de conteneurs. De plus, ACS prend en charge le téléchargement d'images privées depuis Container Registry sans utiliser de Secrets. |
Stockage | ACS prend en charge quatre types de stockage persistant : disques cloud, NAS, OSS et CPFS.
|
Réseau | Par défaut, un pod ACS utilise une adresse IP de pod indépendante et occupe une ENI d'un vSwitch. Dans un cluster ACS, les pods peuvent communiquer entre eux de plusieurs manières :
|
Collecte des journaux | Vous pouvez configurer directement les variables d'environnement du pod pour collecter les journaux |
Spécifications des ressources
Dans un cluster ACS, les spécifications des pods pour les types de calcul GPU et GPU-HPN sont automatiquement ajustées lors de la soumission. Par exemple, les pods GPU sont uniformément ajustés vers une qualité de service (QoS) Garantie (la demande est égale à la limite). Lorsque vous utilisez la puissance de calcul GPU ACS à partir d'autres sources (telles que les clusters ACK ou ACK One), l'ajustement des spécifications des ressources n'est pas reflété dans les métadonnées du pod. Assurez-vous que la QoS du pod reste inchangée avant et après la soumission. Pour les types de calcul GPU, soumettez le pod avec une QoS Garantie afin d'éviter les échecs de mise à jour du statut du pod.
Types de calcul à usage général
Type de calcul à usage général
vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Bande passante réseau (entrante + sortante) (Gbit/s) | Stockage |
0,25 | 0,5, 1, 2 | S.O. | 0,08 | Les capacités inférieures ou égales à 30 GiB sont gratuites. Pour les capacités supérieures à 30 GiB, la capacité excédentaire est facturée séparément. La configuration maximale prise en charge est de 2 000 GiB. Pour obtenir un espace de stockage supplémentaire, montez des volumes de stockage tels que NAS. |
0,5 | 1 à 4 | 1 | 0,08 | |
1 | 1 à 8 | 0,1 | ||
1,5 | 2 à 12 | 1 | ||
2 | 2 à 16 | |||
2,5 | 3 à 20 | 1,5 | ||
3 | 3 à 24 | |||
3,5 | 4 à 28 | |||
4 | 4 à 32 | |||
4,5 | 5 à 36 | |||
5 | 5 à 40 | |||
5,5 | 6 à 44 | |||
6 | 6 à 48 | |||
6,5 | 7 à 52 | 2,5 | ||
7 | 7 à 56 | |||
7,5 | 8 à 60 | |||
8 | 8 à 64 | |||
8,5 | 9 à 68 | |||
9 | 9 à 72 | |||
9,5 | 10 à 76 | |||
10 | 10 à 80 | |||
10,5 | 11 à 84 | |||
11 | 11 à 88 | |||
11,5 | 12 à 92 | |||
12 | 12 à 96 | |||
12,5 | 13 à 100 | 3 | ||
13 | 13 à 104 | |||
13,5 | 14 à 108 | |||
14 | 14 à 112 | |||
14,5 | 15 à 116 | |||
15 | 15 à 120 | |||
15,5 | 16 à 124 | |||
16 | 16 à 128 | |||
24 | 24, 48, 96, 192 | S.O. | 4,5 | |
32 | 32, 64, 128, 256 | S.O. | 6 | |
48 | 48, 96, 192, 384 | S.O. | 12,5 | |
64 | 64, 128, 256, 512 | S.O. | 20 |
Type de calcul haute performance
vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Bande passante réseau (entrante + sortante) (Gbit/s) | Stockage |
0,25 | 0,5, 1, 2 | S.O. | 0,1 | Les capacités inférieures ou égales à 30 GiB sont gratuites. Pour les capacités supérieures à 30 GiB, la capacité excédentaire est facturée séparément. La configuration maximale prise en charge est de 2 000 GiB. Pour obtenir un espace de stockage supplémentaire, montez des volumes de stockage tels que NAS. |
0,5 | 1 à 4 | 1 | 0,5 | |
1 | 1 à 8 | |||
1,5 | 2 à 12 | |||
2 | 2 à 16 | 1,5 | ||
2,5 | 3 à 20 | |||
3 | 3 à 24 | |||
3,5 | 4 à 28 | |||
4 | 4 à 32 | 2 | ||
4,5 | 5 à 36 | |||
5 | 5 à 40 | |||
5,5 | 6 à 44 | |||
6 | 6 à 48 | 2,5 | ||
6,5 | 7 à 52 | |||
7 | 7 à 56 | |||
7,5 | 8 à 60 | |||
8 | 8 à 64 | 3 | ||
8,5 | 9 à 68 | |||
9 | 9 à 72 | |||
9,5 | 10 à 76 | |||
10 | 10 à 80 | 3,5 | ||
10,5 | 11 à 84 | |||
11 | 11 à 88 | |||
11,5 | 12 à 92 | |||
12 | 12 à 96 | 4 | ||
12,5 | 13 à 100 | |||
13 | 13 à 104 | |||
13,5 | 14 à 108 | |||
14 | 14 à 112 | 4,5 | ||
14,5 | 15 à 116 | |||
15 | 15 à 120 | |||
15,5 | 16 à 124 | |||
16 | 16 à 128 | 6 | ||
24 | 24, 48, 96, 192 | S.O. | 8 | |
32 | 32, 64, 128, 256 | S.O. | 10 | |
48 | 48, 96, 192, 384 | S.O. | 16 | |
64 | 64, 128, 256, 512 | S.O. | 25 |
Pour utiliser des pods ACS avec plus de 16 vCPU ou plus de 128 GiB de mémoire, soumettez un ticket afin de demander l'accès.
Si vous ne spécifiez pas les spécifications en définissant les champs .resources.requests et .resources.limits pour les conteneurs, un seul pod reçoit par défaut 2 vCPU et 4 GiB de mémoire.
ACS ajuste automatiquement les spécifications du pod. Le système calcule la somme cumulative des valeurs .resources.requests et .resources.limits pour tous les conteneurs, retient la valeur maximale entre ces deux sommes, puis ajuste le pod à la spécification prise en charge la plus proche. Cette spécification ajustée est indiquée dans l'annotation alibabacloud.com/pod-use-spec. En cas d'ajustement à la hausse, ACS modifie les champs .resources.requests ou .resources.limits du conteneur afin de garantir que l'application puisse utiliser toutes les ressources allouées.
Logique d'ajustement des spécifications des pods ACS
Par exemple, supposons que la valeur cumulative des champs .resources.requests ou .resources.limits soit de 2 vCPU et 3,5 GiB de mémoire. Au démarrage du pod, ACS ajuste automatiquement sa spécification à 2 vCPU et 4 GiB de mémoire. Les ressources supplémentaires issues de cet ajustement sont appliquées au premier conteneur, et le pod reçoit l'annotation alibabacloud.com/pod-use-spec=2-4Gi. Voici un exemple de déclaration de ressources :
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 déclaration des ressources après ajustement se présente comme suit :
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
Spécifiez les caractéristiques du pod à l'aide d'une annotation
Applicabilité
Cette fonctionnalité est disponible uniquement pour les pods CPU des types de calcul General-purpose (general-purpose) et Performance-optimized (performance).
La spécification maximale prise en charge par l'annotation est de 64 vCPU et 512 GiB, conformément aux spécifications du type de calcul general-purpose.
Utilisation
Pour les scénarios où la Quality of Service (QoS) est Burstable (.resources.limits > .resources.requests), vous pouvez déclarer les spécifications de ressources cibles pour un pod en spécifiant l'annotation alibabacloud.com/pod-required-spec: "X-YGi". Les spécifications de ressources doivent utiliser le format <CPU>-<Memory>, où le CPU est exprimé en cœurs (par exemple, « 2 » représente 2 vCPU) et la mémoire en GiB (par exemple, « 4Gi » représente 4 GiB). Les règles détaillées d'alignement et d'utilisation des ressources sont les suivantes :
Si le format des spécifications de ressources est incorrect, par exemple en cas d'absence d'unités, d'utilisation de MiB ou d'un ordre erroné, la création du pod échoue.
Si vous définissez l'annotation sans définir
.resourcespour aucun conteneur, le système suit strictement la valeur de l'annotation pour l'ajustement et ne revient pas à la spécification par défaut de 2 vCPU et 4 GiB.Si la valeur de l'annotation est inférieure à la somme des
.resources.requestsde tous les conteneurs du pod, la création du pod échoue.-
Si la valeur de l'annotation est supérieure à la somme des
.resources.limitsde tous les conteneurs du pod, le système utilise la valeur de l'annotation comme spécification cible pour l'ajustement du pod.Dans un pod multi-conteneurs, le premier conteneur est considéré comme le conteneur principal. Le système calcule la différence entre la valeur de l'annotation et la somme des
limitsactuels. Cette différence est ensuite ajoutée aux.resources.limitsdu conteneur principal. La valeur.resources.requestsest également ajustée si nécessaire pour aligner les ressources totales du pod sur la spécification cible.
Exemple
Par exemple, supposons que alibabacloud.com/pod-required-spec: "2-4Gi" soit configuré et que la valeur cumulative des .resources.requests ou .resources.limits du conteneur soit de 1 vCPU et 2 GiB de mémoire. Au démarrage du pod, ACS ajuste automatiquement la spécification du pod à 2 vCPU et 4 GiB de mémoire. Les ressources supplémentaires ajustées sont appliquées au premier conteneur, et le pod est annoté avec alibabacloud.com/pod-use-spec=2-4Gi.
Voici un exemple de déclaration de ressources :
La valeur de .resources.limits.memory est 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 déclaration de ressources après ajustement est la suivante :
La valeur de .resources.limits.memory est ajustée de 3,5 GiB à 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
Types de calcul accéléré
Voici les modèles de GPU pris en charge par ACS. Les spécifications peuvent varier selon les modèles. Pour obtenir le mappage détaillé des spécifications, soumettez un ticket afin d'obtenir plus d'informations.
GU8TF
GPU (cartes) | vCPU | Mémoire (Go) | Incrément de mémoire (Go) | Stockage (Go) |
1 (96 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 256 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 128 | 1 | ||
22 | 22, 32, 64, 128 | N/A | ||
2 (96 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | 30 à 512 |
32 | 32, 64, 128, 230 | N/A | ||
46 | 64, 128, 230 | N/A | ||
4 GPU (96 Go chacun) | 32 | 32, 64, 128, 256 | N/A | 30 à 1024 |
64 | 64, 128, 256, 460 | N/A | ||
92 | 128, 256, 460 | N/A | ||
8 GPU (96 × 8 Go de mémoire GPU totale) | 64 | 64, 128, 256, 512 | N/A | 30 à 2048 |
128 | 128, 256, 512, 920 | N/A | ||
184 | 256, 512, 920 | N/A |
GU8TEF
GPU (cartes) | vCPU | Mémoire (Go) | Incrément de mémoire (Go) | Stockage (Go) |
1 (141 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 768 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 128 | 1 | ||
22 | 22, 32, 64, 128, 225 | N/A | ||
2 (141 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | 30 à 1536 |
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 450 | N/A | ||
4 (141 Go × 4 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | 30 à 3072 |
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 900 | N/A | ||
8 (141 Go × 8 de mémoire GPU) | 64 | 64, 128, 256, 512 | N/A | 30 à 6144 |
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1800 | N/A |
L20(GN8IS)
GPU (cartes) | vCPU | Mémoire (Go) | Incrément de mémoire (Go) | Stockage (Go) |
1 (48 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 256 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 120 | 1 | ||
2 (48 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | 30 à 512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 Go × 4 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | 30 à 1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 Go × 8 de mémoire GPU) | 64 | 64, 128, 256, 512 | N/A | 30 à 2048 |
128 | 128, 256, 512, 920 | N/A |
L20X (GX8SF)
|
GPU (cartes) |
vCPU |
Mémoire (Go) |
Incrément de mémoire (Go) |
Stockage (Go) |
|
8 (141 Go × 8 de mémoire GPU) |
184 |
1800 |
N/A |
30 à 6144 |
P16EN
GPU (cartes) | vCPU | Mémoire (Go) | Incrément de mémoire (Go) | Stockage (Go) |
1 (96 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 384 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
2 (96 Go × 2 de mémoire GPU) | 4 | 4 à 32 | 1 | 30 à 768 |
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
16 | 16 à 128 | 1 | ||
22 | 32, 64, 128, 225 | N/A | ||
4 (96 Go × 4 de mémoire GPU) | 8 | 8 à 64 | 1 | 30 à 1536 |
16 | 16 à 128 | 1 | ||
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 450 | N/A | ||
8 (96 Go × 8 de mémoire GPU) | 16 | 16 à 128 | 1 | 30 à 3072 |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 900 | N/A | ||
16 (96 Go × 16 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | 30 à 6144 |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1800 | N/A |
T4
GPU (cartes) | vCPU | Mémoire (Go) | Incrément de mémoire (Go) | Stockage (Go) |
1 (16 Go de mémoire GPU) | 2 | 2 à 8 | 1 | 30 à 1536 |
4 | 4 à 16 | 1 | ||
6 | 6 à 24 | 1 | ||
8 | 8 à 32 | 1 | ||
10 | 10 à 40 | 1 | ||
12 | 12 à 48 | 1 | ||
14 | 14 à 56 | 1 | ||
16 | 16 à 64 | 1 | ||
24 | 24, 48, 90 | N/A | 30 à 1536 | |
2 (16 Go × 2 de mémoire GPU) | 16 | 16 à 64 | 1 | |
24 | 24, 48, 96 | N/A | ||
32 | 32, 64, 128 | N/A | ||
48 | 48, 96, 180 | N/A |
A10
GPU (cartes) | vCPU | Mémoire (Go) | Incrément de mémoire (Go) | Stockage (Go) |
1 (24 Go de mémoire GPU) | 2 | 2 à 8 | 1 | 30 à 256 |
4 | 4 à 16 | 1 | ||
6 | 6 à 24 | 1 | ||
8 | 8 à 32 | 1 | ||
10 | 10 à 40 | 1 | ||
12 | 12 à 48 | 1 | ||
14 | 14 à 56 | 1 | ||
16 | 16 à 60 | 1 | ||
2 (24 Go × 2 de mémoire GPU) | 16 | 16 à 64 | 1 | 30 à 512 |
32 | 32, 64, 120 | N/A | ||
4 (24 Go × 4 de mémoire GPU) | 32 | 32, 64, 128 | N/A | 30 à 1024 |
64 | 64, 128, 240 | N/A | ||
8 (24 Go × 8 de mémoire GPU) | 64 | 64, 128, 256 | N/A | 30 à 2048 |
128 | 128, 256, 480 | N/A |
G28Ti
GPU (cartes) | vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Stockage (GiB) |
1 (11 Go de mémoire GPU) | 2 | 2 à 8 | 1 | 30 à 1536 |
4 | 4 à 16 | 1 | ||
6 | 6 à 24 | 1 | ||
8 | 8 à 32 | 1 | ||
10 | 10 à 40 | 1 | ||
12 | 12 à 48 | 1 |
G49E
GPU (cartes) | vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Stockage (GiB) |
1 (48 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 256 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 120 | 1 | ||
2 (48 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | 30 à 512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 Go × 4 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | 30 à 1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 Go × 8 de mémoire GPU) | 64 | 64, 128, 256, 512 | N/A | 30 à 2048 |
128 | 128, 256, 512, 920 | N/A |
G59
GPU (cartes) | vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Stockage (GiB) |
1 (32 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 256 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 128 | 1 | ||
22 | 22, 32, 64, 128 | N/A | ||
2 (32 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | 30 à 512 |
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 360 | N/A | ||
4 (32 Go × 4 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | 30 à 1024 |
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 720 | N/A | ||
8 (32 Go × 8 de mémoire GPU) | 64 | 64, 128, 256, 512 | N/A | 30 à 2048 |
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1440 | N/A |
L20N
GPU (cartes) | vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Stockage (GiB) |
1 (48 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 2048 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 128 | 1 | ||
32 | 32, 64, 128, 256 | N/A | ||
2 (48 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 512 | N/A | ||
4 (48 Go × 4 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 1024 | N/A | ||
8 (48 Go × 8 de mémoire GPU) | 64 | 64, 128, 256, 512 | N/A | |
128 | 128, 256, 512, 1024 | N/A | ||
256 | 256, 512, 1024, 2048 | N/A |
L20NE
GPU (cartes) | vCPU | Mémoire (GiB) | Incrément de mémoire (GiB) | Stockage (GiB) |
1 (72 Go de mémoire GPU) | 2 | 2 à 16 | 1 | 30 à 2048 |
4 | 4 à 32 | 1 | ||
6 | 6 à 48 | 1 | ||
8 | 8 à 64 | 1 | ||
10 | 10 à 80 | 1 | ||
12 | 12 à 96 | 1 | ||
14 | 14 à 112 | 1 | ||
16 | 16 à 128 | 1 | ||
32 | 32, 64, 128, 180 | N/A | ||
2 (72 Go × 2 de mémoire GPU) | 16 | 16 à 128 | 1 | |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 360 | N/A | ||
4 (72 Go × 4 de mémoire GPU) | 32 | 32, 64, 128, 256 | N/A | |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 720 | N/A | ||
8 (72 Go × 8 de mémoire GPU) | 64 | 64, 128, 256, 512 | N/A | |
128 | 128, 256, 512, 1024 | N/A | ||
256 | 256, 512, 1024, 1440 | N/A |
Les modèles précédents partagent les mêmes spécifications pour les instances avec paiement à l'utilisation, les réservations de capacité et les instances BestEffort. Veuillez noter les points suivants :
Pour les spécifications disposant de 16 GiB de mémoire ou moins, la surcharge mémoire est prise en charge par ACS. Pour les spécifications disposant de plus de 16 GiB de mémoire, la surcharge mémoire est allouée aux pods correspondants. Assurez-vous de réserver suffisamment de ressources pour votre application afin de garantir son bon fonctionnement.
Les disques système d'une capacité inférieure ou égale à 30 GiB (taille de l'image incluse) n'entraînent aucun frais supplémentaire. Pour les disques système d'une capacité supérieure à 30 GiB, la capacité excédentaire est facturée séparément.
Ajustement automatique des spécifications
Si aucune spécification n'est définie, un pod de conteneur GPU est créé avec la spécification minimale pour le type de GPU sélectionné (par exemple, 2 vCPU, 2 GiB de mémoire et 1 carte GPU).
ACS ajuste automatiquement les spécifications non prises en charge. Après ajustement, la valeur .resources.requests du conteneur ne change pas, mais la spécification du pod est indiquée dans l'annotation alibabacloud.com/pod-use-spec. Lorsque la limite de ressources spécifiée pour un conteneur (resources.limits) dépasse la spécification du pod, ACS définit la limite de ressources du conteneur sur la spécification du pod.
Logique d'ajustement du CPU et de la mémoire : si le total des ressources de tous les conteneurs s'élève à 2 vCPU et 3,5 GiB de mémoire, ACS ajuste automatiquement le pod à 2 vCPU et 4 GiB de mémoire. Les ressources supplémentaires résultant de cet ajustement sont appliquées au premier conteneur. Le pod affiche l'annotation
alibabacloud.com/pod-use-spec=2-4Gi. Si un seul conteneur du pod spécifie une limite de ressources de 3 vCPU et 5 GiB de mémoire, sa limite de ressources est définie à 2 vCPU et 5 GiB.Logique d'ajustement du GPU : si le nombre de GPU demandé par le pod ne figure pas dans le tableau, la soumission du pod échoue.
Type de calcul GPU-HPN
Pour le type de calcul GPU-HPN, ACS ajuste la demande et la limite de ressources pour qu'elles soient égales, en se basant sur la valeur de la demande. Les spécifications des ressources du pod sont également contraintes par la capacité du nœud. Si les spécifications demandées dépassent la capacité du nœud, le pod passe à l'état pending en raison d'un manque de ressources. Pour plus d'informations sur les spécifications des nœuds, consultez la description des spécifications sur la page d'achat.
Limites des applications Kubernetes
ACS s'intègre à Kubernetes via des nœuds virtuels. Les instances de pod ACS ne s'exécutent pas sur des nœuds physiques centralisés, mais sont réparties dans le pool de ressources Alibaba Cloud. En raison des exigences de sécurité du cloud public et des limitations des nœuds virtuels, ACS ne prend pas en charge certaines fonctionnalités Kubernetes telles que HostPath et DaemonSet, comme indiqué dans le tableau suivant.
Limite | Description | Action en cas d'échec de la validation | Alternative recommandée |
DaemonSet | L'utilisation des charges de travail DaemonSet est restreinte. | Le pod s'exécute mais ne fonctionne pas comme prévu. | Déployez plusieurs conteneurs dans le pod en tant que sidecars. |
Service avec type=NodePort | Mappage des ports hôte vers le conteneur | La soumission est rejetée. | Utilisez un équilibreur de charge avec |
HostNetwork | Le mappage des ports hôtes vers les conteneurs est restreint. | La valeur est réécrite en | Non requis. |
HostIPC | La communication inter-processus entre les processus du conteneur et ceux de l'hôte est restreinte. | La valeur est réécrite en | Non requis. |
HostPID | La visibilité de l'espace PID de l'hôte par le conteneur est restreinte. | La valeur est réécrite en | Non requis. |
HostUsers | L'utilisation des espaces de noms utilisateur est restreinte. | La valeur est réécrite pour être vide. | Non requis. |
DNSPolicy | L'utilisation de certaines DNSPolicies est restreinte. Remarque
|
| Utilisez une valeur autorisée. |
Format des variables d'environnement du conteneur | Outre les contraintes par défaut sur les variables d'environnement imposées par le serveur API Kubernetes, pour les types de calcul GPU et GPU-HPN, ACS exige que les noms des variables d'environnement soient composés de lettres, de chiffres, de traits de soulignement, de points ou de traits d'union, et ne doivent pas commencer par un chiffre. | Le pod ne démarre pas. | Utilisez un nom de variable d'environnement conforme. |
Nombre de variables d'environnement du conteneur | En raison des contraintes sur la longueur de la liste des paramètres pour les appels système sous Linux, le nombre de variables d'environnement pour un seul conteneur doit être limité à environ 2 000 ou moins. De plus, si | Le pod ne démarre pas. | Réduisez le nombre de variables d'environnement du conteneur. S'il y a beaucoup de Services, définissez |
Utilisation des ports
Le tableau suivant décrit les ports utilisés par ACS. Évitez d'utiliser ces ports lors du déploiement des services.
|
Port |
Description |
|
111, 10250, 10255 |
Ports utilisés par les clusters ACS pour des interfaces telles que exec, logs et metrics. |