Panduan memulai Anthos Service Mesh untuk GKE

Dalam tutorial ini, Anda akan menginstal Anthos Service Mesh 1.10.6-asm.2 menggunakan skrip yang disediakan Google, install_asm, di cluster Google Kubernetes Engine (GKE) baru. Tutorial ini membahas:

  1. mengonfigurasi project Google Cloud Anda
  2. yang membuat cluster GKE dengan jumlah minimum vCPU yang diperlukan oleh Anthos Service Mesh
  3. menginstal Anthos Service Mesh dengan bidang kontrol dalam cluster
  4. 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. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan panduan memulai ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus cluster. Untuk informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. 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.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Aktifkan API Kubernetes Engine.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Aktifkan API Kubernetes Engine.

    Mengaktifkan API

  8. 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 di bagian atas jendela Cloud Shell.

    • Emacs, Vim, atau Nano, yang Anda akses dari command line di Cloud Shell.

Untuk menggunakan Cloud Shell:

  1. Buka Konsol Google Cloud.
  2. Pilih project Google Cloud Anda.
  3. Klik tombol Activate Cloud Shell di bagian atas jendela Konsol Google Cloud.

    Konsol Google Cloud Platform

    Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah Konsol Google Cloud dan menampilkan prompt command line.

    Sesi Cloud Shell

Komputer Linux lokal

  1. Pastikan Anda telah menginstal alat berikut:

  2. Lakukan autentikasi dengan gcloud CLI:

    gcloud auth login
    
  3. Update komponen:

    gcloud components update
    
  4. Pastikan git berada di jalur Anda sehingga kpt dapat menemukannya.

Membuat cluster GKE

  1. 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
    
  2. 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

  1. Download versi skrip yang menginstal Anthos Service Mesh 1.10.6 ke direktori kerja saat ini:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.10 > install_asm
    
  2. 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 repositori anthos-service-mesh, dan tempat skrip mendownload serta mengekstrak file penginstalan Anthos Service Mesh, yang berisi istioctl, 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

  1. Download contoh menggunakan kpt:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  2. Buat namespace untuk aplikasi:

    kubectl create namespace demo
    
  3. 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-1106-2-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-1106-2-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586

    Pada output, di kolom LABELS, catat nilai label revisi istiod, yang mengikuti awalan istio.io/rev=. Dalam contoh ini, nilainya adalah asm-1106-2.

  4. 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 label istio-injection, yang akan Anda harapkan dalam penginstalan baru Anthos Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label dalam dokumentasi Anthos Service Mesh mencakup penghapusan label istio-injection.

  5. Deploy sampel ke cluster:

    kubectl apply -n demo -f online-boutique
    
  6. 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.

  7. 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.

  1. Di konsol Google Cloud, buka Anthos Service Mesh.

    Buka Anthos Service Mesh

  2. Pilih project Google Cloud dari menu drop-down di panel menu.

  3. 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: