Elastic Container Instance (ECI) vous permet d'exécuter des pods sur une infrastructure serverless entièrement gérée dans les clusters ACK Serverless, sans aucune gestion de nœud requise. Cette rubrique présente les spécifications de calcul prises en charge par ECI et explique comment choisir la méthode de création adaptée à votre charge de travail.
Fonctionnement
Lorsque vous créez un pod ECI, spécifiez les ressources de calcul à l'aide de l'annotation k8s.aliyun.com/eci-use-specs. ECI sélectionne une instance correspondante et y exécute votre pod. Une fois le pod démarré, consultez le champ k8s.aliyun.com/eci-instance-spec dans le fichier YAML du pod pour identifier la spécification réellement utilisée : c'est elle qui détermine votre facturation.
Si ECI utilise un type d'instance ECS, la facturation est basée sur ce type d'instance.
Si ECI utilise des spécifications vCPU et mémoire, la facturation est basée sur le nombre de vCPU et la taille de la mémoire.
Limites
Avant de créer des pods ECI, tenez compte des contraintes suivantes :
GPU, disque local et Arm : Si votre pod nécessite une accélération GPU, des disques locaux ou une architecture Arm, spécifiez uniquement les types d'instance correspondants. Le mélange de ces éléments avec des spécifications non compatibles n'est pas pris en charge.
Instances préemptibles : Certaines spécifications vCPU/mémoire (disponibles uniquement dans certaines régions) ne peuvent pas être utilisées pour créer des instances préemptibles.
Architecture : ECI utilise par défaut l'architecture x86. Pour les pods basés sur Arm, consultez Planifier des pods sur un nœud virtuel basé sur Arm.
Emplacement de l'annotation : Ajoutez
k8s.aliyun.com/eci-use-specsàmetadatadans la spécification du pod. Dans un Deployment, ajoutez-la àspec.template.metadata.
Spécifier les ressources de calcul à l'aide de k8s.aliyun.com/eci-use-specs
Utilisez cette annotation pour déclarer les ressources de calcul nécessaires à votre pod. ECI tente chaque spécification par ordre de priorité (de la première à la dernière) jusqu'à ce que le pod soit créé avec succès.
| Clé d'annotation | Obligatoire | Format de valeur | Notes |
|---|---|---|---|
k8s.aliyun.com/eci-use-specs |
Oui | Liste de spécifications séparées par des virgules | Jusqu'à 5 spécifications. Indiquez vCPU/mémoire (par exemple, 2-4Gi), des types d'instance ECS (par exemple, ecs.c6.large), ou un mélange des deux. |
Exemple 1 : Spécifier des types d'instance GPU
Utilisez des types d'instance GPU et définissez la limite de ressource nvidia.com/gpu par conteneur. Les GPU sont partagés entre les conteneurs du pod.
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-use-specs: "ecs.gn6i-c4g1.xlarge,ecs.gn6i-c8g1.2xlarge" # Specify a maximum of five GPU-accelerated ECS instance types at a time.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
resources:
limits:
nvidia.com/gpu: "1" # The number of GPUs required by the Nginx container. The GPUs are shared.
ports:
- containerPort: 80
- name: busybox
image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
command: ["sleep"]
args: ["999999"]
resources:
limits:
nvidia.com/gpu: "1" # The number of GPUs required by the BusyBox container. The GPUs are shared.
Exemple 2 : Mélanger des spécifications vCPU/mémoire et des types d'instance ECS
Listez les spécifications par ordre de priorité. ECI les essaie de gauche à droite jusqu'à ce que l'une d'elles aboutisse.
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-use-specs: 2-4Gi,ecs.c5.large,ecs.c6.large # Sets the specifications that you want to use to create the pod. Replace the value by using the actual specifications.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Vérifier la spécification utilisée
Une fois le pod démarré, vérifiez le champ k8s.aliyun.com/eci-instance-spec dans le fichier YAML du pod pour confirmer quelle spécification ECI a réellement allouée et valider la base de votre facturation.
Spécifications de calcul prises en charge
Spécifications vCPU et mémoire
Disponibles dans toutes les régions
| vCPU | Mémoire (Go) | Bande passante (bidirectionnelle, Gbit/s, limite théorique supérieure) |
|---|---|---|
| 0,25 | 0,5 et 1 | 0,08 |
| 0,5 | 1 et 2 | 0,08 |
| 1 | 2, 4 et 8 | 0,1 |
| 2 | 1, 2, 4, 8 et 16 | 1 |
| 4 | 2, 4, 8, 16 et 32 | 1,5 |
| 8 | 4, 8, 16, 32 et 64 | 2 |
| 12 | 12, 24, 48 et 96 | 2,5 |
| 16 | 16, 32, 64 et 128 | 3 |
| 24 | 24, 48, 96 et 192 | 4,5 |
| 32 | 32, 64, 128 et 256 | 6 |
| 52 | 96, 192 et 384 | 12,5 |
| 64 | 128, 256 et 512 | 20 |
Disponibles uniquement dans certaines régions
Ces spécifications ne peuvent pas être utilisées pour des instances préemptibles. Régions prises en charge : Chine (Hangzhou), Chine (Shanghai), Chine (Qingdao), Chine (Pékin), Chine (Zhangjiakou), Chine (Hohhot), Chine (Ulanqab), Chine (Shenzhen), Chine (Heyuan), Chine (Guangzhou), Chine (Chengdu) et Singapour. Si la spécification n'est pas disponible dans la région et la zone sélectionnées, le pod ne peut pas être créé.
| vCPU | Mémoire (Go) | Bande passante (bidirectionnelle, Gbit/s, limite théorique supérieure) |
|---|---|---|
| 2 | 6, 10, 12 et 14 | 1 |
| 4 | 6, 10, 12, 14, 18, 20, 22, 24, 26, 28 et 30 | 1,5 |
| 6 | 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46 et 48 | 1,5 |
| 8 | 10, 12, 14, 18, 20, 22, 24, 26, 28, 30, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60 et 62 | 2,5 |
Familles d'instances ECS
Choisir une méthode de création
ECI prend en charge trois méthodes de création. Choisissez celle qui correspond à vos besoins en matière de ressources et de facturation.
| Méthode de création | Base de facturation | Cas d'utilisation |
|---|---|---|
| Spécifier le nombre de vCPU et la taille de la mémoire | Spécifications vCPU + mémoire | Vous souhaitez un dimensionnement flexible des ressources et payer en fonction de votre demande. Si vous spécifiez des combinaisons vCPU/mémoire non prises en charge, le système ajuste les spécifications et vous facture selon les nouvelles spécifications. |
| Spécifier un type d'instance ECS | Type d'instance ECS | Vous avez besoin de capacités matérielles spécifiques, telles que l'accélération GPU ou des disques locaux. |
| Spécifier des familles ou générations d'instances ECS comme filtres (avec vCPU/mémoire) | Type d'instance ECS réel sélectionné par ECI | Vous souhaitez une flexibilité vCPU/mémoire tout en limitant les familles d'instances que ECI peut sélectionner. |
Pour les étapes détaillées de chaque méthode, consultez :
Réduire les coûts
Instances préemptibles
Les instances préemptibles peuvent réduire considérablement les coûts pour les charges de travail sans état et tolérantes aux pannes. Consultez Créer une instance conteneur élastique préemptible.
Instances réservées et plans d'épargne
Pour les charges de travail stables exécutées sur de longues périodes, compensez vos factures ECI avec des instances réservées ou des plans d'épargne :
Pods facturés selon vCPU/mémoire : Utilisez des plans d'épargne à usage général.
Pods facturés selon le type d'instance ECS : Utilisez des plans d'épargne à usage général, des plans d'épargne de calcul ECS ou des instances réservées.
Consultez Utiliser des instances réservées et Utiliser des plans d'épargne.
Gérer l'insuffisance des ressources
ECI puise dans les pools de ressources cloud régionaux. Lors de la création de nombreux pods, certaines régions ou zones peuvent manquer de ressources. Pour améliorer le taux de réussite de création des pods, spécifiez plusieurs spécifications et plusieurs vSwitch dans différentes zones :