Aggiornamento manuale dell'agente del ECS container di Amazon (per non ottimizzata per AmazonECS) AMIs - Amazon Elastic Container Service

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à.

Aggiornamento manuale dell'agente del ECS container di Amazon (per non ottimizzata per AmazonECS) AMIs

In alcuni casi, potrebbe essere necessario aggiornare l'agente del ECS container di Amazon per ottenere correzioni dei bug e nuove funzionalità. L'aggiornamento dell'agente del ECS container di Amazon non interrompe i processi o i servizi in esecuzione nell'istanza di container.

Nota

Gli aggiornamenti dell'agente non si applicano alle istanze di container di Windows. Consigliamo di avviare nuove istanze di container per aggiornare la versione dell'agente nei cluster Windows.

  1. Accedi all'istanza del contenitore tramiteSSH.

  2. Controlla se il tuo agente utilizza la variabile di ambiente ECS_DATADIR per salvare il suo stato.

    ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR

    Output:

    "ECS_DATADIR=/data",
    Importante

    Se il comando precedente non restituisce la variabile di ambiente ECS_DATADIR, è necessario arrestare qualsiasi attività in esecuzione in questa istanza di container prima di aggiornare l'agente. Gli agenti più recenti con la variabile di ambiente ECS_DATADIR salvano il proprio stato e puoi aggiornarli mentre le attività vengono eseguite senza problemi.

  3. Arresta l'agente del ECS container di Amazon.

    ubuntu:~$ docker stop ecs-agent
  4. Elimina l'agente del container.

    ubuntu:~$ docker rm ecs-agent
  5. Assicurati che la /etc/ecs directory e il file di configurazione di Amazon ECS Container Agent esistano in/etc/ecs/ecs.config.

    ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
  6. Modifica il file /etc/ecs/ecs.config e assicurati che contenga almeno le seguenti dichiarazioni di variabili. Se non vuoi che la tua istanza di container sia registrata con il cluster predefinito, specifica il nome del tuo cluster come il valore per ECS_CLUSTER.

    ECS_DATADIR=/data ECS_ENABLE_TASK_IAM_ROLE=true ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true ECS_LOGFILE=/log/ecs-agent.log ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"] ECS_LOGLEVEL=info ECS_CLUSTER=default

    Per ulteriori informazioni su queste e altre opzioni di runtime dell'agente, consulta Configurazione dell'agente Amazon ECS container Amazon.

    Nota

    Puoi facoltativamente archiviare le variabili di ambiente dell'agente in Amazon S3 (che possono essere scaricate nelle tue istanze di container all'avvio utilizzando i dati utente di EC2 Amazon). Ciò è consigliato per le informazioni sensibili, come le credenziali di autenticazione per i repository privati. Per ulteriori informazioni, consulta Archiviazione della configurazione di un'istanza di ECS container Amazon S3 e Utilizzo di immagini non AWS containerizzate in Amazon ECS.

  7. Estrai l'ultima immagine dell'agente del ECS container di Amazon Elastic Container Registry Public.

    ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest

    Output:

    Pulling repository amazon/amazon-ecs-agent a5a56a5e13dc: Download complete 511136ea3c5a: Download complete 9950b5d678a1: Download complete c48ddcf21b63: Download complete Status: Image is up to date for amazon/amazon-ecs-agent:latest
  8. Esegui l'agente del ECS container di Amazon più recente sulla tua istanza di container.

    Nota

    Utilizza le policy di riavvio di Docker o un gestore di processo (come upstart o systemd) per trattare l'agente del container come un servizio o un daemon e assicurarne il riavvio dopo l'uscita. Amazon ECS -optimized AMI utilizza a questo ecs-init RPM scopo e puoi visualizzarne il codice sorgente RPM su GitHub.

    Nell'esempio seguente, il comando di esecuzione dell'agente è suddiviso in righe separate per mostrare ciascuna opzione. Per ulteriori informazioni su queste e altre opzioni di runtime dell'agente, consulta Configurazione dell'agente Amazon ECS container Amazon.

    Importante

    I sistemi operativi con SELinux abilitato richiedono l'--privilegedopzione nel docker run comando. Inoltre, per le istanze SELinux di container abilitate, si consiglia di aggiungere l':Zopzione ai montaggi /log e /data volume. Tuttavia, i montaggi degli host per questi volumi devono esistere prima che tu esegua il comando o che riceva un errore no such file or directory. Esegui l'operazione seguente se riscontri difficoltà nell'esecuzione dell'ECSagente Amazon in un'istanza di container SELinux abilitata per la.

    • Crea i punti di montaggio dei volumi degli host sulla tua istanza di container.

      ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
    • Aggiungi l'opzione --privileged al comando docker run seguente.

    • Aggiungi l'opzione :Z ai montaggi dei volumi dei container /log e /data (ad esempio --volume=/var/log/ecs/:/log:Z) al comando docker run seguente.

    ubuntu:~$ sudo docker run --name ecs-agent \ --detach=true \ --restart=on-failure:10 \ --volume=/var/run:/var/run \ --volume=/var/log/ecs/:/log \ --volume=/var/lib/ecs/data:/data \ --volume=/etc/ecs:/etc/ecs \ --volume=/etc/ecs:/etc/ecs/pki \ --net=host \ --env-file=/etc/ecs/ecs.config \ amazon/amazon-ecs-agent:latest
    Nota

    Se ricevi un messaggio Error response from daemon: Cannot start container, puoi eliminare il container che presenta l'errore con il comando sudo docker rm ecs-agent e tentare di eseguire nuovamente l'agente.