Men-deploy contoh Bookinfo
Halaman ini menjelaskan cara men-deploy aplikasi contoh untuk mendemonstrasikan Cloud Service Mesh. Jika Anda belum melakukan orientasi ke Cloud Service Mesh, lihat Panduan orientasi.
Beberapa aplikasi contoh disertakan dalam penginstalan Cloud Service Mesh. Panduan
ini akan memandu Anda men-deploy
BookInfo. Ini adalah aplikasi toko buku tiruan sederhana yang terdiri dari empat layanan yang menyediakan halaman produk web, detail buku, ulasan (dengan beberapa versi layanan ulasan), dan rating—semuanya dikelola menggunakan Cloud Service Mesh. Anda dapat menemukan kode sumber dan semua file lain yang digunakan dalam contoh ini di direktori penginstalan Cloud Service Mesh di samples/bookinfo.
Mengaktifkan penyisipan otomatis sidecar
Aktifkan namespace untuk penyisipan. Langkah-langkahnya bergantung pada penerapan bidang kontrol Anda.
Terkelola (TD)
- Terapkan label penyisipan default ke namespace:
kubectl label namespace default \ istio.io/rev- istio-injection=enabled --overwriteTerkelola (Istiod)
Direkomendasikan: Jalankan perintah berikut untuk menerapkan label penyisipan default ke namespace:
kubectl label namespace default \ istio.io/rev- istio-injection=enabled --overwriteJika Anda adalah pengguna yang sudah ada dengan bidang kontrol Istiod Terkelola: Sebaiknya gunakan penyisipan default, tetapi penyisipan berbasis revisi didukung. Gunakan petunjuk berikut:
Jalankan perintah berikut untuk menemukan saluran rilis yang tersedia:
kubectl -n istio-system get controlplanerevisionOutputnya mirip dengan hal berikut ini:
NAME AGE asm-managed-rapid 6d7hCATATAN: Jika dua revisi bidang kontrol muncul dalam daftar di atas, hapus salah satunya. Memiliki beberapa saluran bidang kontrol di cluster tidak didukung.
Dalam output, nilai di kolom
NAMEadalah label revisi yang sesuai dengan saluran rilis yang tersedia untuk versi Cloud Service Mesh.Terapkan label revisi ke namespace:
kubectl label namespace default \ istio-injection- istio.io/rev=REVISION_LABEL --overwrite
Dalam cluster
Direkomendasikan: Jalankan perintah berikut untuk menerapkan label penyisipan default ke namespace:
kubectl label namespace default \ istio.io/rev- istio-injection=enabled --overwriteSebaiknya gunakan penyisipan default, tetapi penyisipan berbasis revisi didukung: Gunakan petunjuk berikut:
Gunakan perintah berikut untuk menemukan label revisi di
istiod:kubectl get deploy -n istio-system -l app=istiod -o \ jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}'Terapkan label revisi ke namespace. Dalam perintah berikut,
REVISION_LABELadalah nilai label revisiistiodyang Anda catat pada langkah sebelumnya.kubectl label namespace default \ istio-injection- istio.io/rev=REVISION_LABEL --overwrite
Men-deploy aplikasi
Setelah penyisipan otomatis diaktifkan di namespace default, saat Anda men-deploy layanan aplikasi BookInfo, proxy sidecar akan disisipkan bersama setiap layanan.
Di command line pada komputer tempat Anda menginstal Cloud Service Mesh, buka root direktori penginstalan Cloud Service Mesh. Jika perlu, download file penginstalan Dalam cluster, yang menyertakan aplikasi contoh bookinfo, lalu ekstrak.
Deploy aplikasi Anda ke namespace default menggunakan
kubectl:kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yamlPastikan aplikasi telah di-deploy dengan benar dengan menjalankan perintah berikut:
kubectl get servicesOutput:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE details 10.0.0.31 <none> 9080/TCP 6m kubernetes 10.0.0.1 <none> 443/TCP 7d productpage 10.0.0.120 <none> 9080/TCP 6m ratings 10.0.0.15 <none> 9080/TCP 6m reviews 10.0.0.170 <none> 9080/TCP 6m
dan
kubectl get podOutput:
NAME READY STATUS RESTARTS AGE details-v1-1520924117-48z17 2/2 Running 0 6m productpage-v1-560495357-jk1lz 2/2 Running 0 6m ratings-v1-734492171-rnr5l 2/2 Running 0 6m reviews-v1-874083890-f0qf0 2/2 Running 0 6m reviews-v2-1343845940-b34q5 2/2 Running 0 6m reviews-v3-1813607990-8ch52 2/2 Running 0 6m
Terakhir, tentukan perutean gateway ingress untuk aplikasi:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yamlOutput:
gateway.networking.istio.io/bookinfo-gateway created virtualservice.networking.istio.io/bookinfo created
Memvalidasi deployment aplikasi
Untuk melihat apakah aplikasi BookInfo berfungsi, Anda harus mengirim traffic ke gateway ingress.
Jika Anda menginstal Cloud Service Mesh di Google Distributed Cloud (software saja) untuk VMware, dapatkan alamat IP eksternal untuk gateway ingress yang Anda konfigurasi setelah menginstal Cloud Service Mesh
Jika Anda menginstal Cloud Service Mesh di GKE, dapatkan alamat IP eksternal gateway ingress sebagai berikut:
kubectl get service istio-ingressgateway -n istio-systemOutput:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.19.247.233 35.239.7.64 80:31380/TCP,443:31390/TCP,31400:31400/TCP 27m
Dalam contoh ini, alamat IP layanan ingress adalah
35.239.7.64.
Mencoba aplikasi
Periksa apakah aplikasi BookInfo berjalan dengan
curl:curl -I http://EXTERNAL_IP/productpageJika respons menampilkan
200, berarti aplikasi berfungsi dengan baik dengan Cloud Service Mesh.Untuk melihat halaman web BookInfo, masukkan alamat berikut di browser Anda:
http://EXTERNAL_IP/productpageJika Anda memuat ulang halaman beberapa kali, Anda akan melihat berbagai versi ulasan yang ditampilkan di halaman produk, yang ditampilkan dalam gaya round robin (bintang merah, bintang hitam, tanpa bintang).
Setelah memiliki aplikasi yang menghasilkan traffic, Anda dapat menjelajahi halaman Cloud Service Mesh di Google Cloud konsol untuk melihat metrik dan fitur kemampuan observasi lainnya.
Pembersihan
Setelah selesai bereksperimen dengan contoh Bookinfo, hapus contoh tersebut dari cluster Anda.
Hapus penginstalan Bookinfo menggunakan skrip berikut:
samples/bookinfo/platform/kube/cleanup.shKonfirmasi penonaktifan:
kubectl get virtualservices #-- there should be no virtual services kubectl get destinationrules #-- there should be no destination rules kubectl get gateway #-- there should be no gateway kubectl get pods #-- the Bookinfo pods should be deleted
Langkah berikutnya
Pelajari contoh Bookinfo lebih lanjut.