Menginstal Anthos Service Mesh di cluster yang ada menggunakan GKE Enterprise CLI

Panduan ini menjelaskan cara melakukan penginstalan pembersihan Anthos Service Mesh versi 1.5.10-asm.2 di cluster GKE Google Cloud yang ada menggunakan antarmuka command line (CLI) GKE Enterprise. Perhatikan batasan berikut pada GKE Enterprise CLI versi beta ini:

Penginstalan ini mengaktifkan fitur berikut:

Panduan ini juga menjelaskan cara mendaftarkan cluster Anda di fleet yang berada dalam project Google Cloud yang sama dengan cluster tersebut. Armada memungkinkan Anda mengatur cluster untuk mempermudah pengelolaan multi-cluster. Dengan mendaftarkan cluster dalam suatu fleet, Anda dapat mengelompokkan layanan dan infrastruktur lainnya sesuai kebutuhan untuk menerapkan kebijakan yang konsisten.

Sebelum memulai

Sebelum memulai penginstalan:

Persyaratan

  • Anda harus memiliki lisensi atau langganan uji coba GKE Enterprise. Lihat panduan Harga GKE Enterprise untuk mengetahui detailnya.

  • Cluster GKE Anda harus memenuhi persyaratan berikut:

    • Minimal empat node.
    • Jenis mesin minimum adalah e2-standard-4, yang memiliki empat vCPU.
    • Gunakan saluran rilis, bukan versi statis GKE
  • Agar dapat disertakan dalam mesh layanan, port layanan harus diberi nama, dan namanya harus menyertakan protokol port dalam sintaksis berikut: name: protocol[-suffix] dengan tanda kurung siku menunjukkan akhiran opsional yang harus diawali dengan tanda pisah. Untuk mengetahui informasi selengkapnya, Penamaan port layanan.

  • Jika menginstal Anthos Service Mesh di cluster pribadi, Anda harus menambahkan aturan firewall untuk membuka port 15017 jika ingin menggunakan injeksi file bantuan otomatis. Jika tidak menambahkan aturan firewall dan injeksi file bantuan otomatis diaktifkan, Anda akan mendapatkan error saat men-deploy workload. Untuk mengetahui detail tentang cara menambahkan aturan firewall, lihat Menambahkan aturan firewall untuk kasus penggunaan tertentu.

  • Jika telah membuat perimeter layanan di organisasi, Anda mungkin perlu menambahkan layanan Mesh CA ke perimeter. Lihat Menambahkan Mesh CA ke perimeter layanan untuk mengetahui informasi selengkapnya.

Pembatasan

Hanya satu penginstalan Anthos Service Mesh per project Google Cloud yang didukung. Beberapa deployment mesh dalam satu project tidak didukung.

Data sertifikat

Sertifikat dari Mesh CA mencakup data berikut tentang layanan aplikasi Anda:

  • Project ID Google Cloud
  • Namespace GKE
  • Nama akun layanan GKE

Menetapkan default project dan cluster

  1. Dapatkan project ID project tempat cluster dibuat:

    gcloud

    gcloud projects list

    Konsol

    1. Di konsol Google Cloud, buka halaman Dasbor:

      Buka halaman Dasbor

    2. Klik menu drop-down Select from di bagian atas halaman. Di jendela Select from yang muncul, pilih project Anda. Project ID ditampilkan di kartu Project info di Dasbor project.

  2. Buat variabel lingkungan untuk project ID:

    export PROJECT_ID=YOUR_PROJECT_ID
  3. Tetapkan project ID default untuk Google Cloud CLI:

    gcloud config set project ${PROJECT_ID}
    
  4. Buat variabel lingkungan berikut:

    • Tetapkan nama cluster:

      export CLUSTER_NAME=YOUR_CLUSTER_NAME
    • Tetapkan CLUSTER_LOCATION ke zona cluster atau region cluster Anda:

      export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION
  5. Tetapkan zona atau region default untuk Google Cloud CLI.

    • Jika Anda memiliki cluster zona tunggal, tetapkan zona default:

      gcloud config set compute/zone ${CLUSTER_LOCATION}
    • Jika Anda memiliki cluster regional, tetapkan region default:

      gcloud config set compute/region ${CLUSTER_LOCATION}

