Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Definisi tugas daemon
Definisi tugas daemon adalah cetak biru untuk daemon Anda. Amazon ECS Managed Daemon menggunakan sumber daya definisi tugas daemon khusus, berbeda dari definisi tugas Amazon ECS standar. Anda mendaftarkan definisi tugas daemon untuk menentukan gambar kontainer, persyaratan sumber daya, dan konfigurasi untuk daemon Anda.
Membuat definisi tugas daemon
Anda dapat membuat definisi tugas daemon dengan menggunakan Konsol Manajemen AWS atau. AWS CLI
Menggunakan Konsol Manajemen AWS
-
Buka konsol Amazon ECS. Di navigasi kiri, pilih definisi tugas Daemon.
-
Pilih Buat definisi tugas daemon baru.
-
Untuk keluarga definisi tugas Daemon, masukkan nama unik. Nama dapat berisi hingga 255 karakter alfanumerik, tanda hubung, dan garis bawah.
-
(Opsional) Untuk peran Tugas, pilih peran IAM yang memberikan izin ke aplikasi yang berjalan di container Anda. Biarkan ini kosong jika kontainer Anda tidak memanggil AWS API.
-
(Opsional) Untuk peran eksekusi Tugas, pilih
ecsTaskExecutionRole. Amazon ECS memerlukan peran ini untuk menarik gambar kontainer dan menerbitkan log. -
(Opsional) Untuk ukuran Tugas, tentukan CPU dan memori yang akan dicadangkan untuk daemon Anda. Misalnya,
0.25 vCPUdan512 MBmemori. -
Konfigurasikan detail kontainer Anda:
-
Nama kontainer - Masukkan nama untuk wadah Anda. Nama dapat berisi hingga 255 karakter alfanumerik, tanda hubung, dan garis bawah.
-
Wadah penting - Pilih Ya. Setiap definisi tugas daemon membutuhkan setidaknya satu wadah penting. Jika wadah penting gagal, Amazon ECS menghentikan seluruh tugas.
-
URI Gambar - Masukkan URI image Docker. Anda dapat menelusuri gambar Amazon ECR atau menggunakan gambar publik dari Docker Hub atau pendaftar lainnya.
-
-
(Opsional) Konfigurasikan alokasi sumber daya, pemeriksaan kesehatan, variabel lingkungan, pengumpulan log, dan tag sesuai kebutuhan.
-
Tinjau konfigurasi Anda dan pilih Buat.
Menggunakan AWS CLI
Daftarkan definisi tugas daemon dengan membuat file JSON dan menggunakan perintah. register-daemon-task-definition
Berikut ini adalah contoh file JSON:
{ "family": "my-daemon-task", "containerDefinitions": [ { "name": "daemon-container", "image": "public.ecr.aws/docker/library/busybox:latest", "essential": true, "command": ["sh", "-c", "while true; do echo 'Daemon running'; sleep 30; done"], "memoryReservation": 512 } ] }
Jalankan perintah berikut untuk mendaftarkan definisi tugas daemon:
aws ecs register-daemon-task-definition --cli-input-json file://daemon-taskdef.json
Parameter definisi tugas daemon
Anda dapat menggunakan parameter berikut saat mendaftarkan definisi tugas daemon.
Parameter yang diperlukan
-
family- Nama keluarga definisi tugas. Ini mengelompokkan beberapa revisi dari definisi tugas daemon yang sama. -
containerDefinitions- Sebuah arrayDaemonContainerDefinitionobjek yang menggambarkan wadah dalam tugas daemon Anda.
Parameter opsional
-
cpu- Unit Task-level CPU sebagai string (misalnya,"256"). -
memory- Task-level memori di MiB sebagai string (misalnya,"512"). -
taskRoleArn- ARN dari peran IAM yang memberikan izin ke kontainer dalam tugas daemon Anda. -
executionRoleArn- ARN dari peran IAM yang digunakan agen penampung Amazon ECS untuk melakukan panggilan AWS API atas nama Anda (misalnya, menarik gambar dari Amazon ECR). -
volumes- Sebuah arrayDaemonVolumeobjek. Volume daemon hanya mendukung pengikat dudukan dengan dan.hostsourcePathDefinisi tugas Daemon tidak mendukung Amazon EBS, Amazon EFS, FSx for Windows File Server, volume Docker, atau penyimpanan sementara. -
tags- Array pasangan kunci-nilai untuk menandai definisi tugas daemon Anda. -
pidMode- Mengontrol mode namespace PID untuk daemon. -
ipcMode- Mengontrol mode namespace IPC untuk daemon.
Mode jaringan
Daemon menggunakan mode daemon_bridge jaringan khusus yang disetel Amazon ECS secara otomatis. Anda tidak dapat menentukan mode jaringan dalam definisi tugas daemon Anda. Semua daemon pada sebuah instance berbagi satu namespace jaringan dan dapat diakses secara lokal melalui alamat IP jembatan daemon statis (169.254.172.2untuk IPv4, atau untuk IPv6). fd00:ec2::172:2 Tugas aplikasi (non-daemon) dapat berkomunikasi dengan daemon di alamat ini tanpa konfigurasi jaringan tambahan.
Karena daemon berjalan di namespace jaringan terpisah dari tugas aplikasi, tugas non-daemon tidak perlu khawatir tentang konflik port dengan daemon. Namun, karena semua tugas daemon berbagi namespace yang sama, daemon pada instance yang sama tidak dapat mengikat ke port yang sama. Saat menerapkan beberapa daemon, pastikan setiap daemon menggunakan port unik.
Kemampuan istimewa
Di Instans Terkelola Amazon ECS, daemon mendukung kemampuan Linux istimewa untuk operasi tingkat sistem. Agen keamanan, alat pemantauan jaringan, dan agen observabilitas sering memerlukan akses tingkat kernel untuk berfungsi dengan benar.
Anda dapat memberikan kemampuan dengan dua cara:
Mode hak istimewa penuh memberikan semua kemampuan Linux ke wadah. Gunakan ini ketika agen Anda membutuhkan akses sistem yang luas:
{ "containerDefinitions": [{ "name": "security-daemon", "image": "my-security-agent:latest", "privileged": true }] }
Kemampuan individu hanya memberikan izin yang dibutuhkan daemon Anda, mengikuti prinsip hak istimewa paling sedikit. Gunakan linuxParameters.capabilities bidang untuk menambahkan kemampuan individu sepertiSYS_ADMIN,, NET_ADMINSYS_PTRACE,BPF, danPERFMON:
{ "containerDefinitions": [{ "name": "monitoring-daemon", "image": "my-monitoring-agent:latest", "linuxParameters": { "capabilities": { "add": ["NET_ADMIN", "SYS_PTRACE"] } } }] }
Berbagi namespace PID dan IPC
Di Instans Terkelola Amazon ECS, daemon mendukung berbagi namespace PID dan IPC untuk mengaktifkan kasus penggunaan seperti agen keamanan, alat pemantauan, dan daemon observabilitas yang memerlukan visibilitas ke dalam proses tugas aplikasi atau sumber daya IPC.
pidMode-
Tipe: String
Wajib: Tidak
Nilai yang valid:
none|sharedDefault:
noneMode namespace PID untuk daemon. Jika
noneditentukan atau tidak ada nilai yang diberikan, daemon berjalan dengan namespace PID-nya sendiri, diisolasi dari tugas lain. Jikasharedditentukan, daemon bergabung dengan namespace PID host, membuatnya dapat diakses oleh tugas non-daemon yang menggunakan atau daemon lain yang digunakan.pidMode: "host"pidMode: "shared" ipcMode-
Tipe: String
Wajib: Tidak
Nilai yang valid:
none|sharedDefault:
noneMode namespace IPC untuk daemon. Jika
noneditentukan atau tidak ada nilai yang diberikan, daemon berjalan dengan namespace IPC-nya sendiri, diisolasi dari tugas lain. Jikasharedditentukan, daemon bergabung dengan namespace IPC host, membuatnya dapat diakses oleh tugas non-daemon yang menggunakan atau daemon lain yang digunakan.ipcMode: "host"ipcMode: "shared"
Contoh berikut menunjukkan definisi tugas daemon dengan berbagi namespace PID dan IPC diaktifkan:
{ "family": "my-monitoring-daemon", "pidMode": "shared", "ipcMode": "shared", "containerDefinitions": [ { "name": "monitoring-agent", "image": "public.ecr.aws/my-company/monitoring-agent:latest", "essential": true } ] }
Untuk berbagi namespace PID dengan daemon yang telah pidMode disetel keshared, tugas non-daemon harus menentukan dalam definisi tugasnya. pidMode: "host" Hal ini memungkinkan wadah tugas untuk melihat proses daemon dan memungkinkan kasus penggunaan seperti pemantauan proses dan pengiriman sinyal.
Untuk berbagi namespace IPC dengan daemon yang telah ipcMode disetel keshared, tugas non-daemon harus menentukan dalam definisi tugasnya. ipcMode: "host" Hal ini memungkinkan wadah tugas untuk mengakses sumber daya IPC daemon seperti segmen memori bersama dan antrian pesan.
volume
Daemon Terkelola mendukung pemasangan pengikat menggunakan volume host dengan spesifikasi. sourcePath Hal ini memungkinkan kontainer daemon memasang direktori host untuk mengakses log, metrik, dan informasi sistem pada instans Amazon EC2 yang mendasarinya. Agen pengumpulan log, eksportir metrik, dan pemindai keamanan biasanya menggunakan ini untuk mendapatkan visibilitas ke data tingkat host.
Definisi tugas daemon mendukung spesifikasi volume host dengan. sourcePath Volume daemon bertahan selama siklus hidup instance container yang mendasarinya.
catatan
Volume Amazon EBS, volume Amazon EFS, volume FSx for Windows File Server, volume Docker, dan penyimpanan singkat tidak didukung dalam definisi tugas daemon.
catatan
Daemon tidak mendukung berbagi volume antara satu sama lain. Setiap daemon beroperasi dengan konfigurasi volume independennya sendiri.
Contoh berikut menunjukkan daemon pengumpul log dengan dudukan pengikat:
{ "containerDefinitions": [{ "name": "log-collector", "image": "fluent/fluentd:latest", "mountPoints": [{ "sourceVolume": "var-log", "containerPath": "/var/log" }] }], "volumes": [{ "name": "var-log", "host": { "sourcePath": "/var/log" } }] }
Parameter kontainer yang didukung
Definisi wadah daemon mendukung parameter berikut:
-
image(wajib) - URI gambar kontainer -
name(wajib) - Nama kontainer -
cpu- Unit CPU disediakan untuk wadah -
memory/memoryReservation- Batas memori keras dan lunak -
essential- Apakah wadah itu penting (default: true) -
command/entryPoint- Ganti perintah kontainer atau titik masuk -
environment/environmentFiles/secrets- Konfigurasi lingkungan -
privileged- Jalankan wadah dalam mode istimewa -
user- Pengguna untuk menjalankan wadah sebagai -
workingDirectory- Direktori kerja di dalam wadah -
readonlyRootFilesystem- Pasang sistem file root sebagai hanya-baca -
mountPoints- Titik pemasangan volume (mengikat mount dengan host dan SourcePath saja) -
logConfiguration- Konfigurasi logging (mendukung awslogs, splunk, awsfirelens) -
healthCheck- Konfigurasi pemeriksaan kesehatan kontainer -
dependsOn- Dependensi startup kontainer -
ulimits- Batas sumber daya -
systemControls- Parameter kernel -
linuxParameters.capabilities- Kemampuan Linux untuk menambah atau menjatuhkan -
linuxParameters.initProcessEnabled- Jalankan proses init dalam wadah -
repositoryCredentials- Kredensi untuk pendaftar pribadi -
restartPolicy- Kebijakan restart kontainer