Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Agen kontainer Amazon ECS
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.
catatan
Pada instance kontainer Linux, container agen memasang direktori tingkat atas seperti/lib
,, dan. /lib64
/proc
Ini diperlukan untuk fitur dan fungsionalitas ECS seperti volume Amazon EBS, mode awsvpc
jaringan, Amazon ECS Service Connect, dan FireLens untuk 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.
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 memiliki dukungan yang tidak digunakan lagi untuk versi Docker yang lebih lama dari. 1.9.0
Siklus hidup
Saat agen penampung Amazon ECS mendaftarkan EC2 instans Amazon ke klaster Anda, EC2 instans Amazon melaporkan statusnya sebagai ACTIVE
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 penampung 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 instance penampung duplikat IDs untuk ID EC2 instans Amazon yang sama, Anda dapat membatalkan pendaftaran duplikat yang terdaftar dengan status koneksi agen ACTIVE
dengan aman.) FALSE
Masalah ini 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 EC2 Auto Scaling Amazon 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:
-
Kode sumber untuk
ecs-init
aplikasi dan skrip dan konfigurasi untuk pengemasan agen sekarang menjadi bagian dari repositori agen. Untuk versiecs-init
dan kemasan yang lebih lama, lihat Amazon ecs-initchangelog di GitHub -
Catatan rilis Docker Engine
dalam dokumentasi Docker -
Dokumentasi Driver NVIDIA
dalam dokumentasi NVIDIA
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.
pada instans Linux dan di timestamp
C:\ProgramData\Amazon\ECS\log\ecs-agent.log.
pada instans Windows.timestamp
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 melalui
ecs-init
, yang merupakan metode default saat menggunakan AMI yang dioptimalkan Amazon ECS, jalur dalam kontainer adalah/log
, danecs-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 eksplisitECS_LOG_DRIVER
disetel ke nilai yang tidak kosong; jika tidak, nilai yang sama denganECS_LOGLEVEL
Nilai default pada Windows:
none
, if secara eksplisitECS_LOG_DRIVER
diatur ke nilai yang tidak kosong; jika tidak nilai yang sama denganECS_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
,logentries
syslog
,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"