View a markdown version of this page

Melakukan deployment layanan Amazon ECS 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.

Melakukan deployment layanan Amazon ECS dengan mengganti tugas

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

Amazon ECS menggunakan parameter berikut untuk menentukan jumlah tugas:

  • Ini minimumHealthyPercent mewakili batas bawah pada jumlah tugas yang harus berjalan dan sehat untuk layanan selama penerapan bergulir atau ketika instance kontainer terkuras, sebagai persen 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.

  • Ini maximumPercent mewakili batas atas jumlah tugas yang harus dijalankan untuk layanan selama penerapan bergulir atau saat instance kontainer terkuras, sebagai persen dari jumlah tugas yang diinginkan untuk layanan. Nilai ini dibulatkan ke bawah. Misalnya jika persentase maksimum 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.

Selama penerapan bergulir, ketika tugas menjadi tidak sehat, Amazon ECS menggantikannya untuk menjaga layanan Anda minimumHealthyPercent dan melindungi ketersediaan. Tugas yang tidak sehat diganti menggunakan revisi layanan yang sama. Ini memastikan bahwa penggantian tugas yang tidak sehat dalam revisi sumber tidak bergantung pada kegagalan tugas dalam revisi target. Ketika maximumPercent pengaturan memungkinkan, penjadwal meluncurkan tugas penggantian sebelum menghentikan tugas yang tidak sehat. Jika maximumPercent parameter membatasi penjadwal untuk memulai tugas pengganti terlebih dahulu, penjadwal menghentikan satu tugas yang tidak sehat pada satu waktu untuk membebaskan kapasitas sebelum meluncurkan tugas pengganti.

penting

Saat menetapkan persentase 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 layanan (Nama layanan) tidak dapat menghentikan atau memulai tugas selama penerapan karena konfigurasi penyebaran layanan. Perbarui nilai minimum HealthyPercent atau MaximumPercent dan coba lagi..

Penerapan bergulir memiliki 2 metode yang menyediakan cara untuk mengidentifikasi dengan cepat ketika penyebaran layanan gagal:

Metode dapat digunakan secara terpisah atau bersama-sama. Ketika kedua metode digunakan, penerapan diatur 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 ketika Anda ingin menghentikan penerapan ketika tugas tidak dapat dimulai.

  • CloudWatch alarm - Gunakan metode ini saat Anda ingin menghentikan penerapan berdasarkan metrik aplikasi.

Kedua metode mendukung pengembalian ke revisi layanan sebelumnya.

Penerjemahan image kontainer

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

Jika tiga atau lebih upaya untuk membuat cerna gambar kontainer gagal, penerapan berlanjut tanpa resolusi ringkasan gambar. Jika pemutus sirkuit penerapan diaktifkan, penerapan juga gagal dan dibatalkan.

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

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

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

  • Versi platform Fargate Linux minimum untuk resolusi ringkasan gambar adalah1.3.0. Versi platform Windows Fargate minimum untuk resolusi ringkasan gambar adalah1.0.0.

  • Amazon ECS tidak menangkap ringkasan kontainer sidecar yang dikelola oleh Amazon ECS, 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 agen Amazon ECS 1.83.0 atau yang lebih tinggi pada instans kontainer EC2. Untuk menghindari potensi latensi, tentukan ringkasan gambar kontainer dalam definisi tugas Anda.

  • Jika Anda membuat layanan dengan jumlah tugas yang diinginkan nol, Amazon ECS tidak dapat membuat ringkasan kontainer sampai Anda memicu penerapan layanan lain dengan jumlah tugas yang diinginkan lebih besar dari nol.

  • Untuk membuat ringkasan gambar yang diperbarui, Anda dapat memaksa penerapan baru. Intisari yang diperbarui akan digunakan untuk memulai tugas baru dan tidak akan mempengaruhi tugas yang sudah berjalan. Untuk informasi selengkapnya tentang memaksa penerapan baru, lihat force NewDeployment di referensi Amazon ECS API.

  • Saat menggunakan penyedia kapasitas EC2, jika kapasitas tidak mencukupi untuk memulai tugas selama penerapan awal, konsistensi versi perangkat lunak mungkin gagal. Untuk memastikan konsistensi versi dipertahankan bahkan ketika kapasitas terbatas, tetapkan secara eksplisit versionConsistency: "enabled" dalam konfigurasi wadah definisi tugas Anda daripada mengandalkan perilaku default. Hal ini menyebabkan Amazon ECS menunggu hingga kapasitas tersedia sebelum melanjutkan penerapan.