Agen kontainer Amazon ECS Linux - Amazon Elastic Container Service

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

Agen kontainer Amazon ECS Linux

ECSAgen Amazon adalah proses yang berjalan pada setiap instance container yang terdaftar di klaster Anda. Ini memfasilitasi komunikasi antara instans kontainer Anda dan AmazonECS.

Setiap versi agen ECS penampung Amazon mendukung set fitur yang berbeda dan menyediakan perbaikan bug dari versi sebelumnya. Jika memungkinkan, kami selalu merekomendasikan menggunakan versi terbaru dari agen ECS kontainer Amazon. Untuk memperbarui agen kontainer ke versi terbaru, lihat Memperbarui agen ECS penampung Amazon.

Untuk melihat fitur dan penyempurnaan mana yang disertakan dengan setiap rilis agen, lihat https://github.com/aws/ amazon-ecs-agent /releases.

penting

Versi Docker minimum untuk metrik yang andal adalah versi Docker v20.10.13 dan yang lebih baru, yang disertakan dalam Amazon ECS -optimized dan yang lebih baru. AMI 20220607

Versi ECS agen Amazon 1.20.0 dan yang lebih baru telah menghentikan dukungan untuk versi Docker yang lebih lama dari. 1.9.0

Siklus hidup

Saat agen ECS penampung Amazon mendaftarkan EC2 instans Amazon ke klaster Anda, EC2 instans Amazon melaporkan statusnya sebagai ACTIVE dan status koneksi agennya sebagaiTRUE. Instance container ini dapat menerima permintaan tugas run.

Jika Anda menghentikan (tidak menghentikan) instance kontainer, statusnya tetap adaACTIVE, tetapi status koneksi agen bertransisi ke FALSE dalam beberapa menit. Tugas yang berjalan pada instans kontainer berhenti. Jika Anda memulai instance penampung lagi, agen penampung akan terhubung kembali dengan ECS layanan Amazon, dan Anda dapat menjalankan tugas pada instance lagi.

penting

Jika Anda menghentikan dan memulai instance container, atau me-reboot instance tersebut, beberapa versi lama dari agen ECS penampung Amazon akan mendaftarkan instance tersebut lagi tanpa membatalkan pendaftaran ID instance container asli. Dalam hal ini, Amazon ECS mencantumkan lebih banyak instance container di cluster Anda daripada yang sebenarnya Anda miliki. (Jika Anda memiliki instance penampung duplikat IDs untuk ID EC2 instans Amazon yang sama, Anda dapat dengan aman membatalkan pendaftaran duplikat yang terdaftar sebagai ACTIVE dengan status koneksi agen.) FALSE Masalah ini telah diperbaiki dalam versi agen ECS penampung Amazon saat ini. Untuk informasi selengkapnya tentang memperbarui versi CNI Anda, lihat Memperbarui agen ECS penampung Amazon.

Jika Anda mengubah status instans kontainer ke DRAINING, maka tugas baru tidak ditempatkan pada instans kontainer. Tugas layanan yang berjalan pada instans kontainer akan dihapus jika memungkinkan, agar Anda dapat melakukan pembaruan sistem. Untuk informasi selengkapnya, lihat Menguras instance ECS kontainer Amazon.

Jika Anda membatalkan pendaftaran atau mengakhiri instans kontainer, maka status instans kontainer seketika berubah menjadi INACTIVE, dan instans kontainer tidak lagi dilaporkan ketika Anda mencantumkan instans kontainer Anda. Namun, Anda tetap dapat menjelaskan instans kontainer selama satu jam setelah penghentian. Setelah satu jam, deskripsi instans tidak lagi tersedia.

penting

Anda dapat menguras instance secara manual, atau membuat hook siklus hidup grup Auto Scaling untuk menyetel status instance. DRAINING Lihat kait siklus hidup EC2Auto Scaling Amazon untuk informasi selengkapnya tentang kait siklus hidup Auto Scaling.

Amazon ECS -dioptimalkan AMI

Varian Linux dari Amazon yang ECS dioptimalkan AMI menggunakan Amazon Linux 2 AMI sebagai basis mereka. AMINama sumber Amazon Linux 2 untuk setiap varian dapat diambil dengan menanyakan Systems Manager Parameter Store. API Untuk informasi selengkapnya, lihat Mengambil metadata Linux yang ECS dioptimalkan Amazon AMI. Saat Anda meluncurkan instans kontainer kami dari Amazon Linux 2 yang ECS dioptimalkan Amazon terbaru, AMI Anda menerima versi agen penampung saat ini. Untuk meluncurkan instance container dengan Amazon Linux 2 terbaru ECS yang dioptimalkan AmazonAMI, lihatMeluncurkan instans penampung Amazon ECS Linux.

Informasi tambahan

Halaman-halaman berikut memberikan informasi tambahan tentang perubahan:

Parameter konfigurasi log agen ECS penampung Amazon

Agen ECS kontainer Amazon menyimpan log pada instance kontainer Anda.

Untuk agen kontainer versi 1.36.0 dan yang lebih baru, secara default log terletak di /var/log/ecs/ecs-agent.log pada instans Linux dan di C:\ProgramData\Amazon\ECS\log\ecs-agent.log pada instans Windows.

Untuk agen kontainer versi 1.35.0 dan sebelumnya, secara default log terletak di /var/log/ecs/ecs-agent.log.timestamp pada instans Linux dan di C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp pada instans Windows.

Secara default, log agen diputar per jam dengan maksimum 24 log yang disimpan.

Berikut ini adalah variabel konfigurasi agen kontainer yang dapat digunakan untuk mengubah perilaku pencatatan agen default. Untuk informasi selengkapnya, lihat Konfigurasi agen ECS kontainer Amazon.

ECS_LOGFILE

Nilai contoh: /ecs-agent.log

Nilai default pada Linux: Null

Nilai default pada Windows: Null

Lokasi di mana log agen harus ditulis. Jika Anda menjalankan agen melaluiecs-init, yang merupakan metode default saat menggunakan Amazon ECS -optimizedAMI, jalur dalam kontainer adalah/log, dan ecs-init memasangnya /var/log/ecs/ di host.

ECS_LOGLEVEL

Contoh nilai:crit,error,warn,info, debug

Nilai default pada Linux: info

Nilai default pada Windows: info

Tingkat detail untuk dicatat.

ECS_LOGLEVEL_ON_INSTANCE

Contoh nilai:none,crit,error,warn,info, debug

Nilai default di Linux:none, if secara eksplisit ECS_LOG_DRIVER disetel ke nilai yang tidak kosong; jika tidak, nilai yang sama dengan ECS_LOGLEVEL

Nilai default pada Windows:none, if secara eksplisit ECS_LOG_DRIVER diatur ke nilai yang tidak kosong; jika tidak, nilai yang sama dengan ECS_LOGLEVEL

Dapat digunakan untuk mengganti ECS_LOGLEVEL dan mengatur tingkat detail yang harus dicatat dalam file log on-instance, terpisah dari level yang dicatat di driver logging. Jika driver logging disetel secara eksplisit, log on-instance dimatikan secara default. Mereka dapat dihidupkan kembali dengan variabel ini.

ECS_LOG_DRIVER

Contoh nilai:awslogs,fluentd,gelf,json-file,journald, logentriessyslog, splunk

Nilai default pada Linux: json-file

Nilai default pada Windows: Tidak berlaku

Menentukan driver logging yang digunakan wadah agen.

ECS_LOG_ROLLOVER_TYPE

Contoh nilai:size, hourly

Nilai default pada Linux: hourly

Nilai default pada Windows: hourly

Menentukan apakah file log agen kontainer diputar setiap jam atau berdasarkan ukuran. Secara default, file log agen diputar setiap jam.

ECS_LOG_OUTPUT_FORMAT

Contoh nilai:logfmt, json

Nilai default pada Linux: logfmt

Nilai default pada Windows: logfmt

Menentukan format keluaran log. Ketika json format digunakan, setiap baris dalam log adalah JSON peta terstruktur.

ECS_LOG_MAX_FILE_SIZE_MB

Nilai contoh: 10

Nilai default pada Linux: 10

Nilai default pada Windows: 10

Ketika ECS_LOG_ROLLOVER_TYPE variabel diatur kesize, variabel ini menentukan ukuran maksimum (dalam MB) dari file log sebelum diputar. Jika jenis rollover diatur kehourly, maka variabel ini diabaikan.

ECS_LOG_MAX_ROLL_COUNT

Nilai contoh: 24

Nilai default pada Linux: 24

Nilai default pada Windows: 24

Menentukan jumlah file log yang diputar untuk disimpan. File log lama dihapus setelah batas ini tercapai.

Untuk agen kontainer versi 1.36.0 dan yang lebih baru, berikut ini adalah contoh berkas log ketika format logfmt digunakan.

level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go

Berikut ini adalah contoh file log ketika JSON format yang digunakan.

{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}

Untuk agen kontainer versi 1.35.0 dan sebelumnya, berikut adalah format berkas log.

2016-08-15T15:54:41Z [INFO] Starting Agent: Amazon ECS Agent - v1.12.0 (895f3c1) 2016-08-15T15:54:41Z [INFO] Loading configuration 2016-08-15T15:54:41Z [WARN] Invalid value for task cleanup duration, will be overridden to 3h0m0s, parsed value 0, minimum threshold 1m0s 2016-08-15T15:54:41Z [INFO] Checkpointing is enabled. Attempting to load state 2016-08-15T15:54:41Z [INFO] Loading state! module="statemanager" 2016-08-15T15:54:41Z [INFO] Detected Docker versions [1.17 1.18 1.19 1.20 1.21 1.22] 2016-08-15T15:54:41Z [INFO] Registering Instance with ECS 2016-08-15T15:54:41Z [INFO] Registered! module="api client"