Amazon prodigue des conseils aux clients AWS confrontés aux nouvelles limites d'extraction de Docker Hub,
Google fait pareil pour les utilisateurs de GCP
Docker, Inc. a récemment mis à jour les conditions d'utilisation de Docker Hub, le plus grand registre d'images de conteneur au monde, mais les nouvelles règles pourraient nuire à l'activité de nombreuses équipes de développement. Elles peuvent par exemple rencontrer des erreurs lorsqu'elles construisent à partir d'une image publique parente ou lorsqu'elles tirent une image publique pour s'exécuter. Pour permettre aux clients AWS et GCP d'être au courant des changements que cela pourrait induire sur leur charge de travail et pouvoir s'y préparer, Amazon et Google ont publié quelques consignes pouvant les guider.
Docker Hub est la plus grande bibliothèque et la plus grande communauté d'images de conteneurs au monde. Il contient plus de 100 000 images de conteneurs provenant de fournisseurs de logiciels, de projets à source ouverte et de la communauté. Au début de l'été, Docker a annoncé qu'il commencerait à limiter le nombre de demandes d'extraction des utilisateurs de l'option gratuite. Pour les demandes d'extraction par des utilisateurs anonymes, cette limite est maintenant de 100 demandes d'extraction toutes les 6 heures et les utilisateurs authentifiés ont une limite de 200 demandes d'extraction toutes les 6 heures.
Les comptes Pro et Team quant à eux ne connaîtront aucune modification. Selon l'annonce de Docker, les nouvelles limites tarifaires devraient être déjà en vigueur depuis ce 1er novembre. Cependant, elles pourraient avoir des impacts importants pour de nombreux utilisateurs du service. Dans le cas de GCP (Google Cloud Platform) par exemple, elles pourraient perturber vos processus automatisés de construction et de déploiement sur le Cloud Build ou la façon dont vous déployez des artefacts vers Google Kubernetes Engine (GKE), Cloud Run ou App Engine Flex de Docker Hub.
Docker a déclaré que des limites d'extraction étaient nécessaires, car un petit nombre d'utilisateurs anonymes de Docker Hub a un impact disproportionné sur le service. Par exemple, environ 30 % de tous les téléchargements sur Docker Hub proviennent de seulement 1 % des utilisateurs anonymes. L'entreprise estime que ces limites sont conçues pour tenir compte des cas d'utilisation normaux pour les développeurs, notamment apprentissage de Docker, développement de code, construction d'images, pour ne citer que ceux-là. Alors, comment limiter les impacts de ces changements ?
Gérer l'impact à court terme de la limitation des extractions de Docker Hub
Dans un article publié aujourd'hui, Amazon a annoncé que si les clients remarquent une perturbation, l'approche globale qu'il recommande est d'abord d'identifier les images de conteneurs publics qu'ils utilisent, puis de choisir une approche d'atténuation et de prendre les mesures nécessaires. Vous pouvez identifier les images publiques de Docker Hub en recherchant les fichiers nommés Dockerfile dans le code source à partir de la commande FROM.
Par exemple, "FROM amazonlinux:latest" extrait la dernière version d'amazonlinux de Docker Hub comme image parente dans une construction d'image d'application. Pour être complet, recherchez également des images publiques dans les configurations de votre grappe d'applications de conteneurs. Amazon a annoncé qu'il travaille sur un outil permettant d'automatiser ces étapes, ce qui facilitera la génération d'une liste de toutes les images publiques dans les dépôts de sources, les clusters Amazon Elastic Container Service (ECS) et Amazon Elastic Kubernetes Service (EKS).
En cas de perturbation, Amazon recommande deux approches d'atténuation. La première consiste à copier les images publiques utilisées dans un registre privé tel que Amazon Elastic Container Registry (ECR). Ou deuxièmement, passer à un abonnement payant à Docker Hub. Les deux approches nécessitent de passer à un modèle de traction authentifié. Les clients de l'ECS peuvent suivre ces instructions pour authentifier les demandes d'extraction de tâches. Les clients de Kubernetes, y compris les utilisateurs de l'EKS, peuvent suivre ces instructions pour authentifier les "worker node" ou les "pod pulls".
L'agent Amazon ECS (Elastic Container Service)
AWS a publié l'agent Amazon ECS comme une image publique de conteneur et le préinstalle sur toutes les AMI (Amazon Machine Images) optimisées par ECS. Toute instance utilisant les AMI optimisées par ECS ne dépend pas de Docker Hub pour lancer l'instance, donc les clients utilisant ces AMI ne seront pas affectés par les limitations de Docker Hub sur les demandes d'extraction de l'image de conteneur de l'agent ECS. Les clients qui mettent à jour l'agent vers la dernière version en utilisant la console AWS ou le CLI ne verront pas non plus les impacts des limites lors de la mise à jour.
Le processus de mise à jour télécharge en effet la dernière image de l'agent ECS depuis Amazon S3 et ne dépend pas de Docker Hub. Les clients qui créent leurs propres AMI à utiliser avec ECS, ou qui utilisent des AMI tiers, doivent gérer l'installation et les mises à jour de l'agent ECS. Ces clients peuvent stocker leur propre copie de l'agent ECS dans un registre privé (tel que ECR) et l'extraire de celui-ci, la télécharger à partir d'un seau S3 public appartenant à AWS, ou extraire l'image de Docker Hub. Les clients qui téléchargent l'agent ECS à partir de Docker Hub peuvent cependant être soumis à des limites de tarifs de Docker Hub.
Les ajouts à Amazon EKS (Elastic Kubernetes Service)
Selon Amazon, tous les logiciels inclus dans les clusters EKS sont désormais hébergés sur ECR et ne seront pas soumis aux limites d'extraction de Docker Hub. Les projets construits et entretenus par EKS, tels que le contrôleur d'équilibrage de charge AWS, comprennent des tableaux de pilotage qui font également référence aux images sur ECR. Cependant, les manifestes de ces projets disponibles sur GitHub comprennent des références aux images qui sont publiées sur Docker Hub. Vous pouvez vérifier si vous utilisez un manifeste avec une image de Docker Hub en suivant les étapes décrites par Amazon sur son site.
Prochainement, une solution fiable pour les images des conteneurs publics
Amazon a annoncé que des événements tels que les limites d'extraction de Docker Hub renforcent la réalité selon laquelle les images publiques des conteneurs sont un élément essentiel de la chaîne d'approvisionnement des logiciels pour conteneurs. « Des clients nous ont demandé de les aider à rendre les images des conteneurs publics qu'ils utilisent aussi disponibles et fiables que leurs images hébergées dans ECR », a déclaré Amazon, ajoutant que ses ingénieurs travaillent depuis de nombreux mois pour répondre à cette demande des clients.
Ainsi, il a annoncé que d'ici quelques semaines, AWS fournira un nouveau registre public des conteneurs qui permettra aux développeurs de partager et de déployer publiquement des images de conteneurs. Ce nouveau registre permettra aux développeurs de stocker, de gérer, de partager et de déployer des images de conteneurs pour que chacun puisse les découvrir et les télécharger. Les développeurs pourront utiliser AWS pour héberger leurs images de conteneurs privés et publics, éliminant ainsi la nécessité d'utiliser différents sites Web et registres publics.
En outre, Amazon informe également que les images publiques seront géorépliquées pour une disponibilité fiable dans le monde entier et offriront des téléchargements rapides pour servir rapidement les images à la demande. « Toute personne (avec ou sans compte AWS) pourra parcourir et extraire des logiciels conteneurisés pour les utiliser dans ses propres applications », a-t-il annoncé. Les développeurs pourront utiliser le nouveau registre pour distribuer des images publiques de conteneurs et des fichiers connexes tels que des graphiques et des configurations de politique à l'usage de tout développeur.
« Un nouveau site Web permettra à chacun de naviguer et de rechercher des images de conteneurs publics, de consulter les détails fournis par les développeurs et de voir les commandes d'extraction, le tout sans avoir à se connecter à l'AWS. Des images publiques fournies par AWS, telles que l'agent ECS, l'agent Amazon CloudWatch et les images du conteneur d'apprentissage profond AWS, seront également disponibles », a expliqué Amazon.
Impact sur les Kubernetes et GKE (Google Kubernetes Engine)
Selon Google, l'un des groupes qui pourraient subir l'impact le plus important des modifications apportées à Docker Hub est celui des utilisateurs des services de conteneurs gérés. Comme il le fait pour les autres plateformes Kubernetes gérées, Docker Hub traite GKE comme un utilisateur anonyme par défaut. Cela signifie qu'à moins que vous ne spécifiiez les identifiants de Docker Hub dans votre configuration, votre cluster est soumis à la nouvelle limitation de 100 demandes d'extraction d'images par 6 heures, par IP. Et de nombreux déploiements de Kubernetes sur GKE utilisent des images publiques.
En fait, tout nom de conteneur qui n'a pas de préfixe de registre de conteneur tel que gcr.io est retiré du Docker Hub. Les exemples incluent nginx, et redis. En outre, Container Registry héberge un cache des images les plus demandées du Docker Hub de Google Cloud, et GKE est configuré pour utiliser ce cache par défaut. Cela signifie que la majorité des extractions d'images par les charges de travail de GKE ne devraient pas être affectées par les nouvelles limites de tarifs de Docker Hub. Pour éviter que vos images ne soient plus dans le cache à l'avenir, Google recommande de migrer vos dépendances vers le registre des conteneurs.
Cela vous permettra d'extraire toutes vos images d'un registre sous votre contrôle. Enfin, notez que, bien que GKE soit l'un des services Google Cloud susceptibles de subir l'impact des limites d'extraction de Docker Hub, tout service qui repose sur des images de conteneurs peut être affecté, y compris les services similaires Cloud Build, Cloud Run, App Engine, etc.
Utiliser un compte Docker Hub payant ou passer à Container Registry
Google estime que la solution la plus simple, mais la plus coûteuse, aux nouvelles limites d'extraction de Docker Hub est de passer à un compte Docker Hub payant. Si vous choisissez de le faire et que vous utilisez Cloud Build, Cloud Run for Anthos ou GKE, vous pouvez configurer le runtime pour qu'il s'exécute avec vos identifiants. Une autre approche pour éviter ce problème est de déplacer tout artefact de conteneur que vous utilisez de Docker Hub vers Container Registry. Cela vous permettra d'intégrer la gestion des images des conteneurs dans votre environnement Google Cloud global. Plus précisément, en optant pour un dépôt d'images privé pour votre organisation, vous maîtrisez votre destin de fournisseur de logiciels.
Sources : Annonce de Docker, Amazon, Google
Et vous ?
Quel est votre avis sur le sujet ?
Êtes-vous concernés par ces nouvelles limitations de Docker Hub ? Si oui, à quel point cela vous impacte-t-il ?
Voir aussi
Docker Hub piraté : 190 000 comptes exposés, les jetons GitHub révoqués et les compilations désactivées
Conteneurisation : Docker annonce une nouvelle levée de fonds de 95 millions de $ pour poursuivre le développement de sa plateforme de conteneurs
Oracle supprime une image Docker approuvée par la communauté et utilisée lors des tests sur son SGBD, évoquant une violation de ses droits d'auteur
Google Cloud Platform parvient à se rapprocher des performances d'AWS et de Microsoft Azure, selon un rapporrt
L'équation des revenus du Cloud : AWS égale à Azure + Google + Alibaba, alors que la reprise du confinement en Europe et les charges de travail liées à la 5G promettent une nouvelle hausse du Cloud
Partager