Penginstalan dan migrasi di GKE

Panduan ini menjelaskan cara menginstal atau bermigrasi ke Anthos Service Mesh versi 1.6.14 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 untuk kasus penggunaan berikut:

  • Penginstalan baru Anthos Service Mesh. Jika Anda sudah menginstal Anthos Service Mesh versi sebelumnya, lihat Mengupgrade Anthos Service Mesh di GKE. Skrip 1.6 tidak menangani peningkatan versi.

  • Bermigrasi dari Istio 1.6 open source ke Anthos Service Mesh. Migrasi dari Istio versi sebelumnya tidak didukung. Versi skrip 1.7 mendukung migrasi dari Istio 1.6 atau 1.7 ke Anthos Service Mesh 1.7. Karena Anda bermigrasi, Anda mungkin lebih memilih untuk bermigrasi ke Anthos Service Mesh 1.7.

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

Anda perlu menggunakan panduan Penginstalan dan migrasi lanjutan di GKE untuk kasus penggunaan berikut:

  • Saat Anda perlu menyesuaikan penginstalan untuk mengganti setelan di profil asm-gcp, dan Anda memiliki lebih dari satu file YAML IstioOperator overlay. Skrip ini memungkinkan Anda menentukan hanya satu file YAMl.

  • Untuk mesh multi-cluster tempat cluster berada dalam project yang berbeda.

Sebelum memulai

Tutorial ini mengasumsikan bahwa Anda sudah:

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.

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.6.14. 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.
  • Apakah Anda bermigrasi dari Istio atau Istio di add-on GKE.

    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 traffic mTLS akan gagal hingga Anda memulai ulang semua Pod di semua namespace.

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

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

Menginstal alat yang diperlukan

Anda dapat menjalankan skrip ini di Cloud Shell atau di mesin lokal yang menjalankan Linux atau macOS. Cloud Shell telah menginstal semua alat yang diperlukan.

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.

Menjalankan skrip

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

  1. Download skrip ke direktori kerja saat ini:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.6 > install_asm
    
  2. Download file SHA-256 ke direktori kerja saat ini:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.6.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 atau migrate.
    • 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.

  1. Buat direktori dengan nama asm-packages:

    mkdir asm-packages
    
  2. Jalankan perintah berikut untuk memvalidasi konfigurasi Anda serta mendownload file penginstalan dan paket asm ke direktori asm-packages:

    ./install_asm \
    --project_id PROJECT_ID \
    --cluster_name CLUSTER_NAME \
    --cluster_location CLUSTER_LOCATION \
    --mode install \
    --output_dir ./asm-packages \
    --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 baru

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 baru dengan file overlay

Contoh berikut melakukan penginstalan baru dan menyertakan file YAML yang mengaktifkan fitur opsional.

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

Migrasi dari Istio

Jika bermigrasi dari Istio open source, Anda menggunakan Citadel sebagai CA. Perintah berikut menjalankan skrip untuk migrasi ke Anthos Service Mesh 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

Opsi dan tanda

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}
Masukkan install jika Anda akan menginstal Anthos Service Mesh baru. Masukkan migrate jika Anda bermigrasi dari Istio atau add-on Istio di GKE ke Anthos Service Mesh.
-c|--ca {mesh_ca|citadel}
Jika Anda melakukan penginstalan baru, parameter ini akan ditetapkan secara default ke Mesh CA, dan Anda tidak perlu menyertakannya. Jika bermigrasi dari Istio, Anda harus menentukan citadel atau mesh_ca. Jika Anda dapat menjadwalkan periode nonaktif untuk migrasi, sebaiknya gunakan mesh_ca. Jika Anda tidak dapat menjadwalkan periode nonaktif untuk migrasi, gunakan citadel.
-o|--operator_overlay YAML_FILE
Nama file YAML untuk mengaktifkan fitur yang tidak diaktifkan di profil asm-gcp. Skrip harus dapat menemukan file YAML. Jadi, file tersebut harus berada di direktori yang sama dengan skrip, atau Anda dapat menentukan jalur relatif seperti: ../manifests/asm-features.yaml
-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.6.14-asm.2. Direktori asm berisi konfigurasi untuk penginstalan. Direktori istio-1.6.14-asm.2 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.
--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.

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 dari Istio 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-1614-2 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.

    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-1614-2-85d86774f7-flrt2   1/1     Running   0          26m   app=istiod,istio.io/rev=asm-1614-2,istio=istiod,pod-template-hash=85d86774f7
    istiod-asm-1614-2-85d86774f7-tcwtn   1/1     Running   0          26m   app=istiod,istio.io/rev=asm-1614-2,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-1614-2, tetapi Anda mungkin memiliki nilai yang berbeda.

    Untuk migrasi, catat juga nilai dalam label revisi untuk versi istiod lama. Anda memerlukan metode ini untuk menghapus versi lama istiod saat menyelesaikan migrasi. 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 dan migrasi 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:

