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

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

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

Untuk melihat fitur dan penyempurnaan 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 AMI yang dioptimalkan Amazon ECS dan yang lebih baru. 20220607

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

Siklus hidup

Saat agen penampung Amazon ECS mendaftarkan instans Amazon EC2 ke klaster Anda, instans Amazon EC2 melaporkan statusnya ACTIVE sebagai dan status koneksi agennya sebagai. TRUE 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 kontainer lagi, agen penampung akan terhubung kembali dengan layanan Amazon ECS, 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 penampung Amazon ECS 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 ID instans penampung duplikat untuk ID instans Amazon EC2 yang sama, Anda dapat membatalkan pendaftaran duplikat yang terdaftar ACTIVE dengan status koneksi agen dengan aman.) FALSE Masalah ini telah diperbaiki dalam versi agen kontainer Amazon ECS saat ini. Untuk informasi selengkapnya tentang memperbarui versi CNI Anda, lihat Memperbarui agen kontainer Amazon ECS.

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 instans kontainer Amazon ECS.

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 Auto Scaling Amazon EC2 untuk informasi selengkapnya tentang kait siklus hidup Auto Scaling.

AMI Amazon ECS yang dioptimalkan

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

Informasi tambahan

Halaman-halaman berikut memberikan informasi tambahan tentang perubahan:

Parameter konfigurasi log agen kontainer Amazon ECS

Agen kontainer Amazon ECS menyimpan log pada instans 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 kontainer Amazon ECS.

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 AMI yang dioptimalkan Amazon ECS, jalur dalam kontainer adalah/log, dan ecs-init memasangnya di host. /var/log/ecs/

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 peta JSON 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 contoh berkas log ketika format JSON 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"