Menginstal Anthos Service Mesh di GKE

Panduan ini menjelaskan cara menginstal, memigrasikan, atau mengupgrade ke Anthos Service Mesh versi 1.7.8 untuk mesh yang berisi satu atau beberapa cluster GKE yang berada dalam project yang sama. Anda menggunakan skrip yang disediakan Google, yang mengonfigurasi project dan cluster Anda, lalu menginstal Anthos Service Mesh.

Anda dapat menggunakan panduan ini dan skrip untuk kasus penggunaan berikut:

  • Penginstalan baru Anthos Service Mesh.

  • Mengupgrade dari Anthos Service Mesh versi patch 1.6 atau 1.7. Upgrade dari versi sebelumnya tidak didukung.

  • Bermigrasi dari Istio 1.6 atau 1.7 open source ke Anthos Service Mesh. Migrasi dari Istio versi sebelumnya tidak didukung.

  • Melakukan migrasi dari add-on Istio versi 1.6 di GKE ke Anthos Service Mesh. Sebelum dapat melakukan migrasi ke Anthos Service Mesh, Anda harus Mengupgrade ke Istio 1.6 dengan Operator. Untuk mengetahui langkah-langkah migrasi lengkap dari add-on ini, lihat Bermigrasi ke Anthos Service Mesh dalam dokumentasi Istio di GKE.

Untuk mesh multi-cluster tempat cluster berada di project yang berbeda, lihat Penginstalan dan migrasi multi-cluster/multi-project untuk GKE.

Sebelum memulai

Tutorial ini mengasumsikan bahwa Anda memiliki hal berikut:

Jika Anda bermigrasi dari Istio, pastikan untuk meninjau Bersiap bermigrasi dari Istio.

Perbedaan Anthos dan Anthos Service Mesh

  • Pelanggan GKE Enterprise, pastikan untuk mengaktifkan GKE Enterprise API.

    Mengaktifkan API

  • Jika bukan pelanggan GKE Enterprise, Anda masih dapat menginstal Anthos Service Mesh, tetapi fitur dan elemen UI tertentu di Google Cloud Console hanya tersedia untuk pelanggan GKE Enterprise. Untuk mengetahui informasi tentang hal yang tersedia bagi pelanggan dan non-pelanggan, lihat perbedaan UI GKE Enterprise dan Anthos Service Mesh. Untuk mengetahui informasi tentang harga Anthos Service Mesh bagi non-pelanggan, lihat Harga.

Skrip ini memungkinkan semua Google API yang diperlukan lainnya untuk Anda.

Persyaratan

  • Cluster GKE Anda harus memenuhi persyaratan berikut:

    • Jenis mesin yang memiliki minimal empat vCPU, seperti e2-standard-4. Jika jenis mesin untuk cluster Anda tidak memiliki minimal empat vCPU, ubah jenis mesin seperti yang dijelaskan dalam Memigrasikan workload ke berbagai jenis mesin.

    • Jumlah minimum node bergantung pada jenis mesin Anda. Anthos Service Mesh memerlukan setidaknya delapan vCPU. Jika jenis mesin memiliki empat vCPU, cluster Anda harus memiliki setidaknya dua node. Jika jenis mesin memiliki delapan vCPU, cluster hanya memerlukan satu node. Jika Anda perlu menambahkan node, lihat Mengubah ukuran cluster.

    • Skrip ini akan mengaktifkan Workload Identity di cluster Anda. Workload Identity adalah metode panggilan yang direkomendasikan untuk memanggil Google API. Jika Workload Identity diaktifkan, panggilan dari workload Anda ke Google API akan diamankan, seperti yang dijelaskan dalam Batasan Workload Identity.

    • Opsional, tetapi direkomendasikan, daftarkan cluster di saluran rilis. Sebaiknya Anda mendaftar ke saluran rilis reguler karena saluran lainnya mungkin didasarkan pada versi GKE yang tidak didukung dengan Anthos Service Mesh 1.7.8. Untuk mengetahui informasi selengkapnya, lihat Lingkungan yang didukung. Ikuti petunjuk dalam Mendaftarkan cluster yang ada di saluran rilis jika Anda memiliki versi GKE statis.

  • Agar 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 hubung. Untuk informasi selengkapnya, lihat Penamaan port layanan.

  • Jika menginstal Anthos Service Mesh di cluster pribadi, Anda harus membuka port 15017 di firewall agar webhook digunakan dengan injeksi file bantuan otomatis agar berfungsi dengan benar. Untuk mengetahui informasi selengkapnya, lihat Membuka port di cluster pribadi.

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

  • Untuk migrasi, istiod harus diinstal di namespace istio-system, yang biasanya seperti itu.

