Copier une image de conteneur d'un référentiel vers un autre référentiel - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Copier une image de conteneur d'un référentiel vers un autre référentiel

Cette rubrique décrit comment extraire une image de conteneur d’un référentiel auquel vos nœuds n’ont pas accès et envoyer l’image vers un référentiel auquel vos nœuds ont accès. Vous pouvez transmettre l'image à Amazon ECR ou à un référentiel alternatif auquel vos nœuds ont accès.

  • Docker Engine installé et configuré sur votre ordinateur. Pour connaître la marche à suivre, consultez la rubrique Installer Docker Engine de la documentation Docker.

  • Version 2.12.3 ou version ultérieure 1.27.160 ou version ultérieure de l'interface de ligne de AWS commande (AWS CLI) installée et configurée sur votre appareil ou AWS CloudShell. Pour vérifier votre version actuelle, utilisez aws --version | cut -d / -f2 | cut -d ' ' -f1. Les gestionnaires de packages tels que yum Homebrew pour macOS ont souvent plusieurs versions de retard sur la dernière version de la AWS CLI. apt-get Pour installer la dernière version, consultez la section Installation et configuration rapide avec aws configure dans le Guide de l'utilisateur de l'interface de ligne de AWS commande. La version de la AWS CLI installée AWS CloudShell peut également avoir plusieurs versions de retard par rapport à la dernière version. Pour le mettre à jour, consultez la section Installation de la AWS CLI dans votre répertoire de base dans le guide de AWS CloudShell l'utilisateur.

  • Un point de terminaison d’un VPC d’interface pour Amazon ECR si vous souhaitez que vos nœuds extraient des images de conteneur ou transmettent des images de conteneur vers un référentiel Amazon ECR privé sur le réseau d’Amazon. Pour de plus amples informations, veuillez consulter Créer des points de terminaison de VPC pour Amazon ECR dans le Guide de l'utilisateur Amazon Elastic Container Registry.

