Halaman ini menjelaskan cara menjalankan skrip untuk menginstal Anthos Service Mesh versi 1.8.6 di cluster GKE untuk mesh yang berisi satu atau beberapa cluster yang ada dalam project Google Cloud yang sama.
Untuk mesh multi-cluster tempat cluster berada di project yang berbeda, lihat Penginstalan dan migrasi multi-cluster/multi-project untuk GKE.
Halaman ini ditujukan untuk penginstalan Anthos Service Mesh: baik penginstalan baru maupun penginstalan ulang versi yang sama dengan konfigurasi lain.
Meskipun menjalankan skrip untuk penginstalan baru mirip dengan penginstalan ulang versi yang sama, upgrade dan migrasi dari Istio, kasus penggunaan tersebut memerlukan perencanaan tambahan. Untuk informasinya, lihat referensi berikut:
Sebelum memulai
Sebelum memulai penginstalan, pastikan Anda memiliki:
- Meninjau persyaratan
- Memilih certificate authority (CA)
- Mendaftarkan cluster Anda
- Menginstal alat yang diperlukan
- Mendownload skrip
Skrip ini mengharuskan Anda memiliki izin yang diperlukan, atau menyertakan tanda --enable_all
atau --enable_gcp_iam_roles
agar skrip dapat mengaktifkan izin untuk Anda. Demikian pula, untuk mengizinkan skrip mengaktifkan API yang diperlukan dan memperbarui cluster Anda, tentukan flag --enable_all
atau tanda pengaktifan yang lebih terperinci.
Menginstal Anthos Service Mesh
Tetapkan opsi dan tentukan tanda untuk menjalankan skrip. Anda selalu menyertakan opsi berikut:
--project_id
,--cluster_name
,--cluster_location
, dan--mode install
. Jika ingin menggunakan Citadel sebagai CA, Anda harus menentukan opsi--ca
dan beberapa opsi lainnya, seperti yang dijelaskan dalam Menginstal dengan Citadel sebagai CA. Untuk deskripsi lengkap argumen skrip, lihat Opsi dan flag.Untuk menyelesaikan penyiapan Anthos Service Mesh, Anda perlu mengaktifkan injeksi bantuan otomatis dan men-deploy atau men-deploy ulang workload.
Bagian berikut memberikan contoh umum untuk menjalankan skrip. Lihat menu navigasi di sebelah kanan untuk melihat daftar contoh.
Contoh
Bagian ini menunjukkan contoh menjalankan skrip untuk penginstalan dengan beberapa argumen tambahan yang mungkin berguna bagi Anda. Lihat {i>navigation bar<i} (bilah navigasi) di sebelah kanan untuk daftar contoh.
Hanya validasi
Contoh berikut menunjukkan cara menjalankan skrip dengan opsi --only_validate
. Dengan opsi ini, skrip tidak membuat perubahan apa pun pada project atau cluster Anda, dan tidak menginstal Anthos Service Mesh. Saat Anda menentukan
--only_validate
,skrip akan gagal jika Anda menyertakan salah satu
tanda --enable_*
.
Skrip ini memvalidasi bahwa:
- Lingkungan Anda memiliki alat yang diperlukan.
- Anda memiliki izin yang diperlukan pada project yang ditentukan.
- Cluster memenuhi persyaratan minimum.
- Project ini telah mengaktifkan semua Google API yang diperlukan.
Secara default, skrip akan mendownload dan mengekstrak file penginstalan serta
mendownload
paket konfigurasi
asm
dari GitHub ke direktori sementara. Sebelum keluar,
skrip akan menghasilkan pesan yang memberikan nama direktori sementara.
Anda dapat menentukan direktori yang sudah ada untuk download dengan opsi --output_dir DIR_PATH
. Opsi --output_dir
memudahkan Anda menggunakan alat command line istioctl
jika Anda membutuhkannya. Selain itu, file konfigurasi untuk mengaktifkan fitur opsional
disertakan dalam direktori asm/istio/options
.
Jalankan perintah berikut untuk memvalidasi konfigurasi Anda dan mendownload
file penginstalan serta paket asm
ke direktori
OUTPUT_DIR
:
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --output_dir DIR_PATH \ --only_validate
Jika berhasil, skrip menghasilkan output berikut:
./install_asm \ install_asm: Setting up necessary files... install_asm: Creating temp directory... install_asm: Generating a new kubeconfig... install_asm: Checking installation tool dependencies... install_asm: Downloading ASM.. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 57.0M 100 57.0M 0 0 30.6M 0 0:00:01 0:00:01 --:--:-- 30.6M install_asm: Downloading ASM kpt package... fetching package /asm from https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages to asm install_asm: Checking for project PROJECT_ID... install_asm: Confirming cluster information... install_asm: Confirming node pool requirements... install_asm: Fetching/writing GCP credentials to kubeconfig file... Fetching cluster endpoint and auth data. kubeconfig entry generated for cluster-1. install_asm: Checking Istio installations... install_asm: Checking required APIs... install_asm: Successfully validated all requirements to install ASM from this computer.
Jika salah satu pengujian gagal dalam validasi, skrip akan menampilkan pesan error. Misalnya, jika project Anda tidak mengaktifkan semua Google API yang diperlukan, Anda akan melihat error berikut:
ERROR: One or more APIs are not enabled. Please enable them and retry, or run the script with the '--enable_gcp_apis' flag to allow the script to enable them on your behalf.
Jika Anda mendapatkan pesan error yang menyatakan bahwa skrip perlu dijalankan dengan tanda pengaktifan, Anda dapat menyertakan tanda tertentu dari pesan error atau tanda --enable_all
saat menjalankan skrip tanpa --only_validate
. Jika mau, Anda dapat mengupdate project dan membuat cluster sendiri sebelum menjalankan skrip seperti yang dijelaskan di bagian Menyiapkan project Anda dan Menyiapkan cluster dalam panduan penginstalan Multiproject.
Penginstalan
Perintah berikut menjalankan skrip untuk penginstalan baru, mengaktifkan
Mesh CA, yang merupakan CA default untuk penginstalan, sehingga Anda
tidak memerlukan opsi --ca
dalam kasus ini. Flag --enable_all
memungkinkan skrip untuk mengaktifkan Google API yang diperlukan, menetapkan izin Identity and Access Management, dan melakukan update yang diperlukan untuk cluster Anda, termasuk mengaktifkan GKE Workload Identity.
Jika berencana menggunakan Mesh CA, Anda dapat menggunakan kumpulan workload identity fleet sebagai alternatif untuk Workload identity GKE. Sebagai contoh, lihat Mengaktifkan Mesh CA dengan kumpulan workload identity fleet.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --enable_all
Anda mungkin juga ingin menyertakan hal-hal berikut:
--output_dir DIR_PATH
Jika Anda tidak menjalankan satu-satunya contoh validasi, sertakan opsi ini untuk menentukan direktori yang sudah ada tempat skrip mendownload paketasm
dan file penginstalan Anthos Service Mesh, yang berisiistioctl
, contoh, dan manifes. Jika tidak, skrip akan mendownload paket dan file penginstalanasm
ke direktori sementara.--enable-registration
Dengan flag ini, skrip dapat mendaftarkan cluster ke project tempat cluster berada. Jika flag ini tidak disertakan, ikuti langkah-langkah dalam Mendaftarkan cluster untuk mendaftarkan cluster Anda secara manual.
Penginstalan dengan Citadel sebagai CA
Bagian ini menjelaskan cara:
- Buat sertifikat dan kunci yang digunakan Anthos Service Mesh untuk menandatangani workload Anda.
- Jalankan skrip untuk penginstalan dan aktifkan Citadel sebagai CA.
Sebaiknya Anda menggunakan Citadel sebagai CA hanya saat Anda memerlukan CA kustom.
Untuk keamanan terbaik, sebaiknya pertahankan root CA offline dan gunakan CA subordinat untuk menerbitkan CA bagi setiap cluster. Untuk informasi selengkapnya, lihat Mencolokkan Sertifikat CA. Dalam konfigurasi ini, semua beban kerja di mesh layanan menggunakan root CA yang sama. Setiap CA Anthos Service Mesh menggunakan kunci dan sertifikat penandatanganan CA perantara, yang ditandatangani oleh root CA. Jika beberapa CA ada dalam satu mesh, hal ini akan menetapkan hierarki kepercayaan di antara CA. Anda dapat mengulangi langkah-langkah ini untuk menyediakan sertifikat dan kunci untuk sejumlah {i>certificate authority<i}.
Buat direktori untuk sertifikat dan kunci:
mkdir -p certs && \ pushd certs
Buat root certificate dan kunci:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Tindakan ini menghasilkan file berikut:
- root-cert.pem: root certificate
- root-key.pem: kunci root
- root-ca.conf: konfigurasi untuk openssl guna membuat root certificate
- root-cert.csr: CSR untuk root certificate
Buat kunci dan sertifikat perantara:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Tindakan ini menghasilkan file ini dalam direktori bernama
cluster1
:- ca-cert.pem: sertifikat perantara
- ca-key.pem: kunci perantara
- cert-chain.pem: rantai sertifikat yang digunakan istiod
- root-cert.pem: root certificate
Jika Anda melakukan langkah-langkah ini menggunakan komputer offline, salin direktori yang dihasilkan ke komputer tempat Anda menjalankan skrip.
Jalankan skrip dan sertakan file yang Anda buat sebelumnya untuk sertifikat dan kunci.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --enable_all
Penginstalan dengan file overlay
File overlay adalah file YAML yang berisi resource kustom (CR) IstioOperator
yang Anda teruskan ke install_asm
untuk mengonfigurasi bidang kontrol. Anda dapat mengganti konfigurasi bidang kontrol default dan mengaktifkan fitur opsional dengan meneruskan file YAML ke install_asm
. Anda dapat menambahkan lapisan pada lebih banyak overlay, dan setiap file overlay akan menggantikan konfigurasi pada lapisan sebelumnya.
Jika Anda menentukan lebih dari satu CR dalam file YAML, install_asm
akan membagi file tersebut menjadi beberapa file YAML sementara, satu untuk setiap CR. Skrip ini membagi CR menjadi beberapa file terpisah karena istioctl install
hanya menerapkan CR pertama dalam file YAML yang berisi lebih dari satu CR.
Contoh berikut melakukan penginstalan dan menyertakan file overlay untuk
menyesuaikan konfigurasi bidang kontrol. Dengan perintah berikut, ubah OVERLAY_FILE
menjadi nama file YAML.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --enable_all \ --custom_overlay OVERLAY_FILE
Penginstalan dengan opsi
Contoh berikut melakukan penginstalan dan menyertakan file egressgateways.yaml
dari paket asm
, yang memungkinkan gateway keluar. Perhatikan bahwa Anda tidak menyertakan ekstensi .yaml
. Skrip ini mengambil file untuk Anda sehingga Anda tidak perlu
mendownload paket asm
terlebih dahulu.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --enable_all \ --option egressgateways
Anda dapat menggunakan --option
untuk
mengaktifkan fitur opsional. Jika Anda
perlu memodifikasi salah satu file dalam direktori asm/istio/options
dalam paket asm
, download paket asm
, buat perubahan,
dan sertakan file tersebut menggunakan --custom_overlay
.
Untuk mendownload paket asm
ke direktori kerja saat ini agar Anda dapat
melakukan modifikasi pada file:
kpt pkg get \
https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.8-asm asm
Jika Anda menjalankan contoh Only validasi tempat Anda menentukan opsi --output_dir
, file konfigurasi akan berada di direktori output yang ditentukan di asm/istio/options
.
Aktifkan Mesh CA dengan fleet
Pratinjau Mesh CA dengan fleet terbatas untuk penginstalan baru Anthos Service Mesh di GKE. Upgrade dan migrasi tidak didukung selama pratinjau.
Contoh ini menunjukkan cara mengaktifkan Mesh CA untuk menggunakan kumpulan workload identity Fleet. Mesh CA dengan fleet memungkinkan Anda menggabungkan cluster di project Google Cloud yang terpisah ke satu domain kepercayaan yang sesuai dengan armada.
Untuk mengaktifkan Mesh CA dengan fleet:
Jika belum mendaftarkan cluster Anda, pastikan untuk menyertakan flag --enable-registration
seperti yang ditunjukkan pada contoh berikut:
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--enable_all \
--enable-registration \
--option hub-meshca
Perintah ini menjalankan skrip untuk penginstalan baru, mengonfigurasi project dan cluster Anda dengan opsi yang diperlukan oleh Anthos Service Mesh, mendaftarkan cluster ke project tempat cluster berada, dan mengonfigurasi Mesh CA untuk menggunakan kumpulan identitas workload fleet.
Men-deploy dan men-deploy ulang workload
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.
Penginstalan belum selesai sampai Anda mengaktifkan injeksi proxy sidecar otomatis (injeksi otomatis) dan memulai ulang Pod untuk semua workload yang sedang berjalan di cluster sebelum Anda menginstal Anthos Service Mesh.
Untuk mengaktifkan injeksi otomatis, beri label namespace dengan label revisi
yang ditetapkan pada istiod
saat Anda menginstal Anthos Service Mesh. Label revisi
digunakan oleh webhook injektor file bantuan untuk mengaitkan file bantuan yang dimasukkan dengan
revisi istiod
tertentu. Setelah menambahkan label, semua Pod yang ada di
namespace harus dimulai ulang agar sidecar dapat dimasukkan.
Sebelum men-deploy workload baru di namespace baru, pastikan untuk mengonfigurasi injeksi otomatis agar Anthos Service Mesh dapat memantau dan mengamankan traffic.
Untuk mengaktifkan injeksi otomatis:
Gunakan perintah berikut untuk menemukan label revisi di
istiod
: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-186-8-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-186-8,istio=istiod,pod-template-hash=5788d57586 istiod-asm-186-8-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-186-8,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-186-8
.Terapkan label revisi dan hapus label
istio-injection
jika ada. Dalam perintah berikut,NAMESPACE
adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis, danREVISION
adalah label revisi yang Anda catat pada langkah sebelumnya.kubectl label namespace NAMESPACE 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
.Jika beban kerja berjalan di cluster sebelum Anda menginstal Anthos Service Mesh, mulai ulang Pod untuk memicu injeksi ulang.
Cara memulai ulang Pod bergantung pada aplikasi dan lingkungan cluster tersebut. Misalnya, di lingkungan staging, Anda dapat menghapus semua Pod, yang menyebabkannya dimulai ulang. Namun, di lingkungan produksi, Anda mungkin memiliki proses yang menerapkan deployment berwarna biru-hijau, sehingga Anda dapat memulai ulang Pod dengan aman untuk menghindari gangguan traffic.
Anda dapat menggunakan
kubectl
untuk melakukan mulai ulang berkelanjutan:kubectl rollout restart deployment -n NAMESPACE
Pastikan bahwa Pod Anda telah dikonfigurasi untuk mengarah ke versi baru
istiod
.kubectl get pods -n NAMESPACE -l istio.io/rev=REVISION
Melihat dasbor 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.