Memperbarui agen ECS penampung Amazon secara manual (untuk non-Amazon ECS AMIs -Optimized) - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memperbarui agen ECS penampung Amazon secara manual (untuk non-Amazon ECS AMIs -Optimized)

Terkadang, Anda mungkin perlu memperbarui agen ECS kontainer Amazon untuk mengambil perbaikan bug dan fitur baru. Memperbarui agen ECS kontainer Amazon tidak mengganggu tugas atau layanan yang berjalan pada instans kontainer.

catatan

Pembaruan agen tidak berlaku pada instans kontainer Windows. Kami menyarankan Anda agar meluncurkan instans kontainer baru untuk memperbarui versi agen di klaster Windows Anda.

  1. Masuk ke instans kontainer Anda melaluiSSH.

  2. Lakukan pemeriksaan untuk melihat apakah agen Anda menggunakan variabel lingkungan ECS_DATADIR untuk menyimpan statusnya.

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

    Output:

    "ECS_DATADIR=/data",
    penting

    Jika perintah sebelumnya tidak mengembalikan variabel lingkungan ECS_DATADIR, Anda harus menghentikan tugas apa pun yang berjalan pada instans kontainer ini sebelum memperbarui agen Anda. Agen yang lebih baru dengan variabel lingkungan ECS_DATADIR menyimpan statusnya dan Anda dapat memperbaruinya saat tugas sedang berjalan tanpa masalah.

  3. Hentikan agen ECS kontainer Amazon.

    ubuntu:~$ docker stop ecs-agent
  4. Hapus kontainer agen.

    ubuntu:~$ docker rm ecs-agent
  5. Pastikan /etc/ecs direktori dan file konfigurasi agen ECS penampung Amazon ada di/etc/ecs/ecs.config.

    ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
  6. Edit file /etc/ecs/ecs.config dan pastikan bahwa file berisi setidaknya deklarasi variabel berikut. Jika Anda tidak ingin instans kontainer Anda untuk terdaftar dengan klaster default, tentukan nama klaster Anda sebagai nilai untuk 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

    Untuk informasi selengkapnya tentang opsi waktu aktif agen ini, lihat Konfigurasi agen ECS kontainer Amazon.

    catatan

    Anda secara opsional dapat menyimpan variabel lingkungan agen Anda di Amazon S3 (yang dapat diunduh ke instans kontainer Anda pada saat peluncuran menggunakan data pengguna EC2 Amazon). Hal ini dianjurkan untuk informasi sensitif seperti kredensial autentikasi untuk repositori privat. Untuk informasi selengkapnya, silakan lihat Menyimpan konfigurasi instans ECS penampung Amazon di Amazon S3 dan Menggunakan gambar AWS non-kontainer di Amazon ECS.

  7. Ambil citra agen ECS kontainer Amazon terbaru dari 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. Jalankan agen ECS kontainer Amazon terbaru pada instans kontainer Anda.

    catatan

    Gunakan kebijakan mulai ulang Docker atau manajer proses (seperti upstart atau systemd) untuk memperlakukan agen kontainer sebagai suatu layanan atau daemon dan pastikan mulai ulang dilakukan setelah keluar. Amazon ECS -optimized AMI menggunakan ecs-init RPM untuk tujuan ini, dan Anda dapat melihat kode sumber untuk ini RPM di GitHub.

    Contoh run command agen berikut dipecah menjadi baris terpisah agar setiap opsi dapat ditunjukkan. Untuk informasi selengkapnya tentang opsi waktu aktif agen ini, lihat Konfigurasi agen ECS kontainer Amazon.

    penting

    Sistem operasi dengan SELinux diaktifkan memerlukan --privileged opsi dalam docker run perintah Anda. Selain itu, untuk instance kontainer yang SELinux diaktifkan, kami menyarankan Anda menambahkan :Z opsi ke pemasangan /log dan /data volume. Namun, pemasangan host untuk volume ini harus ada sebelum Anda menjalankan perintah atau Anda menerima kesalahan no such file or directory. Lakukan tindakan berikut jika Anda mengalami kesulitan saat menjalankan ECS agen Amazon pada instans kontainer SELinux yang diaktifkan:

    • Buat titik-titik pemasangan volume host pada instans kontainer Anda.

      ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
    • Tambahkan opsi --privileged pada perintah docker run di bawah ini.

    • Tambahkan opsi :Z pada pemasangan volume kontainer /log dan /data (misalnya, --volume=/var/log/ecs/:/log:Z) pada perintah docker run di bawah ini.

    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
    catatan

    Jika Anda menerima pesan Error response from daemon: Cannot start container, Anda dapat menghapus kontainer yang gagal dengan perintah sudo docker rm ecs-agent dan coba jalankan agen kembali.