Mempersiapkan file konfigurasi resource

Anda dapat menggunakan GKE Enterprise CLI dan kustomize untuk mengekspor serta melakukan patch file resource Config Connector yang akan Anda gunakan untuk mengupdate cluster yang ada dengan opsi yang diperlukan oleh Anthos Service Mesh. Resource Config Connector adalah representasi Kubernetes dari resource Google Cloud.

Ekspor file konfigurasi resource

Anda menggunakan perintah gcloud beta anthos export untuk menghasilkan file konfigurasi resource untuk cluster yang ada.

  1. Buat direktori untuk resource Anthos Service Mesh. Untuk memudahkan, langkah-langkah berikut merujuk ke direktori yang Anda buat sebagai ASM_RESOURCES.

  2. Ubah ke direktori ASM_RESOURCES.

  3. Download paket asm-patch ke direktori kerja saat ini:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm-patch@release-1.5-asm .
    

    Perintah tersebut membuat subdirektori bernama asm-patch/.

  4. Tambahkan nama direktori dalam variabel lingkungan bernama BASE_DIR. Saat Anda menjalankan perintah gcloud beta anthos export pada cluster yang sudah ada, GKE Enterprise CLI akan membuat direktori dengan nama yang ditentukan dalam BASE_DIR dan meng-output file resource Config Connector ke direktori tersebut.

    export BASE_DIR=YOUR_BASE_DIR

    Jika Anda akan menyiapkan lebih dari satu cluster, sebaiknya gunakan nama cluster sebagai nama direktori. Misalnya, jika Anda menyiapkan file konfigurasi resource untuk dua cluster, setelah Anda menjalankan perintah gcloud beta anthos export untuk cluster-1 dan cluster-2, struktur direktori Anda akan serupa dengan berikut ini:

    sketsa struktur direktori

    Dalam diagram, cluster-1 dan cluster-2 adalah direktori yang berisi file konfigurasi resource Config Connector untuk cluster bernama cluster-1 dan cluster-2.

  5. Ekspor file konfigurasi resource Config Connector:

    gcloud beta anthos export ${CLUSTER_NAME} --output-directory ${BASE_DIR}
    

    Perintah export mengisi project ID dan zona/region cluster Anda di file konfigurasi resource untuk cluster Anda agar cocok dengan setelan gcloud config Anda saat ini. Jika ingin mengekspor file konfigurasi resource untuk cluster yang tidak cocok dengan setelan gcloud config saat ini, Anda dapat menentukan opsi command line berikut:

    • -p PROJECT_ID
    • -l YOUR_ZONE_OR_REGION

    Periksa gcloud beta anthos export --help untuk detail selengkapnya.

Mem-patch file konfigurasi resource

Anda dapat menggunakan penyetel kpt GKE Enterprise dan kustomize untuk mengupdate file konfigurasi resource.

  1. Cantumkan penyetel konfigurasi yang tersedia dalam paket asm-patch:

    kpt cfg list-setters asm-patch/
    

    Outputnya mirip dengan hal berikut ini:

    NAME                           VALUE                  SET BY   DESCRIPTION   COUNT
    base-dir                       base                                           1
    gcloud.compute.location        your_zone_or_region                            1
    gcloud.container.cluster       your_cluster_name                              3
    gcloud.core.project            your_project_id        kpt                    11
    gcloud.project.projectNumber   your_project_number    kpt                     1
  2. Tetapkan jalur relatif antara direktori ${BASE_DIR} dan asm-patch:

    kpt cfg set asm-patch/ base-dir ../${BASE_DIR}
  3. Tetapkan nama cluster:

    kpt cfg set asm-patch/ gcloud.container.cluster ${CLUSTER_NAME}
  4. Jika Anda belum menetapkan default gcloud config, atau jika Anda ingin mengubah nilainya, jalankan penyetel berikut:

    kpt cfg set asm-patch/ gcloud.compute.location ${CLUSTER_LOCATION}
    kpt cfg set asm-patch/ gcloud.core.project ${PROJECT_ID}
  5. Terapkan patch Anthos Service Mesh ke file konfigurasi resource cluster:

    pushd ${BASE_DIR} && kustomize create --autodetect \
    --namespace ${PROJECT_ID} && popd
    pushd asm-patch && kustomize build -o ../${BASE_DIR}/all.yaml && popd
  6. Validasi konfigurasi resource akhir:

    kpt fn source ${BASE_DIR} | kpt fn run --image gcr.io/kustomize-functions/validate-asm:v0.1.0
    

    Jika ada error, perbaiki dan validasi lagi konfigurasi resource.

  7. Secara opsional, Anda dapat memeriksa file konfigurasi resource ke sistem kontrol sumber Anda sendiri, seperti Cloud Source Repositories, sehingga Anda dapat melacak perubahan pada file tersebut.