Pembatasan

Project Google Cloud hanya dapat memiliki satu mesh yang terkait dengannya.

Memilih certificate authority

Untuk penginstalan dan migrasi baru, Anda dapat menggunakan certificate authority Anthos Service Mesh (Mesh CA) atau Citadel (kini tergabung dalam istiod) sebagai certificate authority (CA) untuk menerbitkan sertifikat TLS (mTLS).

Kami biasanya merekomendasikan penggunaan Mesh CA karena alasan berikut:

  • Mesh CA adalah layanan yang sangat andal dan skalabel, yang dioptimalkan untuk workload yang diskalakan secara dinamis di Google Cloud.
  • Dengan Mesh CA, Google mengelola keamanan dan ketersediaan backend CA.
  • Mesh CA memungkinkan Anda mengandalkan satu root kepercayaan di seluruh cluster.
Untuk penginstalan baru Anthos Service Mesh, secara default, skrip akan mengaktifkan Mesh CA.

Namun, ada kasus saat Anda mungkin ingin mempertimbangkan untuk menggunakan Citadel, seperti berikut:

  • Jika Anda memiliki CA kustom.
  • Jika Anda bermigrasi dari Istio.

    Jika Anda memilih Citadel, periode nonaktif tidak akan terjadi karena traffic mTLS tidak terganggu selama migrasi. Jika memilih Mesh CA, Anda harus menjadwalkan periode nonaktif untuk migrasi karena root kepercayaan berubah dari Citadel ke Mesh CA. Untuk menyelesaikan migrasi ke root of trust CA Mesh, Anda harus memulai ulang semua Pod di semua namespace. Selama proses ini, Pod lama tidak dapat membuat koneksi mTLS dengan Pod baru.

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

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

Mempersiapkan migrasi atau upgrade

Jika Anda bermigrasi dari Istio, pastikan untuk meninjau Bersiap bermigrasi dari Istio.

Jika menyesuaikan penginstalan sebelumnya, Anda memerlukan penyesuaian yang sama saat melakukan migrasi atau mengupgrade ke Anthos Service Mesh. Jika Anda menyesuaikan penginstalan dengan menambahkan tanda --set values, sebaiknya tambahkan setelan tersebut ke file konfigurasi IstioOperator. Anda menentukan file konfigurasi menggunakan --custom_overlay dengan file konfigurasi saat menjalankan skrip.

Menginstal alat yang diperlukan

Anda dapat menjalankan skrip ini di Cloud Shell atau di mesin lokal yang menjalankan Linux.

Untuk menjalankan skrip secara lokal:

  1. Pastikan Anda telah menginstal alat berikut:

  2. Autentikasi dengan gcloud CLI:

    gcloud auth login
    
  3. Update komponen:

    gcloud components update
    
  4. Pastikan git ada di jalur Anda agar kpt dapat menemukannya.

  5. Download versi kpt yang diperlukan.

Menjalankan skrip

Bagian ini menjelaskan cara mendownload skrip, menetapkan parameter yang diperlukan dan opsional, serta menjalankan skrip. Untuk mendapatkan penjelasan mendetail tentang fungsi skrip, lihat Memahami skrip.

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

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.7 > install_asm
    

    Meskipun Anda mendownload skrip dari lokasi Cloud Source Repositories yang aman, skrip tersebut juga tersedia di GitHub di repositori anthos-service-mesh-packages sehingga Anda dapat melihat fungsinya sebelum mendownloadnya. Versi skrip install_asm di cabang release-1.7-asm menginstal Anthos Service Mesh 1.7.8.

  2. Download file SHA-256 ke direktori kerja saat ini:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.7.sha256 > install_asm.sha256
    
  3. Dengan kedua file berada dalam direktori yang sama, verifikasi download:

    sha256sum -c --ignore-missing install_asm.sha256
    

    Jika verifikasi berhasil, perintah akan menghasilkan: install_asm: OK

    Untuk kompatibilitas, file install_asm.sha256 menyertakan checksum dua kali untuk memungkinkan nama versi skrip apa pun diganti menjadi install_asm. Jika Anda mendapatkan error bahwa --ignore-missing tidak ada, jalankan kembali perintah sebelumnya tanpa flag --ignore-missing.

  4. Jadikan skrip dapat dieksekusi:

    chmod +x install_asm
    
  5. Tetapkan opsi dan tentukan tanda untuk menjalankan skrip. Anda selalu menyertakan opsi berikut: project_id, cluster_name, cluster_location, dan mode. Bergantung pada mode, Anda mungkin perlu menyertakan opsi ca.

    • Opsi project_id, cluster_name, dan cluster_location mengidentifikasi cluster tempat untuk menginstal Anthos Service Mesh.
    • mode adalah install, migrate, atau upgrade.
    • ca menentukan Certificate Authority ke mesh_ca atau citadel.

    Bagian berikut memberikan contoh umum untuk menjalankan skrip. Untuk deskripsi lengkap tentang argumen skrip, lihat Opsi dan flag.

  6. Untuk menyelesaikan penyiapan Anthos Service Mesh, Anda harus mengaktifkan injeksi file bantuan otomatis dan men-deploy atau men-deploy ulang workload.

Contoh

Bagian ini menunjukkan contoh menjalankan skrip di setiap mode dan beberapa argumen tambahan yang mungkin berguna bagi Anda. Lihat menu navigasi di sebelah kanan untuk melihat daftar contoh.

Hanya validasi

Contoh berikut menunjukkan cara menjalankan skrip dengan opsi --only_validate. Dengan opsi ini, skrip tidak membuat perubahan apa pun pada cluster Anda, dan tidak menginstal Anthos Service Mesh. 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 memerlukannya. Selain itu, file konfigurasi untuk mengaktifkan fitur opsional disertakan dalam direktori asm/istio/options.

Jalankan perintah berikut untuk memvalidasi konfigurasi Anda serta mendownload file penginstalan dan 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 akan 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 belum 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
re-run the script with the '--enable_apis' flag to allow the script to enable
them on your behalf.

Penginstalan

Perintah berikut menjalankan skrip untuk penginstalan baru, mengaktifkan Mesh CA (CA default untuk penginstalan baru, sehingga Anda tidak memerlukan opsi ca dalam kasus ini), dan mengizinkan skrip untuk mengaktifkan Google API yang diperlukan.

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_apis

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 jika Anda memerlukan CA kustom.

Untuk keamanan terbaik, sebaiknya pertahankan root CA offline dan gunakan CA subordinate untuk menerbitkan CA bagi setiap cluster. Untuk informasi selengkapnya, lihat Mencolokkan Sertifikat CA. Dalam konfigurasi ini, semua beban kerja di mesh layanan menggunakan CA root yang sama. Setiap CA Anthos Service Mesh menggunakan kunci dan sertifikat penandatanganan CA perantara, yang ditandatangani oleh root CA. Jika beberapa CA berada dalam mesh, hal ini akan menetapkan hierarki kepercayaan di antara CA. Anda dapat mengulangi langkah-langkah ini untuk menyediakan sertifikat dan kunci untuk sejumlah otoritas sertifikat.

  1. Buat direktori untuk sertifikat dan kunci:

    mkdir -p certs && \
    pushd certs
  2. 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
  3. 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.

  4. 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 mengganti 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. Pada 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_apis \
  --custom_overlay OVERLAY_FILE

Penginstalan dengan opsi

Contoh berikut melakukan penginstalan dan menyertakan file egressgateways.yaml dari paket asm, yang mengaktifkan gateway keluar. Perhatikan bahwa Anda tidak menyertakan ekstensi .yaml. Skrip ini akan mengambil file 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_apis \
  --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 sehingga Anda dapat melakukan modifikasi pada file:

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

Jika Anda menjalankan contoh Only validation tempat Anda menetapkan opsi --output_dir, file konfigurasi akan berada di direktori output yang ditentukan di bagian asm/istio/options.

Migrasi dari Istio

Jika bermigrasi dari Istio dengan Citadel sebagai CA, Anda dapat terus menggunakan Citadel setelah bermigrasi ke Anthos Service Mesh. Perintah berikut menjalankan skrip untuk migrasi dan mengaktifkan Citadel sebagai CA. Migrasi ini hanya men-deploy bidang kontrol. Hal ini tidak mengubah CA root dan tidak mengganggu beban kerja Anda yang ada.

./install_asm \
  -p PROJECT_ID \
  -n CLUSTER_NAME \
  -l CLUSTER_LOCATION \
  -m migrate \
  -c citadel \
  --enable_apis

Bermigrasi 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 mengganti 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 migrasi dan menyertakan file overlay untuk menyesuaikan konfigurasi bidang kontrol. Pada perintah berikut, ubah OVERLAY_FILE menjadi nama file YAML.

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode migrate \
  --ca citadel \
  --enable_all \
  --custom_overlay OVERLAY_FILE

Mengupgrade

Perintah berikut menjalankan skrip untuk melakukan upgrade. Skrip ini tidak memungkinkan Anda beralih ke CA lain, jadi Anda tidak perlu menyertakan opsi ca.

./install_asm \
  -p PROJECT_ID \
  -n CLUSTER_NAME \
  -l CLUSTER_LOCATION \
  -m upgrade \
  --enable_apis

Meningkatkan versi 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 mengganti 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 upgrade dan menyertakan file overlay untuk menyesuaikan konfigurasi bidang kontrol. Pada perintah berikut, ubah OVERLAY_FILE menjadi nama file YAML.

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode upgrade \
  --enable_all \
  --custom_overlay OVERLAY_FILE

Opsi dan tanda

Bagian ini menjelaskan argumen yang tersedia untuk skrip.

Opsi

-p|--project_id CLUSTER_PROJECT_ID
Project ID tempat cluster dibuat.
-n|--cluster_name CLUSTER_NAME
Nama cluster.
-l|--cluster_location CLUSTER_LOCATION
Zona (untuk cluster zona tunggal) atau region (untuk cluster regional) tempat cluster dibuat.
-m|--mode {install|migrate|upgrade}
Masukkan install jika Anda akan menginstal Anthos Service Mesh. Masukkan migrate jika Anda bermigrasi dari Istio. Masukkan upgrade untuk mengupgrade penginstalan Anthos Service Mesh yang sudah ada ke versi baru.
-c|--ca {mesh_ca|citadel}
Untuk penginstalan, jika ingin menggunakan Mesh CA, Anda tidak perlu menyertakan opsi ini karena skrip ditetapkan secara default ke Mesh CA. Untuk upgrade, Anda tidak perlu menyertakan opsi ini karena skrip tidak mengizinkan Anda mengubah CA. Untuk migrasi, tentukan citadel atau mesh_ca. Jika Anda dapat menjadwalkan periode nonaktif untuk migrasi, sebaiknya gunakan mesh_ca. Untuk mengetahui informasi selengkapnya tentang CA yang akan digunakan, lihat Memilih certificate authority. Untuk opsi tambahan yang harus Anda tentukan saat menggunakan Citadel, lihat Opsi untuk sertifikat kustom untuk Citadel.
--co|--custom_overlay YAML_FILE
Nama file YAML resource kustom (CR) IstioOperator untuk mengaktifkan fitur yang tidak diaktifkan secara default. Skrip harus dapat menemukan file YAML, sehingga file tersebut harus berada di direktori yang sama dengan skrip, atau Anda dapat menentukan jalur relatif. Untuk menambahkan beberapa file, tentukan --co|--custom_overlay dan nama file, misalnya: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
-o|--option OPTION_FILE
Nama file YAML dari paket anthos-service-mesh yang berisi CR IstioOperator untuk mengaktifkan fitur opsional. Saat menyertakan salah satu file ini, Anda tidak perlu mendownload paket anthos-service-mesh terlebih dahulu, dan tidak menetapkan ekstensi .yaml. Jika Anda perlu mengubah salah satu file, download paket anthos-service-mesh, buat perubahan, dan gunakan opsi --custom_overlay. Untuk menambahkan beberapa file, tentukan -o|--option dan nama file, misalnya: -o option_file1 -o option_file2 -o option_file3
-s|--service_account ACCOUNT
Nama akun layanan yang digunakan untuk menginstal Anthos Service Mesh. Jika tidak ditentukan, akun pengguna aktif dalam konfigurasi gcloud saat ini akan digunakan. Jika Anda perlu mengubah akun pengguna aktif, jalankan gcloud auth login.
-k|--key_file FILE_PATH
File kunci untuk akun layanan. Hapus opsi ini jika Anda tidak menggunakan akun layanan.
-D|--output_dir DIR_PATH
Jika tidak ditentukan, skrip akan membuat direktori sementara tempat mendownload file dan konfigurasi yang diperlukan untuk menginstal Anthos Service Mesh. Tentukan flag --output-dir untuk menentukan direktori yang sudah ada yang akan digunakan. Setelah selesai, direktori yang ditentukan akan berisi asm dan subdirektori istio-1.7.8-asm.10. Direktori asm berisi konfigurasi untuk penginstalan. Direktori istio-1.7.8-asm.10 berisi konten yang diekstrak dari file penginstalan, yang berisi istioctl, sampel, dan manifes.

