Dalam tutorial ini, Anda akan menginstal Anthos Service Mesh 1.9.8-asm.6 menggunakan skrip yang disediakan Google, install_asm
, di cluster Google Kubernetes Engine (GKE) baru. Tutorial ini membahas:
- mengonfigurasi project Google Cloud Anda
- yang membuat cluster GKE dengan jumlah minimum vCPU yang diperlukan oleh Anthos Service Mesh
- menginstal Anthos Service Mesh dengan bidang kontrol dalam cluster
- men-deploy aplikasi sampel sehingga Anda dapat melihat data telemetri pada dasbor Anthos Service Mesh di Konsol Google Cloud.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan panduan memulai ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus cluster. Untuk informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Kubernetes Engine.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Kubernetes Engine.
- Catat project ID Anda.
Meskipun Anthos Service Mesh memerlukan API lain, skrip install_asm
akan mengaktifkannya untuk Anda. Untuk menekan biaya penagihan, skrip install_asm
tidak mengaktifkan GKE Enterprise API. Ada beberapa perbedaan kecil di Google Cloud Console saat GKE Enterprise API diaktifkan. Untuk mempelajari perbedaan ini lebih lanjut, lihat perbedaan UI GKE Enterprise dan Anthos Service Mesh.
Instal alat yang diperlukan
Anda dapat menjalankan skrip ini di Cloud Shell atau di mesin lokal yang menjalankan Linux. Cloud Shell menginstal semua alat yang diperlukan. Perhatikan bahwa macOS tidak didukung karena dilengkapi dengan bash versi lama.
Cloud Shell
Cloud Shell menyediakan mesin virtual (VM) Compute Engine g1-small yang menjalankan sistem operasi Linux berbasis Debian. Keuntungan menggunakan Cloud Shell adalah:
Cloud Shell mencakup
gcloud
,kubectl
,kpt
, dan alat command line lain yang Anda butuhkan.Direktori $HOME Cloud Shell Anda memiliki ruang penyimpanan persisten sebesar 5 GB.
Anda dapat memilih editor teks:
Editor kode, yang dapat Anda akses dengan mengklik edit di bagian atas jendela Cloud Shell.
Emacs, Vim, atau Nano, yang Anda akses dari command line di Cloud Shell.
Untuk menggunakan Cloud Shell:
- Buka Konsol Google Cloud.
- Pilih project Google Cloud Anda.
Klik tombol Activate Cloud Shell di bagian atas jendela Konsol Google Cloud.
Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah Konsol Google Cloud dan menampilkan prompt command line.
Komputer Linux lokal
Pastikan Anda telah menginstal alat berikut:
- Google Cloud CLI
- Alat command line standar:
awk
,curl
,grep
,sed
,sha256sum
, dantr
- git
- kpt
- kubectl
- jq
Lakukan autentikasi dengan Google Cloud CLI:
gcloud auth login
Update komponen:
gcloud components update
Pastikan
git
berada di jalur Anda sehinggakpt
dapat menemukannya.
Membuat cluster GKE
Jalankan perintah berikut untuk membuat cluster dengan jumlah minimum vCPU yang diperlukan oleh Anthos Service Mesh. Dalam perintah, ganti placeholder dengan informasi berikut:
- CLUSTER_NAME : nama cluster Anda. Nama hanya boleh berisi karakter alfanumerik dengan huruf kecil dan
-
, harus diawali dengan huruf dan diakhiri dengan alfanumerik, serta tidak boleh lebih dari 40 karakter. - PROJECT_ID: project ID tempat cluster akan dibuat.
- CLUSTER_LOCATION
zona untuk cluster, seperti
us-central1-a
.
gcloud container clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION \ --machine-type=e2-standard-4 \ --num-nodes=2 \ --workload-pool=PROJECT_ID.svc.id.goog
- CLUSTER_NAME : nama cluster Anda. Nama hanya boleh berisi karakter alfanumerik dengan huruf kecil dan
Dapatkan kredensial autentikasi untuk berinteraksi dengan cluster. Perintah ini juga menetapkan konteks saat ini untuk
kubectl
ke cluster.gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Mendownload skrip penginstalan ASM
Download versi skrip yang menginstal Anthos Service Mesh 1.9.8 ke direktori kerja saat ini:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
Download file SHA-256 ke direktori kerja saat ini:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
Dengan kedua file berada di direktori yang sama, verifikasi download:
sha256sum -c --ignore-missing install_asm.sha256
Jika verifikasi berhasil, perintah akan menghasilkan output:
install_asm: OK
Untuk kompatibilitas, file
install_asm.sha256
menyertakan checksum dua kali untuk memungkinkan nama versi skrip apa pun diganti menjadiinstall_asm
. Jika Anda mendapatkan error bahwa--ignore-missing
tidak ada, jalankan kembali perintah sebelumnya tanpa flag--ignore-missing
.Buat agar skrip dapat dieksekusi:
chmod +x install_asm
Menginstal Anthos Service Mesh
Jalankan skrip install_asm
dengan opsi berikut untuk menginstal Anthos Service Mesh di cluster yang Anda buat sebelumnya. Jika Anda belum menutup halaman ini sejak membuat cluster, placeholder memiliki nilai yang Anda masukkan untuk perintah gcloud container clusters create
.
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--output_dir ./asm-downloads \
--enable_all
Diperlukan waktu beberapa menit untuk menyelesaikan skrip install_asm
. Skrip ini menghasilkan pesan informasi sehingga Anda dapat mengikuti progresnya.
Perintah tersebut menjalankan install_asm
dengan opsi berikut:
--mode install
: menjalankan skrip untuk penginstalan baru dan mengaktifkan certificate authority Anthos Service Mesh (Mesh CA), yang merupakan certificate authority (CA) default untuk penginstalan.--output_dir ./asm-downloads
: direktori tempat skrip mendownload file dari repositorianthos-service-mesh
, dan tempat skrip mendownload serta mengekstrak file penginstalan Anthos Service Mesh, yang berisiistioctl
, contoh, dan manifes.--enable-registration
: memungkinkan skrip mendaftarkan cluster ke project tempat cluster berada.--enable_all
: memungkinkan skrip untuk mengaktifkan Google API yang diperlukan, menetapkan izin Identity and Access Management, dan melakukan update yang diperlukan untuk cluster Anda, yang mencakup pengaktifan GKE Workload Identity.
Men-deploy contoh Butik Online
Download contoh menggunakan
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Buat namespace untuk aplikasi:
kubectl create namespace demo
Aktifkan injeksi file bantuan otomatis (injeksi otomatis). Gunakan perintah berikut untuk menemukan label di layanan
istiod
, yang berisi nilai label revisi untuk digunakan di langkah-langkah berikutnya.kubectl -n istio-system get pods -l app=istiod --show-labels
Outputnya terlihat mirip dengan yang berikut ini:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
Pada output, di kolom
LABELS
, catat nilai label revisiistiod
, yang mengikuti awalanistio.io/rev=
. Dalam contoh ini, nilainya adalahasm-198-6
.Terapkan label revisi ke namespace. Dalam perintah berikut, REVISION adalah nilai label revisi
istiod
yang Anda catat di langkah sebelumnya.kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
Anda dapat mengabaikan pesan
"istio-injection not found"
di output. Artinya, namespace sebelumnya tidak memiliki labelistio-injection
, yang akan Anda harapkan dalam penginstalan baru Anthos Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memilikiistio-injection
dan label revisi, semua perintahkubectl label
dalam dokumentasi Anthos Service Mesh mencakup penghapusan labelistio-injection
.Deploy sampel ke cluster:
kubectl apply -n demo -f online-boutique
Dapatkan alamat IP eksternal gateway masuk:
kubectl get service istio-ingressgateway -n istio-system
Outputnya mirip dengan:
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 gateway masuk adalah
35.239.7.64
.Buka aplikasi pada browser Anda untuk mengonfirmasi penginstalan:
http://EXTERNAL_IP/
Lihat dasbor Service Mesh
Setelah workload di-deploy di cluster dengan proxy file bantuan dimasukkan, Anda dapat menjelajahi halaman Anthos Service Mesh di Konsol Google Cloud untuk melihat semua fitur kemampuan observasi yang ditawarkan Anthos Service Mesh. Perlu diperhatikan bahwa perlu waktu sekitar satu atau dua menit agar data telemetri ditampilkan di konsol Google Cloud setelah Anda men-deploy workload.
Akses ke Anthos Service Mesh di Konsol Google Cloud dikontrol oleh Identity and Access Management (IAM). Untuk mengakses halaman Anthos Service Mesh, Pemilik Project harus memberi pengguna peran Project Editor atau Viewer, atau peran yang lebih ketat yang dijelaskan dalam Mengontrol akses ke Anthos Service Mesh di Konsol Google Cloud.
Di konsol Google Cloud, buka Anthos Service Mesh.
Pilih project Google Cloud dari menu drop-down di panel menu.
Jika Anda memiliki lebih dari satu mesh layanan, pilih mesh dari menu drop-down Service Mesh.
Untuk mempelajari lebih lanjut, lihat Menjelajahi Anthos Service Mesh di Konsol Google Cloud.
Pembersihan
Sebelum melanjutkan pembahasan, jika Anda tertarik untuk mempelajari mutual TLS lebih lanjut, lihat Anthos Service Mesh dengan contoh: mTLS.
Jika Anda ingin mencegah biaya tambahan, hapus cluster:
gcloud container clusters delete CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Jika Anda ingin mempertahankan cluster dan menghapus contoh Butik Online:
kubectl delete namespaces demo
Langkah selanjutnya
Pelajari lebih lanjut:
- Persyaratan cluster
- Opsi dan flag skrip
install_asm
- Men-deploy Layanan
- Perintah
gcloud
yang digunakan dalam tutorial ini