All Products
Search
Document Center

Container Compute Service:Lakukan rilis canary untuk layanan berdasarkan pemisahan trafik di Knative

Last Updated:Nov 09, 2025

Knative mendistribusikan trafik di antara revisi yang berbeda. Anda dapat mengatur persentase trafik untuk setiap revisi di Konsol. Kemudian, terus sesuaikan persentase trafik dan pantau layanan hingga 100% dari trafik diarahkan ke versi baru, menyelesaikan rilis canary.

Prasyarat

Knative telah diterapkan di kluster ACS. Untuk informasi lebih lanjut, lihat Terapkan Knative.

Langkah 1: Buat Layanan Knative

  1. Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri pada halaman detail kluster, pilih Applications > Knative.

  3. Di halaman Knative, pada tab Service Management, atur Namespace ke default dan klik Create Service. Pada halaman konfigurasi, buat layanan bernama helloworld-go dan klik Create.

    Tabel berikut menjelaskan parameter utama. Untuk informasi lebih lanjut tentang parameter, lihat Gunakan Knative untuk menerapkan aplikasi tanpa server.

    Parameter

    Deskripsi

    Namespace

    Pilih namespace tempat Layanan ini berada.

    Service Name

    Masukkan nama untuk Layanan. Dalam contoh ini, helloworld-go digunakan.

    Image Name

    Klik Select Image. Di kotak dialog yang muncul, pilih citra dan klik OK. Anda juga dapat memasukkan alamat registri pribadi registry. Alamat tersebut harus dalam format domainname/namespace/imagename:tag. Contoh ini menggunakan registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go.

    Access Protocol

    HTTP dan gRPC didukung.

    Catatan

    gRPC dikembangkan berdasarkan standar protokol HTTP/2 dan protokol serialisasi Protocol Buffers (Protobuf). Ini mendukung banyak bahasa pemrograman. Dibandingkan dengan HTTP, HTTP/2 lebih ringkas dan efisien untuk mengirim dan menerima data.

    Container Port

    Port kontainer yang ingin Anda paparkan. Nomor port harus berada dalam rentang 1 hingga 65535.

    Jika kolom Status dari Layanan menampilkan Created, maka Layanan telah diterapkan.

  4. Di halaman Services, temukan nama domain untuk Layanan helloworld-go di kolom Default Domain dan alamat IP gerbang di kolom Gateway.

  5. Jalankan perintah berikut untuk mengakses Layanan helloworld-go:

    curl -H "Host: <nama domain default>" http://<IP gateway akses> # Ganti <nama domain default> dan <IP gateway akses> dengan nilai aktualnya.

    Output yang diharapkan:

    Hello World!

    Output tersebut menunjukkan bahwa Layanan telah dibuat dan dapat diakses.

Langkah 2: Buat revisi untuk menerapkan rilis canary

  1. Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri pada halaman detail kluster, pilih Applications > Knative.

  3. Buat revisi.

    1. Di tab Service Management, klik Details di kolom Actions untuk layanan target.

    2. Klik Create Revision. Di halaman Basic Information, klik Advanced Settings. Atur variabel lingkungan untuk revisi baru menjadi TARGET=Knative dan klik Next.

      11

    3. Di wizard Traffic Splitting Settings, atur Traffic Percentage untuk revisi terbaru menjadi 0 dan klik Create.

      Catatan

      Jumlah total persentase trafik untuk semua revisi harus 100.

    4. Setelah membuat layanan, pilih tab Services untuk melihat detail versi layanan baru.

    5. Anda dapat menjalankan perintah berikut untuk mengakses Layanan helloworld-go:

      curl -H "Host: <nama domain default>" http://<IP gateway akses> # Ganti <nama domain default> dan <IP gateway akses> dengan nilai aktualnya.

      Output yang diharapkan:

      Hello World!

      Output tersebut menunjukkan bahwa Layanan telah dibuat dan dapat diakses. Karena Traffic Percentage untuk versi baru adalah 0, permintaan ke layanan helloworld-go masih diarahkan ke versi lama.

  4. Ubah rasio trafik untuk melakukan rilis bertahap.

    1. Di halaman Service Management, klik Details di kolom Actions untuk layanan target.

    2. Klik Pisahkan Trafik. Di kotak dialog Split Traffic, atur Traffic Ratio menjadi 50% untuk versi baru dan lama, lalu klik OK.

    3. Setelah Anda mengatur Traffic Percentage layanan, klik tab Service Management untuk melihat detail versi layanan baru dan lama.

    4. Jalankan perintah berikut untuk mengakses Layanan.

      while true; do curl -H "Host: <nama domain default>" http://<IP gateway akses>; sleep 1; done # Ganti <nama domain default> dan <IP gateway akses> dengan nilai aktualnya.
      Catatan

      Perintah ini berjalan secara permanen hingga Anda menghentikannya secara manual. Anda dapat menekan Ctrl+C untuk menghentikan perintah.

      Output yang diharapkan:

      Hello World!
      Hello Knative!
      Hello World!
      Hello Knative!
      Hello World!
      Hello Knative!
      ...

      Karena Traffic Ratio diatur menjadi 50% untuk versi baru dan lama, trafik ke layanan helloworld-go dibagi secara merata di antara keduanya.

      Anda dapat melanjutkan rilis bertahap layanan dengan menyesuaikan Traffic Ratio. Rilis bertahap selesai ketika Traffic Ratio untuk versi baru mencapai 100%. Selama proses ini, jika Anda menemui masalah apa pun dengan versi baru, Anda dapat melakukan rollback kapan saja dengan menyesuaikan Traffic Ratio.

Referensi

Anda dapat menyesuaikan skala otomatis layanan Knative berdasarkan jumlah permintaan. Untuk informasi lebih lanjut, lihat Konfigurasikan penskalaan otomatis berdasarkan jumlah permintaan.