Flag

-e|--enable_apis
Izinkan skrip untuk mengaktifkan Google API yang diperlukan Anthos Service Mesh. Tanpa flag ini, skrip akan keluar jika API yang diperlukan belum diaktifkan. Untuk daftar API yang diaktifkan skrip, lihat set_up_project.
-v|--verbose
Mencetak perintah sebelum dan sesudah eksekusi.
--dry_run
Mencetak perintah, tetapi tidak menjalankannya.
--only_validate
Jalankan validasi, tetapi jangan instal Anthos Service Mesh.
--print_config
Alih-alih menginstal Anthos Service Mesh, cetak semua YAML yang telah dikompilasi ke output standar (stdout). Semua output lainnya ditulis ke error standar (stderr), meskipun biasanya diteruskan ke stdout. Skrip ini melewati semua validasi dan penyiapan saat Anda menentukan flag ini.
--disable_canonical_service
Secara default, skrip men-deploy pengontrol Layanan Kanonis ke cluster Anda. Jika Anda tidak ingin skrip men-deploy pengontrol, tentukan --disable_canonical_service. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan pengontrol Layanan Kanonis.
-h|--help
Tampilkan pesan bantuan yang menjelaskan opsi serta tanda, lalu keluar.
--version
Cetak versi install_asm dan keluar. Jika perintah tidak menghasilkan versi, download versi terbaru install_asm_1.7.

Opsi untuk sertifikat kustom untuk Citadel

Jika Anda menentukan citadel dan menggunakan CA kustom, sertakan opsi berikut:

  • --ca_cert FILE_PATH: Intermediate certificate
  • --ca_key FILE_PATH: Kunci untuk intermediate certificate
  • --root_cert FILE_PATH: Root certificate
  • --cert_chain FILE_PATH: Rantai sertifikat

Untuk informasi selengkapnya, lihat Menambahkan Sertifikat CA yang sudah ada.

Men-deploy dan men-deploy ulang workload

