Copia di un'immagine di container da un repository a un altro - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Copia di un'immagine di container da un repository a un altro

In questo argomento viene descritto come estrarre un'immagine di container da un repository a cui i nodi non hanno accesso e inviare l'immagine a un repository a cui i nodi hanno accesso. Puoi inviare l'immagine ad Amazon ECR o a un repository alternativo a cui i tuoi nodi hanno accesso.

Prerequisiti
  • Il Docker motore installato e configurato sul tuo computer. Per istruzioni, consulta Installa Docker Motore in Docker documentazione.

  • Versione 2.12.3 o successiva o versione 1.27.160 o successiva di AWS Command Line Interface (AWS CLI) installato e configurato sul dispositivo o AWS CloudShell. Per verificare la versione attuale, usa aws --version | cut -d / -f2 | cut -d ' ' -f1. Package manager come yumapt-get, o Homebrew for macOS sono spesso presenti diverse versioni precedenti alla versione più recente di AWS CLI. Per installare la versione più recente, vedere Installazione, aggiornamento e disinstallazione di AWS CLI e Configurazione rapida con aws configure nella Guida per l'utente di AWS Command Line Interface . La AWS CLI versione installata in AWS CloudShell potrebbe anche contenere diverse versioni precedenti alla versione più recente. Per aggiornarla, consulta Installazione nella home directory nella Guida AWS CLI per l'AWS CloudShell utente.

  • Un VPC endpoint di interfaccia per Amazon ECR se desideri che i tuoi nodi estraggano le immagini dei container o le trasferiscano a un ECR repository Amazon privato sulla rete di Amazon. Per ulteriori informazioni, consulta Create the VPC endpoint for Amazon ECR nella Amazon Elastic Container Registry User Guide.

Completa i passaggi seguenti per estrarre un'immagine del container da un repository e inviarla al tuo repository. Nei seguenti esempi forniti in questo argomento, l'immagine per Amazon VPC CNI plugin for Kubernetes metrics helper viene estratto. Quando segui questi passaggi, assicurati di sostituire i example values con i tuoi valori.

Copia di un'immagine di container da un repository a un altro
  1. Se non disponi già di un ECR repository Amazon o di un altro repository, creane uno a cui i tuoi nodi abbiano accesso. Il comando seguente crea un repository ECR privato Amazon. Il nome di un repository ECR privato Amazon deve iniziare con una lettera. Può contenere soltanto lettere minuscole, numeri, trattini (-), trattini bassi (_) e barre (/). Per ulteriori informazioni, consulta la sezione Creazione di un repository privato nella Guida per l'utente di Amazon Elastic Container Registry.

    Puoi sostituire cni-metrics-helper con un qualsiasi valore a tua scelta. Come best practice, crea un repository separato per ogni immagine. Lo consigliamo perché i tag immagine devono essere univoci all'interno di un repository. Sostituisci region-code con uno Regione AWS supportato da Amazon ECR.

    aws ecr create-repository --region region-code --repository-name cni-metrics-helper
  2. Determina il registro, il repository e il tag (facoltativo) dell'immagine che i nodi devono estrarre. Questa informazione è nel formato registry/repository[:tag].

    Molti degli EKS argomenti di Amazon sull'installazione delle immagini richiedono l'applicazione di un file manifest o l'installazione dell'immagine utilizzando un grafico Helm. Tuttavia, prima di applicare un file manifesto o installare un grafico Helm, visualizza il contenuto del manifesto o del file values.yaml del grafico. In questo modo, puoi determinare il registro, il repository e il tag da estrarre.

    Ad esempio, puoi trovare la riga seguente nel file manifesto per Amazon VPC CNI plugin for Kubernetesaiutante per le metriche. Il registro è602401143452.dkr.ecr.us-west-2.amazonaws.com, che è un registro ECR privato di Amazon. Il repository è cni-metrics-helper.

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

    Potresti visualizzate le seguenti varianti per la posizione dell'immagine:

    • Solo repository-name:tag. In questo caso, di solito docker.io è il registro, ma non è specificato poiché Kubernetes per impostazione predefinita, lo aggiunge al nome di un repository se non viene specificato alcun registro.

    • repository-name/repository-namespace/repository:tag. Lo spazio dei nomi del repository è facoltativo, ma talvolta viene specificato dal proprietario del repository per la classificazione delle immagini. Ad esempio, tutte le EC2immagini Amazon nella Amazon ECR Public Gallery utilizzano lo aws-ec2 spazio dei nomi.

    Prima di installare un'immagine con Helm, visualizza il file values.yaml Helm per determinare la posizione dell'immagine. Ad esempio, il values.yaml file per Amazon VPC CNI plugin for Kubernetes metrics helper include le seguenti righe.

    image: region: us-west-2 tag: v1.12.6 account: "602401143452" domain: "amazonaws.com"
  3. Estrai l'immagine del container specificata nel file manifesto.

    1. Se stai estraendo da un registro pubblico, come Amazon ECR Public Gallery, puoi passare al passaggio secondario successivo, poiché l'autenticazione non è richiesta. In questo esempio, ti autentichi in un registro ECR privato Amazon che contiene il repository per l'immagine di supporto delle CNI metriche. Amazon EKS conserva l'immagine in ogni registro elencato inVisualizza i registri delle immagini dei container Amazon per i componenti aggiuntivi Amazon EKS. Puoi eseguire l'autenticazione a uno qualsiasi dei registri sostituendo 602401143452 e region-code con le informazioni di un registro differente. Esiste un registro separato per ogni registro in Regione AWS cui Amazon EKS è supportato.

      aws ecr get-login-password --region region-code | docker login --username AWS --password-stdin 602401143452.dkr.ecr.region-code.amazonaws.com
    2. Estrai l'immagine. In questo esempio, esegui l'estrazione dal registro a cui ti sei autenticato nel passaggio secondario precedente. Sostituisci 602401143452 e region-code con le informazioni fornite nel passaggio secondario precedente.

      docker pull 602401143452.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
  4. Tagga l'immagine che hai estratto con il registro, il repository e il tag. L'esempio seguente presuppone che tu abbia estratto l'immagine dal file manifest e che tu voglia inviarla al repository ECR privato di Amazon che hai creato nel primo passaggio. Sostituisci 111122223333 con l'ID del tuo account. Sostituiscilo region-code con Regione AWS quello in cui hai creato il tuo repository ECR privato Amazon.

    docker tag cni-metrics-helper:v1.12.6 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
  5. Esegui l'autenticazione al tuo registro. In questo esempio, ti autentichi nel registro ECR privato di Amazon che hai creato nel primo passaggio. Per ulteriori informazioni, consulta la sezione Autenticazione del registro nella Guida per l'utente di 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. Invia l'immagine al tuo repository. In questo esempio, invii l'immagine al repository ECR privato di Amazon che hai creato nel primo passaggio. Per ulteriori informazioni, consulta Pushing a Docker immagine nella Amazon Elastic Container Registry User Guide.

    docker push 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
  7. Aggiorna il file manifesto utilizzato per determinare l'immagine in un passaggio precedente con il registry/repository:tag per l'immagine che hai inviato. Se stai eseguendo l'installazione con un grafico Helm, spesso hai la possibilità di specificare il registry/repository:tag. Quando installi il grafico, specifica il registry/repository:tag dell'immagine che hai inviato al repository.