Menyebarkan ECS layanan Amazon dengan mengganti tugas - Amazon Elastic Container Service

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

Menyebarkan ECS layanan Amazon dengan mengganti tugas

Saat Anda membuat layanan yang menggunakan tipe penerapan rolling update (ECS), penjadwal ECS layanan Amazon menggantikan tugas yang sedang berjalan dengan tugas baru. Jumlah tugas yang ECS ditambahkan atau dihapus Amazon dari layanan selama pembaruan bergulir dikendalikan oleh konfigurasi penyebaran layanan.

Amazon ECS menggunakan parameter berikut untuk menentukan jumlah tugas:

  • minimumHealthyPercent mewakili batas bawah pada jumlah tugas yang seharusnya berjalan untuk layanan selama deployment atau saat instans kontainer dikosongkan, sebagai persentase dari jumlah tugas yang diinginkan untuk layanan. Nilai ini dibulatkan ke atas. Sebagai contoh, jika persentase minimum yang sehat adalah 50 dan jumlah tugas yang diinginkan adalah empat, maka penjadwal dapat menghentikan dua tugas yang sudah ada sebelum memulai dua tugas baru. Demikian juga, jika persentase minimum yang sehat adalah 75% dan jumlah tugas yang diinginkan adalah dua, maka penjadwal tidak dapat menghentikan tugas apa pun karena nilai yang dihasilkan juga dua.

    Jika tugas menjadi tidak sehat, penjadwal ECS layanan Amazon akan memulai tugas penggantian terlebih dahulu dan mempertahankan minimumHealthyPercent tugas sampai tugas penggantian menjadi sehat. Saat tugas pengganti diluncurkan dan menjadi sehat, tugas-tugas yang tidak sehat secara bertahap akan dihentikan.

  • maximumPercent mewakili batas atas jumlah tugas yang harus berjalan untuk layanan selama deployment atau saat instans kontainer dikosongkan, sebagai persentase dari jumlah tugas yang diinginkan untuk layanan. Nilai ini dibulatkan ke bawah. Misalnya jika persentase maksimum adalah 200 dan jumlah tugas yang diinginkan adalah empat maka penjadwal dapat memulai empat tugas baru sebelum menghentikan empat tugas yang ada. Demikian juga, jika persentase maksimum adalah 125 dan jumlah tugas yang diinginkan adalah tiga, maka penjadwal tidak dapat memulai tugas apa pun karena nilai yang dihasilkan juga tiga.

penting

Saat menetapkan persen sehat minimum atau persen maksimum, Anda harus memastikan bahwa penjadwal dapat menghentikan atau memulai setidaknya satu tugas saat penerapan dimulai. Jika layanan Anda memiliki deployment yang macet akibat konfigurasi deployment yang tidak valid, maka pesan kejadian layanan akan dikirimkan. Untuk informasi selengkapnya, lihat service (service-name) tidak dapat menghentikan atau memulai tugas selama penerapan karena konfigurasi penerapan layanan. Perbarui maximumPercent nilai minimumHealthyPercent atau dan coba lagi..

Penerapan bergulir memiliki 2 metode yang menyediakan cara untuk mengidentifikasi dengan cepat kapan penerapan layanan gagal:

Metode ini dapat digunakan secara terpisah atau bersama-sama. Ketika kedua metode digunakan, penerapan disetel ke gagal segera setelah kriteria kegagalan untuk salah satu metode kegagalan terpenuhi.

Gunakan panduan berikut untuk membantu menentukan metode mana yang akan digunakan:

  • Pemutus sirkuit - Gunakan metode ini saat Anda ingin menghentikan penerapan saat tugas tidak dapat dimulai.

  • CloudWatch alarm - Gunakan metode ini ketika Anda ingin menghentikan penyebaran berdasarkan metrik aplikasi.

Kedua metode mendukung pengguliran kembali ke revisi layanan sebelumnya.

Resolusi gambar kontainer

Secara default, Amazon ECS menyelesaikan tag gambar kontainer yang ditentukan dalam definisi tugas ke intisari gambar kontainer. Jika Anda membuat layanan yang menjalankan dan mempertahankan satu tugas, tugas tersebut akan digunakan untuk membuat intisari gambar untuk kontainer dalam tugas tersebut. Jika Anda membuat layanan yang menjalankan dan memelihara beberapa tugas, tugas pertama yang dimulai oleh penjadwal layanan selama penerapan akan digunakan untuk membuat intisari gambar untuk kontainer dalam tugas.

Jika tiga atau lebih upaya untuk membuat intisari gambar kontainer gagal, penerapan berlanjut tanpa resolusi intisari gambar. Jika pemutus sirkuit penyebaran diaktifkan, penerapan juga gagal dan diputar kembali.

Setelah intisari gambar kontainer dibuat, Amazon ECS menggunakan intisari untuk memulai tugas lain yang diinginkan, dan untuk pembaruan layanan di masa mendatang. Ini mengarah ke semua tugas dalam layanan yang selalu menjalankan gambar kontainer yang identik, menghasilkan konsistensi versi untuk perangkat lunak Anda.

Anda dapat mengonfigurasi perilaku ini untuk setiap kontainer dalam tugas Anda dengan menggunakan versionConsistency parameter dalam definisi penampung. Untuk informasi selengkapnya, lihat versionConsistency.

catatan
  • Versi Amazon ECS Agent lebih rendah dari 1.31.0 tidak mendukung resolusi intisari gambar. Versi agen 1.31.0 untuk 1.69.0 mendukung resolusi intisari gambar hanya untuk gambar yang didorong ke ECR repositori Amazon. Versi agen 1.70.0 atau yang lebih tinggi mendukung resolusi intisari gambar untuk semua gambar.

  • Versi platform Fargate Linux minimum untuk resolusi intisari gambar adalah. 1.3.0 Versi platform Fargate Windows minimum untuk resolusi intisari gambar adalah. 1.0.0

  • Amazon ECS tidak menangkap intisari kontainer sespan yang dikelola oleh AmazonECS, seperti agen GuardDuty keamanan Amazon atau proxy Service Connect.

  • Untuk mengurangi potensi latensi yang terkait dengan resolusi gambar kontainer dalam layanan dengan beberapa tugas, jalankan versi ECS agen Amazon 1.83.0 atau yang lebih tinggi pada instance EC2 container. Untuk menghindari potensi latensi, tentukan intisari gambar kontainer dalam definisi tugas Anda.

  • Jika Anda membuat layanan dengan jumlah tugas nol yang diinginkan, Amazon tidak ECS dapat membuat intisari penampung hingga Anda memicu penerapan layanan lain dengan jumlah tugas yang diinginkan lebih besar dari nol.

  • Untuk membuat intisari gambar yang diperbarui, Anda dapat memaksa penerapan baru. Intisari yang diperbarui akan digunakan untuk memulai tugas baru dan tidak akan memengaruhi tugas yang sudah berjalan. Untuk informasi selengkapnya tentang pemaksaan penerapan baru, lihat forceNewDeploymentdi referensi Amazon ECS API.