Penginstalan belum selesai sampai Anda mengaktifkan injeksi proxy sidecar otomatis (injeksi otomatis).

  • Untuk penginstalan baru, Anda harus mengaktifkan injeksi otomatis dan memulai ulang Pod untuk workload apa pun yang sedang berjalan di cluster sebelum Anda menginstal Anthos Service Mesh.

  • Migrasi dan upgrade mengikuti proses upgrade bidang kontrol ganda (disebut sebagai "upgrade canary" dalam dokumentasi Istio). Dengan upgrade bidang kontrol ganda, skrip menginstal versi baru istiod bersama dengan istiod yang ada. Kemudian, Anda memindahkan beberapa beban kerja ke versi baru. Proses ini memungkinkan Anda memantau efek versi baru dengan sebagian kecil beban kerja sebelum memigrasikan semua traffic ke versi baru.

  • Sebelum men-deploy workload baru, pastikan untuk mengaktifkan injeksi otomatis agar Anthos Service Mesh dapat memantau dan mengamankan traffic.

Untuk mengaktifkan injeksi otomatis, dapatkan label revisi yang telah diterapkan skrip ke istiod dan beri label namespace Anda dengan label revisi. Bagian berikut memberikan detailnya.

Mendapatkan label revisi

Skrip ini menambahkan label revisi dalam format istio.io/rev=asm-178-10 ke istiod. Untuk mengaktifkan injeksi otomatis, tambahkan label revisi yang cocok ke namespace Anda. 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 dalam namespace harus dimulai ulang agar file bantuan dapat dimasukkan.

  1. Setel konteks saat ini untuk kubectl:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --project=PROJECT_ID
    
  2. Tampilkan label di istiod untuk mendapatkan label revisi yang ditetapkan oleh skrip:

    kubectl -n istio-system get pods -l app=istiod --show-labels
    

    Output dari perintah ini mirip dengan berikut ini. Perhatikan bahwa output untuk penginstalan, migrasi, dan upgrade baru sedikit berbeda. Contoh output berikut adalah dari migrasi.

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-7744bc8dd7-qhlss             1/1     Running   0          49m   app=istiod,istio.io/rev=default,istio=pilot,pod-template-hash=7744bc8dd7
    istiod-asm-178-10-85d86774f7-flrt2   1/1     Running   0          26m   app=istiod,istio.io/rev=asm-178-10,istio=istiod,pod-template-hash=85d86774f7
    istiod-asm-178-10-85d86774f7-tcwtn   1/1     Running   0          26m   app=istiod,istio.io/rev=asm-178-10,istio=istiod,pod-template-hash=85d86774f7

    Pada output, di bawah kolom LABELS, catat nilai label revisi istiod, yang mengikuti awalan istio.io/rev=. Dalam contoh ini, nilainya adalah asm-178-10, tetapi Anda mungkin memiliki nilai yang berbeda.

    Untuk upgrade dan migrasi, catat juga nilai dalam label revisi untuk versi istiod lama. Anda memerlukan metode ini untuk menghapus versi lama istiod saat menyelesaikan migrasi atau upgrade. Dalam contoh output, nilai dalam label revisi untuk istiod versi lama adalah default, tetapi Anda mungkin memiliki nilai yang berbeda.

Mengaktifkan injeksi otomatis

Ikuti langkah-langkah berikut untuk penginstalan, migrasi, dan upgrade baru guna mengaktifkan injeksi otomatis.

  1. Dapatkan nilai di label revisi untuk istiod.

  2. Tambahkan label revisi ke namespace dan hapus label istio-injection. Dalam perintah berikut, ubah REVISION menjadi nilai yang cocok dengan revisi pada istiod.

    kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
  3. Mulai ulang Pod untuk memicu injeksi ulang.

    kubectl rollout restart deployment -n NAMESPACE
  4. Pastikan Pod Anda dikonfigurasi untuk mengarah ke versi baru istiod.

    kubectl get pods -n NAMESPACE -l istio.io/rev=REVISION
  5. Uji aplikasi Anda untuk memverifikasi bahwa beban kerja berfungsi dengan benar.

  6. Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah untuk memberi label namespace dan memulai ulang Pod.

Untuk migrasi dan upgrade:

Selesaikan transisi

Untuk migrasi dan upgrade, Anda harus menghapus istiod versi lama. Jika Anda yakin aplikasi Anda berfungsi seperti yang diharapkan, hapus bidang kontrol lama untuk menyelesaikan transisi ke versi baru.

  1. Dapatkan nilai di label revisi untuk istiod versi lama.

  2. Hapus versi lama istiod. Dalam perintah berikut, ganti OLD_REVISION dengan revisi dari langkah sebelumnya.

    kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION  -n istio-system --ignore-not-found=true
    