Selesaikan transisi

Untuk migrasi, Anda harus menghapus versi lama istiod. Jika Anda puas karena 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, jika Anda mengalami masalah saat menguji aplikasi dengan versi baru istiod, ikuti langkah-langkah berikut untuk melakukan rollback ke versi sebelumnya:

  1. Update workload yang akan dimasukkan dengan istiod versi sebelumnya:

    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.

Melihat dasbor Anthos Service Mesh

Bagian ini hanya berlaku jika Anda menginstal Anthos Service Mesh dengan profil konfigurasi asm-gcp. Jika Anda menggunakan profil asm-gcp-multiproject untuk menginstal Anthos Service Mesh, data telemetri tidak akan tersedia di dasbor Anthos Service Mesh di Konsol Google Cloud.

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,

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

  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_expected_control_plane
  if [[ "${MODE}" = "migrate" ]]; then
    validate_istio_version
  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
EOF
}

set_up_cluster

set_up_cluster(){
  add_cluster_labels
  enable_workload_identity

  # this is project scope but requires workload identity
  if [[ "${CA}" = "mesh_ca" ]]; then
    init_meshca
  fi

  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-1614-2 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 CA_OPT
  CA_OPT=""
  if [[ "${CA}" = "citadel" ]]; then
    CA_OPT="-citadel"
  fi

  info "Configuring kpt package..."
  run kpt cfg set asm gcloud.container.cluster "${CLUSTER_NAME}"
  run kpt cfg set asm gcloud.core.project "${PROJECT_ID}"
  run kpt cfg set asm gcloud.project.environProjectNumber "${PROJECT_NUMBER}"
  run kpt cfg set asm gcloud.compute.location "${CLUSTER_LOCATION}"
  run kpt cfg set asm anthos.servicemesh.rev "${REVISION_LABEL}"
  if [[ -n "${_CI_ASM_IMAGE_LOCATION}" ]]; then
    run kpt cfg set asm anthos.servicemesh.hub "${_CI_ASM_IMAGE_LOCATION}"
    run kpt cfg set asm anthos.servicemesh.tag "${RELEASE}"
  fi

  local PARAMS
  PARAMS="-f ${OPERATOR_MANIFEST}"
  if [[  -f "$CUSTOM_OVERLAY" ]]; then
    PARAMS="${PARAMS} -f ${CUSTOM_OVERLAY}"
  fi
  PARAMS="${PARAMS} --set revision=${REVISION_LABEL}"
  PARAMS="${PARAMS} -c ${KUBECONFIG}"

  info "Installing ASM control plane..."
  # shellcheck disable=SC2086
  retry 5 run ./"${ISTIOCTL_REL_PATH}" install $PARAMS

  # Prevent the stderr buffer from ^ messing up the terminal output below
  sleep 1
  info "...done!"

  if ! does_istiod_exist; then
    info "Installing validation webhook fix..."
    retry 3 run kubectl apply -f "${VALIDATION_FIX_SERVICE}"
  fi

  if [[ "$DISABLE_CANONICAL_SERVICE" -ne 1 ]]; then
    info "Installing ASM CanonicalService controller in asm-system namespace..."
    retry 3 run kubectl apply -f asm/canonical-service/controller.yaml
    info "Waiting for deployment..."
    retry 3 run kubectl wait --for=condition=available --timeout=600s \
        deployment/canonical-service-controller-manager -n asm-system
    info "...done!"
  fi

  outro
}

Fungsi install_asm:

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

Perbedaan dengan skrip 1.7

Skrip 1.7 Skrip 1.6
Mendukung upgrade. Tidak melakukan upgrade.
Mendukung migrasi dari Istio 1.6 dan Istio 1.7. Mendukung migrasi dari Istio 1.6.
--print_config
Memberikan konfigurasi yang Anda gunakan saat menginstal menggunakan skrip install_asm. Flag ini memudahkan Anda untuk menginstal ulang Anthos Service Meshversion yang sama (yang tidak diizinkan oleh skrip) dengan konfigurasi yang sama dengan yang Anda gunakan saat menginstal sebelumnya.
Tidak tersedia
--custom_overlay
Memungkinkan beberapa file overlay.
--custom_overlay
Hanya mengizinkan satu file overlay.
--option
Menarik file overlay dari paket asm di GitHub.
Tidak tersedia.
Mendukung CA kustom dengan opsi berikut:

--ca_cert
--ca_key
--root_cert
--cert_chain

Tidak tersedia.