Chaque pod Elastic Container Instance (ECI) inclut 30 GiB d'espace de stockage temporaire gratuit. Si votre charge de travail nécessite plus de capacité, augmentez l'espace de stockage temporaire en définissant une annotation ou une requête de ressource sur le pod.
Fonctionnement
L'espace par défaut de 30 GiB est partagé entre l'image du conteneur et vos charges de travail en cours d'exécution. Étant donné qu'ECI décompresse l'image avant utilisation, celle-ci occupe au moins deux fois sa taille compressée. Soustrayez cet espace des 30 GiB pour estimer la capacité disponible pour vos conteneurs. Si l'espace restant est insuffisant, configurez une capacité supplémentaire : le stockage au-delà des 30 GiB par défaut est facturé en fonction de la capacité et de la durée d'utilisation. Pour plus d'informations sur les tarifs, consultez la rubrique Facturation de l'espace de stockage temporaire.
Méthodes de configuration
ECI prend en charge deux méthodes pour augmenter l'espace de stockage temporaire. Utilisez l'une ou l'autre méthode, voire les deux : si les deux sont définies, c'est la valeur la plus élevée qui s'applique.
| Méthode | Champ | Type de syntaxe | Calcul de la capacité augmentée |
|---|---|---|---|
| Annotation | k8s.aliyun.com/eci-extra-ephemeral-storage |
Limite | Exactement la valeur que vous définissez |
| Requête de ressource | spec.containers[].resources.requests.ephemeral-storage |
Requête | Valeur définie moins 30 GiB |
La différence de syntaxe est importante : l'annotation utilise la syntaxe de limite, de sorte que la valeur correspond directement à la capacité supplémentaire. La requête de ressource utilise la syntaxe de requête, ce qui signifie que la valeur représente la capacité totale souhaitée ; ECI soustrait les 30 GiB par défaut et alloue le reste. Par exemple, définir ephemeral-storage: 50Gi augmente la capacité de 20 GiB (50 − 30 = 20).
Méthode 1 : Définir une annotation
Ajoutez l'annotation k8s.aliyun.com/eci-extra-ephemeral-storage aux métadonnées du pod. La valeur de l'annotation correspond au montant exact de stockage supplémentaire à allouer.
Ajoutez les annotations aux métadonnées du pod, et non aux métadonnées du Deployment. Pour un Deployment, ajoutez l'annotation sous spec.template.metadata.annotations. Les annotations ne prennent effet qu'à la création du pod ; la modification des annotations sur un pod existant n'a aucun effet.
Méthode 2 : Définir une requête de ressource
Définissez spec.containers[].resources.requests.ephemeral-storage sur la capacité de stockage totale dont vous avez besoin (30 GiB par défaut plus la capacité supplémentaire). L'augmentation n'est déclenchée que si la valeur dépasse 30 GiB. L'augmentation réelle correspond à la valeur spécifiée moins 30 GiB.
Lorsque vous utilisez la méthode 2, la capacité réellement augmentée peut différer de la valeur spécifiée selon le type de cache d'image. Pour plus de détails, consultez la section Type de cache d'image et capacité de stockage.
Augmenter l'espace de stockage temporaire d'un pod
Prérequis
Avant de commencer, assurez-vous d'avoir :
Un cluster Kubernetes avec ECI activé (ACK ou ASK)
kubectl configuré pour se connecter à votre cluster
Étape 1 : Créer le fichier YAML du pod
Créez un fichier nommé extra-storage.yaml. Les exemples suivants montrent comment augmenter l'espace de stockage temporaire de 20 GiB en utilisant chaque méthode.
Exemple 1 : Annotation
apiVersion: v1
kind: Pod
metadata:
name: test
annotations:
k8s.aliyun.com/eci-extra-ephemeral-storage: "20Gi" # Additional capacity beyond the default 30 GiB
spec:
containers:
- name: nginx
image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
imagePullPolicy: IfNotPresent
restartPolicy: Always
Exemple 2 : Requête de ressource
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: nginx
image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
imagePullPolicy: IfNotPresent
resources:
requests:
ephemeral-storage: 50Gi # Total capacity: 30 GiB default + 20 GiB additional
restartPolicy: Always
Étape 2 : Créer le pod
kubectl apply -f extra-storage.yaml
Étape 3 : Vérifier la configuration
Vérifiez la capacité augmentée :
kubectl describe pod test | grep k8s.aliyun.com/eci-extra-ephemeral-storage
La sortie suivante confirme une augmentation de 20 GiB :
k8s.aliyun.com/eci-extra-ephemeral-storage: 20Gi
Vérifiez le système de fichiers :
Connectez-vous au conteneur et exécutez df -h pour vérifier la taille des partitions :
kubectl exec -it test -- sh
df -h
Sortie attendue :
Filesystem Size Used Avail Use% Mounted on
overlay 50G 2.1G 48G 5% /
tmpfs 64M 0 64M 0% /dev
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda4 50G 2.1G 48G 5% /etc/hosts
shm 64M 0 64M 0% /dev/shm
tmpfs 4.0G 12K 4.0G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 1.9G 0 1.9G 0% /proc/acpi
tmpfs 1.9G 0 1.9G 0% /sys/firmware
La ligne overlay affiche le système de fichiers racine. Une taille de 50G confirme que l'espace de stockage temporaire a été augmenté de 20 GiB (50 GiB au total moins les 30 GiB par défaut).
Type de cache d'image et capacité de stockage
Le disque qui prend en charge l'espace de stockage temporaire dépend du type de cache d'image utilisé pour créer le pod.

-
Cache d'image automatique : le stockage temporaire se trouve sur le disque système. La taille de la partition du disque système (
/dev/vda5) équivaut à la capacité de stockage temporaire configurée.
-
Cache d'image manuel : le stockage temporaire se trouve sur un disque de données. La partition du disque système (
/dev/vda5) reste à 30 GiB par défaut et n'est pas utilisée pour le stockage des charges de travail.
Lorsque vous utilisez la méthode 2 (requête de ressource) avec un cache d'image manuel, la capacité réellement allouée peut différer de la valeur spécifiée en raison du mode de provisionnement du disque de données.