Knative mengelola distribusi lalu lintas di antara berbagai Revisi. Anda dapat menggunakan Konsol untuk menentukan persentase lalu lintas untuk setiap Revisi dan menyesuaikannya berdasarkan pengamatan hingga 100% lalu lintas Layanan diarahkan ke versi baru. Proses ini menyelesaikan rilis bertahap.
Prasyarat
Langkah 1: Buat layanan Knative
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih .
Pada tab Service Management di halaman Knative, atur Namespace menjadi default. Klik Create Service. Lalu, klik Create untuk menerapkan Layanan bernama helloworld-go.
Tabel berikut menjelaskan item konfigurasi utama. Untuk informasi selengkapnya tentang item konfigurasi, lihat Deploy a Knative service.
Item Konfigurasi
Deskripsi
Service Name
Nama kustom layanan. Dalam contoh ini, nama layanan adalah helloworld-go.
Image Name
Anda dapat mengklik Select Image. Pada kotak dialog yang muncul, pilih citra dan versi yang diperlukan, lalu klik OK.
Anda juga dapat memasukkan registry privat. Formatnya adalah domainname/namespace/imagename:tag. Misalnya, registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56.
Access Protocol
HTTP dan gRPC didukung.
CatatangRPC dikembangkan berdasarkan standar protokol HTTP/2 dan protokol serialisasi Protocol Buffers (protobuf), serta mendukung berbagai bahasa pemrograman. Dibandingkan dengan HTTP, HTTP/2 lebih ringkas dan efisien dalam mengirim dan menerima data.
Container Port
Port kontainer yang ingin Anda ekspos. Nomor port harus berada dalam rentang 1 hingga 65535.
Jika kolom Status untuk layanan target menampilkan Success, layanan telah diterapkan.
Pada 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 gerbang akses> # Ganti <nama domain default> dan <IP gerbang akses> dengan nilai aktualnya.Output yang diharapkan:
Hello World!Output ini menunjukkan bahwa Layanan telah dibuat dan dapat diakses.
Langkah 2: Lakukan rilis bertahap dengan membuat revisi
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih .
Buat revisi.
Pada tab Service Management, klik Details di kolom Actions untuk layanan target.
Klik Create Revision. Pada halaman Basic Information, klik Advanced Settings. Atur variabel lingkungan untuk revisi baru menjadi
TARGET=Knativedan klik Next.
Pada wizard Traffic Splitting Settings, atur Traffic Percentage untuk revisi terbaru menjadi 0 dan klik Create.
CatatanJumlah persentase lalu lintas 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 gerbang akses> # Ganti <nama domain default> dan <IP gerbang akses> dengan nilai aktualnya.Output yang diharapkan:
Hello World!Output ini 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 lalu lintas untuk melakukan rilis bertahap.
Pada halaman Service Management, klik Details di kolom Actions untuk layanan target.
Klik Split Traffic. Pada kotak dialog Split Traffic, atur Traffic Ratio menjadi 50% untuk versi baru dan lama, lalu klik OK.
Setelah 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 gerbang akses>; sleep 1; done # Ganti <nama domain default> dan <IP gerbang akses> dengan nilai aktualnya.CatatanPerintah ini berjalan terus-menerus 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, lalu lintas ke layanan helloworld-go dibagi rata 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 mengalami masalah pada versi baru, Anda dapat melakukan rollback kapan saja dengan menyesuaikan Traffic Ratio.
Referensi
Anda dapat mengimplementasikan penskalaan otomatis untuk Layanan Knative berdasarkan jumlah permintaan lalu lintas. Untuk informasi selengkapnya, lihat Implement auto scaling for a service based on the number of traffic requests.