Dengan penayangan Knative, Anda dapat menentukan revisi mana yang akan menerima traffic dan menentukan persentase traffic yang diterima oleh revisi. Dengan fitur ini, Anda dapat melakukan rollback ke revisi sebelumnya, meluncurkan revisi secara bertahap (juga dikenal sebagai deployment blue-green), dan membagi traffic antara beberapa revisi. Halaman ini menjelaskan cara menggunakan fitur ini untuk mengelola traffic ke revisi penayangan Knative Anda.
Melakukan roll back ke revisi sebelumnya
Untuk melakukan roll back ke revisi sebelumnya:
Konsol
Buka penayangan Knative di konsol Google Cloud:
Temukan layanan dalam daftar layanan, lalu klik pada layanan tersebut.
Klik tab Revisi untuk menampilkan daftar revisi terbaru untuk layanan tersebut.
Dalam daftar revisi, klik ikon elipsis di sebelah kanan revisi yang sedang Anda roll back:
Klik Kelola Traffic untuk menampilkan formulir kelola traffic:
- Pilih revisi sebelumnya yang ingin Anda roll back dalam daftar dropdown.
- Setel persentase traffic pada revisi sebelumnya menjadi 100.
- Setel persentase revisi yang disajikan saat ini menjadi 0.
- Klik Simpan.
Command line
Gunakan perintah berikut:
gcloud run services update-traffic SERVICE --to-revisions REVISION=100
- Ganti SERVICE dengan nama layanan.
- Ganti REVISION dengan nama revisi yang sedang Anda roll back.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Dalam file lokal Anda, perbarui atribut
traffic
yang terletak di bagianspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION percent: 100
Ganti
- REVISION dengan nama revisi yang sedang Anda roll back.
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Meluncurkan revisi secara bertahap
Untuk meluncurkan revisi baru secara bertahap (blue-green deployment):
Konsol
Buka penayangan Knative di konsol Google Cloud:
Temukan layanan dalam daftar layanan, lalu klik pada layanan tersebut.
Klik Deploy Revisi Baru.
Isi formulir deploy sesuai kebutuhan, tetapi pastikan kotak centangnya berlabel Segera sajikan revisi ini TIDAK DIPERIKSA.
Klik Deploy.
Klik Kelola Traffic.
Revisi baru dicantumkan, tetapi dengan setelan persentase 0: Saat ini tidak menyalurkan traffic dari mana pun. Di dalam formulir:
- Atur persentase yang diinginkan, misalnya, 5. Perhatikan bahwa persentase versi saat ini yang disajikan akan otomatis dikurangi dengan jumlah yang sama.
- Klik Simpan.
- Ulangi langkah-langkah Kelola Traffic ini tetapi dengan persentase yang diubah, meningkatkan persentase sesuai yang diperlukan untuk revisi baru. Anda tidak perlu men-deploy ulang untuk mengubah persentase traffic.
Command line
Untuk men-deploy revisi yang ingin Anda luncurkan secara bertahap, dengan menyetelnya terlebih dahulu agar tidak menerima traffic, Anda menggunakan perintah
update
dengan parameter--no-traffic
:gcloud run deploy --image IMAGE --no-traffic
Ganti IMAGE dengan gambar yang sedang Anda deploy.
Tentukan persentase traffic yang ingin ditangani oleh revisi baru, misalnya, 5 persen:
gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
- Ganti SERVICE dengan nama layanan.
- Ganti REVISION dengan nama revisi yang Anda luncurkan secara bertahap. Untuk menentukan revisi terbaru, Anda dapat menggunakan
LATEST
, misalnya,LATEST=5
. - Ganti PERCENTAGE dengan persentase traffic yang ingin Anda
kirim ke revisi baru, misalnya,
5
untuk mengirim 5% ke traffic.
Setelah performa revisi memuaskan, ulangi langkah sebelumnya
update-traffic
, tetapi tingkatkan nilai persentase sesuai keinginan.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Buat perubahan konfigurasi yang diinginkan pada layanan seperti yang dijelaskan dalam berbagai halaman konfigurasi, dan tentukan nama revisi yang Anda inginkan untuk revisi baru:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE template: metadata: annotations: ... name: REVISION-NAME ``` Replace
- REVISION-NAME dengan nama yang Anda inginkan untuk revisi baru.
Di bawah atribut
spec
, temukan dan perbarui atributtraffic
sehingga revisi baru hanya menyalurkan traffic dalam jumlah kecil:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION-NEW percent: PERCENT-NEW - revisionName: REVISION-FORMER percent: PERCENT-FORMER
Perhatikan bahwa persentase harus berjumlah 100. Ganti
- REVISION-NEW dengan nama revisi yang Anda luncurkan secara bertahap.
- REVISION-FORMER dengan nama revisi yang saat ini disajikan.
- PERCENT-NEW dengan persentase traffic yang ingin Anda kirim ke revisi baru,
misalnya, gunakan
10
untuk mengirim 10% dari traffic ke revisi tersebut. - PERCENT-FORMER dengan persentase traffic yang ingin Anda kirim ke revisi lama
Memisahkan traffic di antara beberapa revisi
Untuk memisahkan traffic antara dua revisi atau lebih:
Konsol
Buka penayangan Knative di konsol Google Cloud:
Temukan layanan dalam daftar layanan, lalu klik pada layanan tersebut.
Klik Kelola Traffic.
Revisi baru yang saat ini disajikan telah tercantum. Di dalam formulir:
- Setel persentase revisi yang saat ini ditampilkan ke bagian yang diinginkan.
- Pilih salah satu revisi sebelumnya menggunakan daftar dropdown dan atur bagian persentase yang diinginkan.
- Untuk membagi traffic antara revisi satu dan lainnya Tambahkan Revisi, pilih revisi yang diinginkan, dan atur persentase ke bagian yang diinginkan.
- Klik Simpan.
Command line
Tentukan revisi dan persentase traffic dari setiap revisi dalam daftar yang dipisahkan koma:
gcloud run services update-traffic SERVICE --to-revisions LIST
Ganti:
- SERVICE dengan nama layanan.
- LIST dengan daftar revisi yang dipisahkan koma yang ingin Anda
terima traffic dan persentase traffic yang sesuai,
jumlah totalnya adalah 100 persen:
REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEn
misalnya,hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50
.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Di file lokal, perbarui atribut
traffic
sehingga revisi baru hanya menyalurkan traffic dalam jumlah kecil:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION-A percent: PERCENT-A - revisionName: REVISION-B percent: PERCENT-B - revisionName: REVISION-C percent: PERCENT-C
Perhatikan bahwa persentase harus berjumlah 100. Ganti
- REVISION-A, REVISION-B, REVISION-C dengan revisi yang Anda alokasikan pada traffic-nya.
- PERCENT-A, PERCENT-B, PERCENT-C dengan persentase untuk revisi yang sesuai.
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Mengirim semua traffic ke revisi terbaru
Saat Anda men-deploy revisi baru, Anda dapat membuat revisi ini dan revisi-revisi di masa depan menyajikan traffic dengan persentase 100% dengan segera, mengesampingkan pembagian traffic yang telah ditetapkan:
Konsol
Buka penayangan Knative di konsol Google Cloud:
Temukan layanan dalam daftar layanan, lalu klik pada layanan tersebut.
Klik Deploy Revisi Baru.
Isi formulir deploy sesuai kebutuhan, tetapi pastikan Anda mencentang kotak centang berlabel Sajikan revisi ini segera. Tindakan ini akan mengganti pembagian traffic yang ada, dengan revisi baru yang menyalurkan traffic 100 persen.
Klik Deploy.
Command line
Untuk mengirim semua traffic ke revisi yang terakhir di-deploy:
gcloud run services update-traffic SERVICE --to-latest
Ganti SERVICE dengan nama layanan.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Dalam file lokal Anda, perbarui atribut
traffic
yang terletak di bagianspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - latestRevision: true percent: 100
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Menggunakan tag untuk pengujian, migrasi traffic, dan rollback
Setelah men-deploy layanan, Anda dapat membuat revisi baru dan menetapkan tag aset yang memungkinkan Anda untuk mengakses revisi di URL tertentu tanpa menyalurkan traffic. Kemudian, Anda dapat menggunakan tag tersebut secara bertahap memindahkan traffic ke revisi yang diberi tag, dan untuk melakukan rollback revisi yang diberi tag.
Fitur ini sering digunakan untuk menguji dan memeriksa revisi layanan baru sebelum menyalurkan traffic apa pun, dalam urutan umum berikut:
- Menjalankan pengujian terintegrasi pada container selama pengembangan.
- Men-deploy container ke project Google Cloud yang hanya Anda gunakan untuk staging, tidak menyalurkan traffic, dan melakukan pengujian terhadap revisi yang diberi tag.
- Men-deploy ke produksi, tanpa menyalurkan traffic, dan melakukan pengujian terhadap revisi yang diberi tag dalam produksi.
- Memindahkan traffic ke revisi yang diberi tag.
Men-deploy revisi yang baru diberi tag
Untuk men-deploy revisi baru dari layanan yang tersedia ke produksi:
gcloud run deploy myservice --image IMAGE_URL --no-traffic --tag TAG_NAME
Ganti:
- IMAGE_URL dengan URL untuk gambar Anda
- TAG_NAME dengan nama tag dalam huruf kecil
Tag tersebut memungkinkan Anda menguji revisi baru secara langsung di URL tertentu, tanpa
menyalurkan traffic. URL pengujian dimulai dengan
nama tag yang Anda berikan:
http://{TAG_NAME}---{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io
Misalnya, jika menggunakan nama tag green
pada
layanan myservice
, Anda akan menguji revisi yang diberi tag di URL:
https://green---myservice.default.kuberun.11.111.11.111.nip.io
Memindahkan traffic ke revisi yang diberi tag
Setelah mengonfirmasi bahwa revisi baru berfungsi dengan baik, Anda dapat mulai memindahkan traffic ke revisi tersebut menggunakan konsol Google Cloud, command line gcloud, atau file YAML:
Konsol
Buka penayangan Knative di konsol Google Cloud:
Temukan layanan dalam daftar layanan, lalu klik layanan tersebut:
Pilih revisi yang diberi tag yang ingin Anda kirimi traffic:
Klik Kelola Traffic.
Temukan nama revisi yang diberi tag: nama tersebut tercantum, tetapi dengan setelan persentase 0: saat ini tidak menyalurkan traffic apa pun. Dalam formulir Kelola traffic*:
- Atur persentase yang diinginkan, misalnya, 5. Perhatikan bahwa persentase versi saat ini yang disajikan akan otomatis dikurangi dengan jumlah yang sama.
- Klik Simpan.
- Jika diperlukan, dalam jangka waktu beberapa jam atau hari, Anda dapat mengulangi langkah Kelola Traffic ini, tetapi dengan persentase yang telah berubah, meningkatkan persentase sesuai kebutuhan untuk revisi yang diberi tag. Anda tidak perlu men-deploy ulang untuk mengubah persentase traffic.
Command line
Untuk memindahkan traffic ke tag revisi tertentu:
gcloud run deploy update-traffic myservice --tag TAG_NAME=TRAFFIC_PERCENT
Ganti
- TAG_NAME dengan nama tag yang menjadi tujuan pemindahan traffic
- TRAFFIC_PERCENT dengan persentase traffic yang Anda inginkan untuk oleh revisi yang diberi tag, misalnya,
1
.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Buat perubahan konfigurasi yang diinginkan pada layanan seperti yang dijelaskan dalam berbagai halaman konfigurasi.
Di bawah atribut
spec
, temukan dan perbarui atributtraffic
untuk revisi yang diberi tag sehingga revisi tersebut hanya menyalurkan traffic dalam jumlah kecil:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION tag: TAG_NAME percent: PERCENT-NEW - revisionName: REVISION-FORMER percent: PERCENT-FORMER
Perhatikan bahwa persentase harus berjumlah 100. Ganti
- REVISION dengan nama revisi yang diberi tag.
- TAG_NAME dengan nama tag yang Anda luncurkan secara bertahap.
- PERCENT-NEW dengan persentase traffic yang ingin Anda kirim ke revisi yang diberi tag, misalnya, gunakan
10
untuk mengirim 10% traffic ke revisi tersebut. - REVISION-FORMER dengan nama revisi yang saat ini disajikan.
- PERCENT-FORMER dengan persentase traffic yang ingin Anda kirim ke revisi lama
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml