Menginstal Anthos Service Mesh

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:

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

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

  2. 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 paket asm dan file penginstalan Anthos Service Mesh, yang berisi istioctl, contoh, dan manifes. Jika tidak, skrip akan mendownload paket dan file penginstalan asm 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}.

  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 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:

  1. 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 revisi istiod, yang mengikuti awalan istio.io/rev=. Dalam contoh ini, nilainya adalah asm-186-8.

  2. Terapkan label revisi dan hapus label istio-injection jika ada. Dalam perintah berikut, NAMESPACE adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis, dan REVISION 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 label istio-injection, yang akan Anda harapkan dalam penginstalan baru Anthos Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label dalam dokumentasi Anthos Service Mesh mencakup penghapusan label istio-injection.

  3. 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
    
  4. 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.

  1. Di konsol Google Cloud, buka Anthos Service Mesh.

    Buka Anthos Service Mesh

  2. Pilih project Google Cloud dari menu drop-down di panel menu.

  3. Jika Anda memiliki lebih dari satu mesh layanan, pilih mesh dari menu drop-down Service Mesh.

Untuk mempelajari lebih lanjut, lihat Menjelajahi Anthos Service Mesh di Konsol Google Cloud.

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

Untuk melihat metrik:

  1. Di konsol Google Cloud, buka halaman Monitoring:

    Buka Monitoring

  2. Pilih Resource > Metrics Explorer.

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

Langkah selanjutnya