Rollback ke versi sebelumnya

Untuk migrasi dan upgrade, jika Anda mengalami masalah saat menguji aplikasi dengan versi baru istiod, ikuti langkah-langkah berikut untuk melakukan rollback ke versi sebelumnya:

  1. Beri label ulang namespace Anda untuk mengaktifkan injeksi otomatis dengan versi istiod sebelumnya. Perintah yang digunakan bergantung pada apakah Anda menggunakan label revisi atau istio-injection=enabled dengan versi sebelumnya.

    • Jika Anda menggunakan label revisi untuk injeksi otomatis:

      kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
      
    • Jika Anda menggunakan istio-injection=enabled:

      kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
      
  2. Mulai ulang Pod untuk memicu injeksi ulang sehingga proxy memiliki versi sebelumnya:

    kubectl rollout restart deployment -n NAMESPACE
  3. Deploy ulang istio-ingressgateway versi sebelumnya:

    kubectl -n istio-system rollout undo deploy istio-ingressgateway
    
  4. Hapus istiod baru:

    kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
    
  5. Jika Anda tidak menyertakan flag --disable_canonical_service, skrip akan mengaktifkan pengontrol Layanan Kanonis. Ikuti langkah-langkah di bagian Mengaktifkan dan menonaktifkan pengontrol Layanan Kanonis untuk menonaktifkannya.

Menginstal ulang versi yang sama

Skrip install_asm memanggil istioctl install guna men-deploy komponen bidang kontrol Anthos Service Mesh (istiod dan istio-ingressgateway) untuk penginstalan, upgrade, dan migrasi Istio. Karena skrip menggunakan istioctl install, jika Anda perlu menyesuaikan Anthos Service Mesh untuk mengaktifkan fitur opsional, Anda harus menginstal ulang bidang kontrol dengan konfigurasi baru.

Perubahan telah dilakukan pada skrip install_asm sehingga Anda dapat menginstal ulang versi Anthos Service Mesh yang sama. Saat Anda menginstal ulang versi yang sama untuk mengaktifkan fitur opsional, konfigurasi bidang kontrol yang ada akan ditimpa. Oleh karena itu, jika menyesuaikan penginstalan yang ada, Anda harus menyertakan opsi --option dan/atau --custom_overlay yang sama dari penginstalan sebelumnya serta opsi --option dan/atau --custom_overlay untuk fitur baru yang ingin diaktifkan.

Perhatikan bahwa jika Anda mengaktifkan Cloud Trace atau mengubah setelan pelacakan, Anda juga perlu men-deploy ulang beban kerja sehingga proxy file bantuan dimasukkan ulang dengan konfigurasi bidang kontrol yang diperbarui.

Saat menginstal ulang versi yang sama, Anda akan menentukan --mode install seperti untuk penginstalan. Untuk mengetahui informasi tentang penginstalan menggunakan skrip, lihat Menginstal Anthos Service Mesh.

Jika Anda menentukan lebih dari satu resource kustom (CR) IstioOperator 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.

Melihat dasbor Anthos Service Mesh

Setelah workload Anda 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, Project Owner harus memberi pengguna peran Project Editor atau Viewer, atau peran yang lebih ketat seperti 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 tersebut 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, tempat metrik tersebut 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.

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 serta workload-nya, termasuk cluster di luar Google Cloud.

Baca bagian Mendaftarkan cluster ke fleet untuk mengetahui informasi tentang cara mendaftarkan cluster Anda.

Memahami skrip

Meskipun Anda mendownload skrip dari lokasi Cloud Source Repositories yang aman, skrip tersebut juga tersedia di GitHub, sehingga Anda dapat melihat fungsinya sebelum mendownloadnya. Skrip ini memvalidasi bahwa cluster Anda memenuhi persyaratan, dan mengotomatiskan semua langkah yang akan Anda lakukan secara manual di Menginstal Anthos Service Mesh di GKE.