Mengupdate cluster dan menginstal Anthos Service Mesh

GKE Enterprise CLI mengupdate cluster Anda dengan opsi berikut, yang diperlukan oleh Anthos Service Mesh:

  • Menambahkan label mesh_id ke cluster dalam format proj-PROJECT_NUMBER, dengan PROJECT_NUMBER sebagai nomor project project tempat cluster dibuat. Label mesh_id diperlukan agar metrik ditampilkan di dasbor Anthos Service Mesh di Konsol Google Cloud. Jika cluster Anda sudah memiliki label, GKE Enterprise CLI akan menyimpannya.

  • Mengaktifkan Workload Identity.

  • Mengaktifkan Kubernetes Engine Monitoring.

  • Mendaftarkan cluster dalam ringkasan saluran rilis.

Jalankan perintah berikut untuk mengupdate cluster dan menginstal Anthos Service Mesh:

gcloud beta anthos apply ${BASE_DIR}

Perintah ini memperbarui cluster Anda dengan opsi yang diperlukan, lalu men-deploy Anthos Service Mesh. Proses ini membutuhkan waktu sekitar 30 menit hingga selesai.

Memeriksa komponen bidang kontrol

Pastikan pod bidang kontrol di istio-system sudah aktif:

kubectl get pod -n istio-system

Output yang diharapkan mirip dengan berikut ini:

NAME                                      READY   STATUS      RESTARTS   AGE
istio-ingressgateway-74cc894bfd-786rg     1/1     Running     0          7m19s
istiod-78cdbbbdb-d7tps                    1/1     Running     0          7m36s
promsd-576b8db4d6-lqf64                   2/2     Running     1          7m19s

Mendaftarkan cluster Anda

Anda harus mendaftarkan cluster ke fleet project untuk mendapatkan akses ke antarmuka pengguna terpadu di Konsol Google Cloud. Armada menyediakan cara terpadu untuk melihat dan mengelola cluster dan workload-nya, termasuk cluster di luar Google Cloud.

Membuat akun layanan dan file kunci Google Cloud

File JSON yang berisi kredensial akun layanan diperlukan untuk mendaftarkan cluster. Untuk mengikuti prinsip hak istimewa terendah, sebaiknya buat akun layanan yang berbeda untuk setiap cluster yang Anda daftarkan.

Untuk membuat akun layanan dan file kunci:

  1. Pilih nama untuk akun layanan dan buat variabel lingkungan untuk akun tersebut:

    export SERVICE_ACCOUNT_NAME=SERVICE_ACCOUNT_NAME
    
  2. Buat akun layanan:

    gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME}
  3. Tampilkan daftar semua akun layanan project untuk mengonfirmasi bahwa akun layanan telah dibuat:

    gcloud iam service-accounts list
  4. Ikat peran IAM gkehub.connect ke akun layanan:

    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
       --member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
       --role="roles/gkehub.connect"
  5. Buat variabel lingkungan untuk jalur file lokal tempat Anda ingin menyimpan file JSON. Sebaiknya beri nama file menggunakan nama akun layanan dan project ID Anda, seperti: /tmp/creds/${SERVICE_ACCOUNT_NAME}-${PROJECT_ID}.json

    export SERVICE_ACCOUNT_KEY_PATH=LOCAL_KEY_PATH
  6. Download file JSON kunci pribadi akun layanan:

    gcloud iam service-accounts keys create ${SERVICE_ACCOUNT_KEY_PATH} \
       --iam-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com

