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
Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri pada halaman detail kluster, pilih .
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.
CatatangRPC 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.
Di halaman Services, temukan nama domain untuk Layanan
helloworld-godi kolom Default Domain dan alamat IP gerbang di kolom Gateway.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
Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri pada halaman detail kluster, pilih .
Buat revisi.
Di tab Service Management, klik Details di kolom Actions untuk layanan target.
Klik Create Revision. Di halaman Basic Information, klik Advanced Settings. Atur variabel lingkungan untuk revisi baru menjadi
TARGET=Knativedan klik Next.
Di wizard Traffic Splitting Settings, atur Traffic Percentage untuk revisi terbaru menjadi 0 dan klik Create.
CatatanJumlah total persentase trafik untuk semua revisi harus 100.
Setelah membuat layanan, pilih tab Services untuk melihat detail versi layanan baru.
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.
Ubah rasio trafik untuk melakukan rilis bertahap.
Di halaman Service Management, klik Details di kolom Actions untuk layanan target.
Klik Pisahkan Trafik. Di kotak dialog Split Traffic, atur Traffic Ratio menjadi 50% untuk versi baru dan lama, lalu klik OK.
Setelah Anda mengatur Traffic Percentage layanan, klik tab Service Management untuk melihat detail versi layanan baru dan lama.
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.CatatanPerintah ini berjalan secara permanen hingga Anda menghentikannya secara manual. Anda dapat menekan
Ctrl+Cuntuk 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.