Effectuez les étapes suivantes pour extraire une image de conteneur d'un référentiel et la transférer vers votre propre référentiel. Dans les exemples suivants fournis dans cette rubrique, l’image du plug-in Amazon VPC CNI pour l’assistant de métriques Kubernetes est extraite. Lorsque vous suivez ces étapes, assurez-vous de remplacer les exemples de valeurs par vos propres valeurs.

  1. Si vous ne disposez pas déjà d’un référentiel Amazon ECR ou d’un autre référentiel, créez-en un auquel vos nœuds ont accès. La commande suivante crée un référentiel privé Amazon ECR. Un nom de référentiel privé Amazon ECR doit commencer par une lettre. Il peut uniquement contenir des lettres minuscules, des chiffres, des tirets (-), des traits de soulignement (_) et des barres obliques (/). Pour de plus amples informations, veuillez consulter Créer un référentiel privé dans le Guide de l'utilisateur Amazon Elastic Container Registry.

    Vous pouvez remplacer.cni-metrics-helper par ce que vous souhaitez. Il est recommandé de créer un référentiel distinct pour chaque image. Nous vous le recommandons, car les identifications d'image doivent être uniques au sein d'un référentiel. Remplacez region-code par une AWS région prise en charge par Amazon ECR.

    aws ecr create-repository --region region-code --repository-name cni-metrics-helper
  2. Déterminez le registre, le référentiel et l'identification (facultatif) de l'image que vos nœuds doivent extraire. Ces informations se trouvent dans le format registry/repository[:tag].

    De nombreuses rubriques Amazon EKS sur l'installation d'images nécessitent que vous appliquiez un fichier manifeste ou que vous installiez l'image à l'aide des Charts de Helm. Cependant, avant d’appliquer un fichier manifeste ou d’installer une charte de Helm, visualisez d’abord le contenu du fichier values.yaml manifeste ou de la charte. De cette façon, vous pouvez déterminer le registre, le référentiel et l'identification à extraire.

    Par exemple, vous pouvez trouver la ligne suivante dans le fichier manifeste du plug-in Amazon VPC CNI pour l’assistant de métriques Kubernetes. Le registre est 602401143452.dkr.ecr.us-west-2.amazonaws.com, qui est un registre privé Amazon ECR. Le référentiel est cni-metrics-helper.

    image: "602401143452.dkr.ecr.us-west-2.amazonaws.com/cni-metrics-helper:v1.12.6"

    Vous pouvez voir les variantes suivantes pour un emplacement d'image :

    • Seul repository-name:tag. Dans ce cas, docker.io est généralement le registre, mais non spécifié puisque Kubernetes l'ajoute par défaut à un nom de référentiel si aucun registre n'est spécifié.

    • repository-name/repository-namespace/repository:tag. Un espace de noms de référentiel est facultatif, mais est parfois spécifié par le propriétaire du référentiel pour catégoriser les images. Par exemple, toutes les EC2 images Amazon de la galerie publique Amazon ECR utilisent l'espace de aws-ec2 noms.

      Avant d'installer une image avec Helm, affichez le fichier values.yaml Helm pour déterminer l'emplacement de l'image. Par exemple, le fichier values.yaml du plug-in Amazon VPC CNI pour l’assistant de métriques Kubernetes comprend les lignes suivantes.

      image: region: us-west-2 tag: v1.12.6 account: "602401143452" domain: "amazonaws.com"
  3. Extrayez l'image conteneur spécifiée dans le fichier manifeste.

    1. Si vous extrayez des images d’un registre public, tel que la galerie publique Amazon ECR, vous pouvez passer à la sous-étape suivante, car l’authentification n’est pas requise. Dans cet exemple, vous vous authentifiez auprès d'un registre privé Amazon ECR contenant le référentiel pour l'image d'assistance des métriques CNI. Amazon EKS conserve l’image dans chaque registre répertorié dans la section Afficher les registres d’images de conteneurs Amazon pour les modules complémentaires Amazon EKS. Vous pouvez vous authentifier auprès de n'importe quel registre en remplaçant 602401143452 et region-code par les informations d'un registre différent. Il existe un registre distinct pour chaque région AWS dans laquelle Amazon EKS est pris en charge.

      aws ecr get-login-password --region region-code | docker login --username AWS --password-stdin 602401143452.dkr.ecr.region-code.amazonaws.com
    2. Extrayez l'image. Dans cet exemple, vous effectuez une extraction à partir du registre auquel vous vous êtes authentifié au cours de la sous-étape précédente. Remplacez 602401143452 et region-code par les informations que vous avez fournies à la sous-étape précédente.

      docker pull 602401143452.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
  4. Étiquetez l'image que vous avez extraite avec votre registre, votre référentiel et votre identification. L'exemple suivant suppose que vous avez extrait l'image du fichier manifeste et que vous allez la transmettre au référentiel privé Amazon ECR que vous avez créé à la première étape. Remplacez 111122223333 par votre ID de compte. region-codeRemplacez-le par la AWS région dans laquelle vous avez créé votre référentiel privé Amazon ECR.

    docker tag cni-metrics-helper:v1.12.6 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
  5. Authentifiez auprès de votre registre. Dans cet exemple, vous vous authentifiez auprès du registre privé Amazon ECR que vous avez créé à la première étape. Pour plus d'informations, veuillez consulter Authentification de registre dans le Guide de l'utilisateur Amazon Elastic Container Registry.

    aws ecr get-login-password --region region-code | docker login --username AWS --password-stdin 111122223333.dkr.ecr.region-code.amazonaws.com
  6. Transmettez l'image à votre référentiel. Dans cet exemple, vous transmettez l'image au référentiel privé Amazon ECR que vous avez créé à la première étape. Pour plus d'informations, consultez Transmission d'une image Dockerdans le Guide de l'utilisateur Amazon Elastic Container Registry.

    docker push 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
  7. Mettez à jour le fichier manifeste que vous avez utilisé pour déterminer l'image lors d'une étape précédente avec le registry/repository:tag pour l'image que vous avez transmise. Si vous effectuez l’installation à l’aide d’une charte de Helm, il existe souvent une option permettant de spécifier le registry/repository:tag. Lors de l'installation du graphique, spécifiez le registry/repository:tag pour l'image que vous avez transmise à votre référentiel.