Lors de la création d'un cache d'images avec la ressource personnalisée (CRD) ImageCache, ajoutez des annotations pour contrôler le réseau, l'authentification auprès du registre d'images, l'optimisation du cache et son cycle de vie. Cette rubrique répertorie toutes les annotations prises en charge, accompagnées d'exemples YAML pour chaque scénario.
Présentation des annotations
Le tableau suivant répertorie toutes les annotations prises en charge, classées par objectif.
|
Annotation |
Exemple de valeur |
Description |
|
Réseau |
||
|
|
"vsw-bp1dktddjsg5nktv**,vsw-bp1xpiowfm5vo8o3c**" |
Identifiants de vSwitch pour la création d'un cache d'images multizone. Séparez les différents identifiants par des virgules. Valeur par défaut : le vSwitch configuré dans eci-profile. |
|
|
|
Identifiant du groupe de sécurité. Valeur par défaut : le groupe de sécurité configuré dans eci-profile. |
|
|
|
Identifiant du groupe de ressources. Valeur par défaut : le groupe de ressources configuré dans eci-profile. |
|
Authentification auprès du registre d'images |
||
|
|
|
Identifiants d'instance Container Registry Enterprise Edition pour le téléchargement d'images sans secret. Pour télécharger une image depuis une instance située dans une autre région, faites précéder l'identifiant de l'instance par l'ID de la région : |
|
|
|
Noms de ressource Alibaba Cloud (ARN) des rôles RAM dans le compte Alibaba Cloud propriétaire des ressources Elastic Container Instance (ECI). Requis lors de l'utilisation d'un rôle RAM pour créer des ressources. |
|
|
|
ARN des rôles RAM dans le compte Alibaba Cloud propriétaire de l'instance Container Registry. Requis pour le téléchargement d'images intercomptes. |
|
|
"harbor.pre.com,192.168.XX.XX:5000,reg.test.com:80" |
Adresse d'un dépôt d'images géré en interne utilisant HTTP. Par défaut, les instances de conteneur élastiques téléchargent les images via HTTPS. Ajoutez cette annotation pour que l'instance utilise HTTP pour le dépôt spécifié. |
|
|
"harbor.pre.com,192.168.XX.XX:5000,reg.test.com:80" |
Adresse d'un dépôt d'images géré en interne utilisant un certificat auto-signé. Ajoutez cette annotation pour ignorer la vérification du certificat et éviter les échecs de téléchargement. |
|
Optimisation du cache |
||
|
|
|
Active la réutilisation des couches de cache d'images. Lors de la création d'un cache d'images, le système vérifie les caches existants et réutilise les couches d'images correspondantes, ce qui réduit le temps de création. |
|
|
|
Active le cache d'images instantané. Le système crée un snapshot local temporaire, rendant le cache d'images disponible immédiatement. En arrière-plan, le système crée un snapshot standard ; une fois celui-ci prêt, le snapshot local est supprimé automatiquement. |
|
Cycle de vie du cache |
||
|
|
|
Période de conservation en jours. Les caches d'images expirés sont supprimés automatiquement. Valeur par défaut : vide (aucune expiration). |
|
|
|
Taille du cache d'images en GiB. Valeur par défaut : 20. Plage valide : 20–32768. |
|
Accès Internet via EIP |
||
|
|
|
Identifiant d'une adresse IP élastique (EIP) existante à associer à l'instance de conteneur élastique temporaire lors de la création du cache d'images. L'EIP est conservée après la création du cache d'images. |
|
|
|
Crée automatiquement une EIP et l'associe à l'instance de conteneur élastique temporaire. L'EIP est libérée après la création du cache d'images. |
|
|
|
Limite de bande passante de l'EIP créée automatiquement, en Mbit/s. |
|
|
|
Méthode de facturation de l'EIP créée automatiquement. Valeurs valides : |
|
|
|
Type de ligne pour l'EIP créée automatiquement. S'applique uniquement aux EIP en paiement à l'utilisation. Valeurs valides : |
|
|
|
Identifiant du plan de bande passante EIP à associer à l'EIP créée automatiquement. |
Création d'un cache d'images multizone
ECI crée une instance de conteneur élastique temporaire pour télécharger et mettre en cache les images. Pour garantir la réussite de la création du cache même lorsqu'une zone n'est pas disponible, spécifiez plusieurs vSwitchs répartis dans différentes zones.
Remarque : Par défaut, le vSwitch configuré dans le cluster Kubernetes ou le VNode est utilisé. Si le cluster ou le VNode s'étend déjà sur plusieurs zones, il peut ne pas être nécessaire de spécifier explicitement les vSwitchs.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/vswitch-ids: "vsw-bp1dktddjsg5nktv****,vsw-bp1xpiowfm5vo8o3c****" # Multiple vSwitches for multi-zone support.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Configuration d'un groupe de sécurité et d'un groupe de ressources
Par défaut, le groupe de sécurité et le groupe de ressources définis dans eci-profile sont utilisés. Utilisez les annotations suivantes pour les remplacer pour un cache d'images spécifique.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/security-group-id: "sg-bp1dktddjsg5nktv****" # Override the default security group.
k8s.aliyun.com/resource-group-id: "rg-aek2z3elfs4****" # Override the default resource group.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Téléchargement d'images depuis Container Registry sans Secret
Le téléchargement d'images sans secret permet à ECI de télécharger des images depuis Container Registry sans utiliser de Secrets Kubernetes. La prise en charge dépend du fait que l'instance Container Registry se trouve dans le même compte Alibaba Cloud et de l'édition utilisée.
|
Même compte |
Édition Container Registry |
Téléchargement d'images sans secret |
|
Oui |
Edition personnelle ou Enterprise Edition (domaine par défaut) |
Activé par défaut. Configurez un rôle RAM pour limiter la portée des instances prenant en charge le téléchargement sans secret. |
|
Oui |
Enterprise Edition (domaine personnalisé) |
Non activé par défaut. Spécifiez explicitement les instances Container Registry à l'aide de |
|
Non |
Edition personnelle ou Enterprise Edition |
Non activé par défaut. Configurez un rôle RAM à l'aide de |
Pour plus de détails sur la configuration, consultez Télécharger des images depuis une instance Container Registry sans utiliser de Secret.
Utilisation de dépôts d'images gérés en interne
Si un dépôt d'images géré en interne utilise HTTP ou un certificat auto-signé, les téléchargements d'images échouent par défaut avec l'erreur ErrImagePull. Ajoutez l'annotation appropriée pour éviter cet échec.
Dépôts HTTP
Par défaut, les instances de conteneur élastiques téléchargent les images via HTTPS. Si votre dépôt géré en interne utilise HTTP, les téléchargements d'images échouent avec l'erreur ErrImagePull. Ajoutez k8s.aliyun.com/plain-http-registry pour autoriser HTTP pour le dépôt spécifié.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/plain-http-registry: "192.168.XX.XX:5000" # Allow HTTP pulls from this repository.
spec:
images:
- 192.168.XX.XX:5000/test/nginx:latest
imagePullSecrets:
- default:secret1
- default:secret2
- kube-system:secret3
imageCacheSize: 25
retentionDays: 7
Dépôts avec certificat auto-signé
Si votre dépôt géré en interne utilise un certificat auto-signé, les téléchargements d'images échouent avec l'erreur ErrImagePull. Ajoutez k8s.aliyun.com/insecure-registry pour ignorer la vérification du certificat pour le dépôt spécifié.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/insecure-registry: "harbor***.pre.com" # Skip certificate verification for this repository.
spec:
images:
- harbor***.pre.com/test/nginx:latest
imagePullSecrets:
- default:secret1
- default:secret2
- kube-system:secret3
imageCacheSize: 25
retentionDays: 7
Pour télécharger des images depuis plusieurs dépôts, séparez leurs adresses par des virgules :harbor***.pre.com,192.168.XX.XX. Si l'adresse d'un dépôt inclut un port, incluez le port dans la valeur de l'annotation :192.168.XX.XX:5000.
Activation de la réutilisation des couches de cache d'images
Le temps de création d'un cache d'images dépend de la taille de l'image et des conditions réseau. Lorsque la réutilisation des couches est activée, le système vérifie les caches d'images existants avant d'en créer un nouveau et réutilise les couches correspondantes, ce qui réduit considérablement le temps de création pour les images partageant des couches de base communes.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-reuse: "true" # Reuse matching layers from existing image caches.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Activation du cache d'images instantané
Lorsque le cache d'images instantané est activé, le système crée d'abord un snapshot local temporaire pour les disques de l'instance de conteneur élastique temporaire. Le cache d'images devient disponible dès que le snapshot local est prêt, sans attendre un snapshot standard complet.
Après la création du snapshot local, le système crée un snapshot standard en arrière-plan. Le cache d'images reste utilisable tout au long de ce processus. Une fois le snapshot standard prêt, le snapshot local est supprimé automatiquement et le cache d'images continue de fonctionner à partir du snapshot standard.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-flash: "true" # Enable instant image cache for faster availability.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Configuration de la taille du cache et de la période de conservation
Par défaut, les caches d'images ont une taille de 20 GiB et n'expirent jamais. Définissez la taille et la période de conservation à l'aide d'annotations ou des champs imageCacheSize et retentionDays dans la section spec.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-retention-days: "7" # Delete the image cache after 7 days.
k8s.aliyun.com/imc-size: "25" # Set the image cache size to 25 GiB.
spec:
images:
- centos:latest
- busybox:latest
Configuration de l'accès Internet via une EIP
Lors de la création d'un cache d'images, l'instance de conteneur élastique temporaire doit accéder à Internet pour télécharger les images. Si votre VPC ne dispose pas de passerelle NAT, associez une adresse IP élastique (EIP) à l'instance temporaire.
Deux options sont disponibles :
|
Option |
Cycle de vie de l'EIP |
|
Utiliser une EIP existante |
L'EIP est conservée après la création du cache d'images. |
|
Créer automatiquement une EIP |
L'EIP est libérée conjointement avec l'instance temporaire après la création du cache d'images. |
Utilisation d'une EIP existante
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/eip-instance-id: "eip-bp1q5n8cq4p7f6dzu****" # Associate an existing EIP.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Création automatique d'une EIP
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/auto-create-eip: "true" # Auto-create and associate an EIP.
k8s.aliyun.com/eip-bandwidth: "10" # Bandwidth limit in Mbit/s.
k8s.aliyun.com/eip-internet-charge-type: PayByBandwidth # Billing method: PayByBandwidth or PayByTraffic.
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # EIP bandwidth plan ID.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7