Dengan Anthos Service Mesh 1.7.8, Anda menggunakan versi skrip install_asm di cabang release-1.7-asm. Untuk mengetahui penjelasan tentang proses pembuatan versi dan rilis, lihat Pembuatan Versi/Rilis.

validate_args dan validate_dependencies

validate_args() {
  if [[ "${MODE}" == "install" && -z "${CA}" ]]; then
    CA="mesh_ca"
  fi

  local MISSING_ARGS=0
  while read -r REQUIRED_ARG; do
    if [[ -z "${!REQUIRED_ARG}" ]]; then
      MISSING_ARGS=1
      warn "Missing value for ${REQUIRED_ARG}"
    fi
    readonly "${REQUIRED_ARG}"
  done <<EOF
validate_dependencies() {
  validate_cli_dependencies
  if [[ "${PRINT_CONFIG}" -eq 1 ]]; then
    return 0
  fi

  validate_gcp_resources
  # configure kubectl does have side effects but we've generated a temprorary
  # kubeconfig so we're not breaking the promise that --only_validate gives
  configure_kubectl
  validate_k8s
  validate_expected_control_plane

  if [[ "${MODE}" = "migrate" ]]; then
    validate_istio_version
  elif [[ "${MODE}" = "upgrade" ]]; then
    validate_asm_version
    validate_ca_consistency
  fi

  if [[ "${ENABLE_APIS}" -eq 0 || "${ONLY_VALIDATE}" -eq 1 ]]; then
    exit_if_apis_not_enabled
  fi
}

Fungsi validate_args dan validate_dependencies:

  • Pastikan semua alat yang diperlukan telah diinstal.
  • Pastikan project ID, nama cluster, dan lokasi cluster yang Anda masukkan sebagai parameter value valid.
  • Memastikan cluster memenuhi jenis mesin minimum yang diperlukan dan jumlah node.

set_up_project

Jika Anda menyertakan flag --enable_apis, fungsi set_up_project akan mengaktifkan API yang diperlukan:

required_apis() {
    cat << EOF
container.googleapis.com
compute.googleapis.com
monitoring.googleapis.com
logging.googleapis.com
cloudtrace.googleapis.com
meshca.googleapis.com
meshtelemetry.googleapis.com
meshconfig.googleapis.com
iamcredentials.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
cloudresourcemanager.googleapis.com
stackdriver.googleapis.com
EOF
}

set_up_cluster

set_up_cluster(){
  if [[ "${PRINT_CONFIG}" -eq 1 ]]; then
    return 0
  fi
  add_cluster_labels
  enable_workload_identity

  init_meshconfig

  enable_stackdriver_kubernetes
  bind_user_to_cluster_admin
  ensure_istio_namespace_exists
}

Fungsi set_up_cluster akan melakukan update berikut pada cluster Anda:

  • Mengaktifkan Workload Identity, yang merupakan cara yang direkomendasikan untuk mengakses layanan Google Cloud dengan aman dari aplikasi GKE.

  • Mengaktifkan Cloud Monitoring dan Cloud Logging di GKE.

  • Menetapkan label mesh_id pada cluster, yang diperlukan agar metrik dapat ditampilkan di halaman Anthos Service Mesh di konsol Google Cloud.

  • Menetapkan label seperti asmv=asm-178-10 sehingga Anda dapat mengetahui bahwa cluster telah dimodifikasi oleh skrip.

  • Mengikat pengguna GCP atau akun layanan yang menjalankan skrip ke peran admin cluster di cluster Anda.

install_asm

install_asm() {

  local PARAMS
  PARAMS="-f ${OPERATOR_MANIFEST} -f ${MULTICLUSTER_MANIFEST}"
  while read -d ',' -r yaml_file; do
    PARAMS="${PARAMS} -f ${yaml_file}"
  done <<EOF

Fungsi install_asm:

  • Download paket kpt ke direktori sementara.
  • Menjalankan penyetel kpt untuk mengonfigurasi file istio-operator.yaml.
  • Menginstal Anthos Service Mesh.

Langkah selanjutnya