Mendaftarkan cluster

Dalam perintah berikut, ganti MEMBERSHIP_NAME dengan nama yang secara unik mewakili cluster yang terdaftar di Hub.

gcloud container hub memberships register MEMBERSHIP_NAME \
    --gke-cluster=${CLUSTER_LOCATION}/${CLUSTER_NAME} \
    --service-account-key-file=${SERVICE_ACCOUNT_KEY_PATH}

Perintah ini merespons dengan output yang mirip dengan berikut ini:

kubeconfig entry generated for CLUSTER_NAME.
Waiting for membership to be created...done.
Created a new membership [projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME] for the cluster [MEMBERSHIP_NAME]
Generating the Connect Agent manifest...
Deploying the Connect Agent on cluster [MEMBERSHIP_NAME] in namespace [gke-connect]...
Deployed the Connect Agent on cluster [MEMBERSHIP_NAME] in namespace [gke-connect].
Finished registering the cluster [MEMBERSHIP_NAME] with the Hub.

Kunci akun layanan ini disimpan sebagai rahasia bernama creds-gcp di namespace gke-connect.

Untuk mengetahui informasi lebih lanjut tentang pendaftaran cluster, baca Mendaftarkan cluster dalam dokumentasi Connect.

Memasukkan proxy file bantuan

Anthos Service Mesh menggunakan proxy file bantuan untuk meningkatkan keamanan, keandalan, dan kemampuan observasi jaringan. Dengan Anthos Service Mesh, fungsi-fungsi ini diabstraksikan dari container utama aplikasi dan diimplementasikan dalam proxy di luar proses umum yang dikirimkan sebagai container terpisah dalam Pod yang sama.

Setiap beban kerja yang berjalan di cluster sebelum Anda menginstal Anthos Service Mesh harus memasukkan atau mengupdate sidecar proxy agar memiliki versi Anthos Service Mesh saat ini. Sebelum men-deploy workload baru, pastikan untuk mengonfigurasi injeksi proxy sidecar sehingga Anthos Service Mesh dapat memantau dan mengamankan traffic.

Anda dapat mengaktifkan injeksi file bantuan otomatis dengan satu perintah, misalnya:

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

dengan NAMESPACE adalah nama namespace untuk layanan aplikasi Anda, atau default jika Anda tidak membuat namespace secara eksplisit.

Untuk mengetahui informasi selengkapnya, lihat Memasukkan proxy file bantuan.

Melihat halaman Anthos 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.

Selain halaman Anthos Service Mesh, metrik yang terkait dengan layanan Anda (seperti jumlah permintaan yang diterima oleh layanan tertentu) dikirim ke Cloud Monitoring, yang akan muncul di Metrics Explorer.

Untuk melihat metrik:

  1. Di konsol Google Cloud, buka halaman Monitoring:

    Buka Monitoring

  2. Pilih Resource > Metrics Explorer.

Untuk mengetahui daftar lengkap metrik, lihat Metrik Istio dalam dokumentasi Cloud Monitoring.

Menginstal contoh menggunakan kpt

Jika ingin, Anda dapat menggunakan kpt untuk menginstal sampel Hipster ke dalam cluster.

  1. Download contoh:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    hipster-demo
    
  2. Aktifkan injeksi file bantuan otomatis:

    kubectl label namespace default istio-injection=enabled
    
  3. Deploy sampel ke cluster:

    kubectl apply -f hipster-demo
    
  4. Temukan alamat IP eksternal aplikasi Anda:

    kubectl get service frontend-external
    
  5. Buka aplikasi pada browser Anda untuk mengonfirmasi penginstalan:

    http://EXTERNAL_IP/

    Setelah sampel berjalan, Anda dapat mempelajari fitur kemampuan observasi Anthos Service Mesh di Konsol Google Cloud. Perhatikan bahwa perlu waktu hingga 10 menit agar grafik topologi menampilkan layanan di mesh Anda.

Setelah selesai bereksplorasi, hapus contoh Hipster:

kubectl delete -f hipster-demo

Langkah selanjutnya