Panduan ini menjelaskan cara menginstal Anthos Service Mesh 1.5.10-asm.2 di cluster GKE Google Cloud baru menggunakan antarmuka command line (CLI) GKE Enterprise.
Penginstalan ini mengaktifkan fitur berikut:
- Telemetri mesh.
- Keamanan mesh, termasuk certificate authority Anthos Service Mesh (Mesh CA).
- Fitur Default yang didukung tercantum di halaman Fitur yang didukung.
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.
Saat ini, GKE Enterprise CLI tidak mendukung penginstalan pada GKE di VMware. Untuk menginstal Anthos Service Mesh di GKE di VMware, lihat Menginstal Anthos Service Mesh secara lokal.
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda sudah memiliki:
Sebelum memulai penginstalan:
- Menyiapkan lingkungan Anda
- Instal GKE Enterprise CLI.
- Tinjau persyaratan dan batasan berikut.
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
Dapatkan project ID project tempat cluster akan dibuat:
gcloud
gcloud projects list
Konsol
Di konsol Google Cloud, buka halaman Dasbor:
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.
Buat variabel lingkungan untuk project ID:
export PROJECT_ID=
YOUR_PROJECT_ID
Tetapkan project ID default untuk Google Cloud CLI:
gcloud config set project ${PROJECT_ID}
Pilih zona atau region untuk cluster.
Jika Anda akan membuat cluster zona tunggal, jalankan perintah berikut untuk mendapatkan daftar zona GCP yang tersedia:
gcloud compute zones list
Jika Anda akan membuat cluster regional, jalankan perintah berikut untuk mendapatkan daftar region yang tersedia:
gcloud compute regions list
Buat variabel lingkungan berikut:
Tetapkan nama cluster:
export CLUSTER_NAME=YOUR_CLUSTER_NAME
Nama cluster hanya boleh berisi karakter alfanumerik dengan huruf kecil dan '-', harus diawali dengan huruf dan diakhiri dengan alfanumerik, serta tidak boleh lebih dari 40 karakter.
Tetapkan
CLUSTER_LOCATION
ke zona cluster atau region cluster Anda:export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION
Tetapkan zona atau region default untuk Google Cloud CLI.
Untuk cluster zona tunggal, tetapkan zona default:
gcloud config set compute/zone ${CLUSTER_LOCATION}
Untuk cluster regional, tetapkan region default:
gcloud config set compute/region ${CLUSTER_LOCATION}
Mempersiapkan file konfigurasi resource
Jika ingin, buat direktori baru untuk file konfigurasi resource paket Anthos Service Mesh. Jika ingin menyiapkan lebih dari satu cluster, Anda dapat menggunakan nama cluster tersebut sebagai nama direktori.
Ubah ke direktori tempat Anda ingin mendownload paket Anthos Service Mesh.
Download paket Anthos Service Mesh ke direktori kerja saat ini:
kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.5-asm .
Tetapkan nama cluster:
kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
Secara opsional, sesuaikan file konfigurasi resource menggunakan penyetel
kpt
. Secara default, penyetel ini menggunakan default untukgcloud config
. Jika Anda menetapkan defaultgcloud config
, atau jika ingin mengubah nilainya, jalankan penyetel berikut:Tetapkan ID project:
kpt cfg set asm gcloud.core.project ${PROJECT_ID}
Tetapkan zona atau region default:
kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
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.
Menetapkan nilai opsional
Dengan GKE Enterprise CLI, Anda juga dapat menetapkan nilai lain. Untuk melihat daftar penyetel yang tersedia:
kpt cfg list-setters asm/
Outputnya mirip dengan hal berikut ini:
NAME VALUE SET BY DESCRIPTION COUNT anthos.servicemesh.hub your_anthos_hub 1 anthos.servicemesh.tag your_anthos_tag 1 gcloud.compute.location your_zone_or_region 8 gcloud.compute.network default 1 gcloud.compute.subnetwork default 1 gcloud.container.cluster your_cluster_name 9 gcloud.container.cluster.releaseChannel REGULAR 1 gcloud.container.nodepool.max-nodes 4 1 gcloud.core.project your_project_ID kpt 21 gcloud.project.projectNumber your_project_number kpt 4
Misalnya, untuk mengubah saluran rilis dari default, REGULAR
, ganti YOUR_CHANNEL
dengan STABLE
atau RAPID
dalam perintah berikut:
kpt cfg set asm gcloud.container.cluster.releaseChannel YOUR_CHANNEL
Untuk deskripsi setiap saluran, lihat Saluran yang tersedia.
Mengubah jenis mesin atau jumlah node
GKE Enterprise CLI membuat cluster baru dengan jumlah node dan jenis mesin yang diperlukan oleh Anthos Service Mesh. Nilai ini ditentukan
dalam
nodepool.yaml.
Anda dapat mengubah salinan lokal nodepool.yaml
untuk menentukan jenis mesin lain asalkan memiliki setidaknya 4 vCPU.
Anda dapat meningkatkan jumlah node sesuai kebutuhan untuk persyaratan sistem dengan penyetel berikut:
kpt cfg set asm gcloud.container.nodepool.max-nodes NUMBER_OF_NODES
Menginstal Anthos Service Mesh di cluster baru
GKE Enterprise CLI memungkinkan opsi berikut di cluster, yang diperlukan oleh Anthos Service Mesh:
Menambahkan label
mesh_id
ke cluster dalam formatproj-PROJECT_NUMBER
, denganPROJECT_NUMBER
sebagai nomor project project tempat cluster akan dibuat. Labelmesh_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 membuat cluster baru dan menginstal Anthos Service Mesh menggunakan file konfigurasi Anthos Service Mesh yang telah Anda sesuaikan sebelumnya:
gcloud beta anthos apply asm
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:
Pilih nama untuk akun layanan dan buat variabel lingkungan untuk akun tersebut:
export SERVICE_ACCOUNT_NAME=SERVICE_ACCOUNT_NAME
Buat akun layanan:
gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME}
Tampilkan daftar semua akun layanan project untuk mengonfirmasi bahwa akun layanan telah dibuat:
gcloud iam service-accounts list
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"
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
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.
Sebelum men-deploy workload, 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.
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.
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:
Di konsol Google Cloud, buka halaman Monitoring:
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.
Download contoh:
kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ hipster-demo
Aktifkan injeksi file bantuan otomatis:
kubectl label namespace default istio-injection=enabled
Deploy sampel ke cluster:
kubectl apply -f hipster-demo
Temukan alamat IP eksternal aplikasi Anda:
kubectl get service frontend-external
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
Pelajari lebih lanjut resource konfigurasi yang digunakan oleh Anthos CLI: