Menginstal Cloud Service Mesh dalam cluster di GKE

Halaman ini menjelaskan cara menginstal Cloud Service Mesh dalam cluster yang tidak dikelola di GKE:

  • Jalankan asmcli untuk melakukan penginstalan baru Cloud Service Mesh 1.23.3-asm.2.
  • Secara opsional, deploy gateway traffic masuk.
  • Deploy atau deploy ulang workload Anda untuk memasukkan proxy sidecar.

Perhatikan bahwa untuk workload Kubernetes di Google Cloud, sebaiknya menyediakan panel kontrol terkelola

Untuk petunjuk menyiapkan penginstalan offline Cloud Service Mesh, lihat Menyiapkan penginstalan offline Cloud Service Mesh Anda harus menentukan opsi --offline dan --output_dir saat menjalankan asmcli install.

Batasan

Perhatikan batasan berikut:

  • Semua cluster Cloud Service Mesh untuk satu mesh harus terdaftar ke armada yang sama sepanjang waktu untuk menggunakan Cloud Service Mesh. Cluster lain dalam project cluster Cloud Service Mesh tidak boleh terdaftar ke fleet yang berbeda.

  • Untuk cluster Autopilot GKE, hanya Cloud Service Mesh terkelola yang didukung. Dukungan Cloud Service Mesh untuk Autopilot GKE hanya tersedia dengan versi 1.21.3+.

  • Alat asmcli harus memiliki akses ke endpoint Google Kubernetes Engine (GKE). Anda dapat mengonfigurasi akses melalui server"jump", seperti VM Compute Engine dalam Virtual Private Cloud (VPC) yang memberikan akses tertentu.

Sebelum memulai

Sebelum memulai, pastikan Anda:

Peran yang diperlukan untuk menginstal Cloud Service Mesh dalam cluster

Tabel berikut menjelaskan peran yang diperlukan untuk menginstal Cloud Service Mesh dalam cluster.

Nama peran ID Peran Lokasi pemberian Deskripsi
GKE Hub Admin roles/gkehub.admin Project fleet Akses penuh ke GKE Hubs dan resource terkait.
Kubernetes Engine Admin roles/container.admin Project cluster. Perhatikan bahwa peran ini harus diberikan di project Fleet dan cluster untuk binding lintas project. Memberi akses untuk pengelolaan penuh Cluster Container dan objek Kubernetes API-nya.
Mesh Config Admin roles/meshconfig.admin Project cluster dan fleet Memberikan izin yang diperlukan untuk melakukan inisialisasi komponen terkelola Cloud Service Mesh, seperti izin backend dan panel kontrol terkelola yang memungkinkan workload berkomunikasi dengan Stackdriver tanpa setiap izin diberikan secara terpisah (untuk panel kontrol terkelola dan dalam cluster).
Project IAM Admin roles/resourcemanager.projectIamAdmin Project cluster Memberikan izin untuk mengelola kebijakan IAM di project.
Service Account Admin roles/iam.serviceAccountAdmin Project fleet Lakukan autentikasi sebagai akun layanan.
Admin Pengelolaan Layanan roles/servicemanagement.admin Project fleet Kontrol penuh atas resource Google Service Management.
Service Usage Admin roles/serviceusage.serviceUsageAdmin Project fleet Kemampuan untuk mengaktifkan, menonaktifkan, dan memeriksa status layanan, memeriksa operasi, serta menggunakan kuota dan penagihan untuk project konsumen.(Catatan 1)
CA Service Admin Beta roles/privateca.admin Project fleet Akses penuh ke semua resource CA Service. (Catatan 2)

Catatan:

  1. Service Usage Admin - Peran ini diperlukan sebagai prasyarat untuk mengaktifkan mesh.googleapis.com API saat awalnya menyediakan Cloud Service Mesh terkelola.
  2. CA Service Admin - Peran ini hanya diperlukan jika Anda berintegrasi dengan CA Service.

Menginstal Cloud Service Mesh

Berikut ini cara menginstal Cloud Service Mesh:

  1. Jalankan asmcli install untuk menginstal bidang kontrol dalam cluster di satu cluster. Lihat bagian berikut untuk contoh command line. Contoh ini berisi argumen wajib dan argumen opsional yang mungkin berguna bagi Anda. Sebaiknya Anda selalu menentukan argumen output_dir agar Anda dapat menemukan contoh gateway dan alat seperti istioctl. Lihat menu navigasi di sebelah kanan untuk melihat daftar contoh.

  2. Cluster GKE pribadi memerlukan langkah konfigurasi firewall tambahan untuk mengizinkan traffic ke istiod.

  3. Secara opsional, instal gateway traffic masuk. Secara default, asmcli tidak menginstal istio-ingressgateway. Sebaiknya Anda men-deploy dan mengelola bidang kontrol dan gateway secara terpisah. Jika Anda memerlukan istio-ingressgateway default yang diinstal dengan bidang kontrol dalam cluster, sertakan argumen --option legacy-default-ingressgateway.

  4. Untuk menyelesaikan penyiapan Cloud Service Mesh, Anda perlu mengaktifkan injeksi sidecar otomatis dan men-deploy atau men-deploy ulang workload.

  5. Jika Anda menginstal Cloud Service Mesh di lebih dari satu cluster, jalankan asmcli install di setiap cluster. Saat menjalankan asmcli install, pastikan untuk menggunakan FLEET_PROJECT_ID yang sama untuk setiap cluster. Setelah Cloud Service Mesh diinstal, lihat petunjuk untuk menyiapkan mesh multi-cluster di GKE.

  6. Jika cluster Anda berada di jaringan yang berbeda (karena berada dalam mode pulau), Anda harus meneruskan nama jaringan unik ke asmcli menggunakan flag --network_id.

Menginstal fitur default dan CA Mesh

Bagian ini menunjukkan cara menjalankan asmcli untuk menginstal Cloud Service Mesh dengan fitur yang didukung default untuk platform Anda dan mengaktifkan otoritas sertifikasi Cloud Service Mesh sebagai otoritas sertifikasi.

Jalankan perintah berikut untuk menginstal platform kontrol dengan fitur default dan otoritas sertifikat Cloud Service Mesh. Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
   --project_id PROJECT_ID \
   --cluster_name CLUSTER_NAME \
   --cluster_location CLUSTER_LOCATION \
   --fleet_id FLEET_PROJECT_ID \
   --output_dir DIR_PATH \
   --enable_all \
   --ca mesh_ca
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
  • --fleet_id Project ID dari project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Berikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Tetapkan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca mesh_ca Gunakan Certificate Authority Cloud Service Mesh sebagai Certificate Authority. asmclimengonfigurasi Certificate Authority Cloud Service Mesh untuk menggunakan identitas beban kerja armada

Menginstal fitur default dan Layanan Certificate Authority (CA)

Bagian ini menunjukkan cara menjalankan asmcli untuk menginstal Cloud Service Mesh dengan fitur yang didukung default untuk platform Anda dan mengaktifkan Layanan CA sebagai otoritas sertifikasi.

Selain otoritas sertifikasi Cloud Service Mesh, Anda dapat mengonfigurasi Cloud Service Mesh untuk menggunakan Certificate Authority Service. Panduan ini memberi Anda kesempatan untuk berintegrasi dengan Layanan CA, yang direkomendasikan untuk kasus penggunaan berikut:

  • Jika Anda memerlukan otoritas sertifikasi yang berbeda untuk menandatangani sertifikat workload di cluster yang berbeda.
  • Jika Anda perlu mencadangkan kunci penandatanganan di HSM terkelola.
  • Jika Anda berada di industri yang diatur dengan regulasi ketat dan tunduk pada kepatuhan.
  • Jika Anda ingin membuat rantai CA Cloud Service Mesh ke root CA perusahaan kustom untuk menandatangani sertifikat workload.

Biaya otoritas sertifikasi Cloud Service Mesh sudah termasuk dalam harga Cloud Service Mesh. Layanan CA tidak disertakan dalam harga dasar Cloud Service Mesh dan ditagih secara terpisah. Selain itu, CA Service dilengkapi dengan SLA eksplisit, tetapi certificate authority Cloud Service Mesh tidak.

Mengonfigurasi Layanan CA

  1. Buat kumpulan CA di tingkat DevOps dan di region yang sama dengan cluster yang dilayaninya untuk menghindari masalah latensi yang berlebihan atau potensi penghentian layanan lintas region. Untuk mengetahui informasi selengkapnya, lihat Tingkat yang dioptimalkan untuk workload.
  2. Buat CA agar memiliki minimal satu otoritas sertifikasi aktif di kumpulan CA dalam project yang sama dengan cluster GKE. Gunakan CA subordinat untuk menandatangani sertifikat workload Cloud Service Mesh. Catat kumpulan CA yang sesuai dengan CA subordinat.
  3. Jika hanya dimaksudkan untuk melayani sertifikat untuk beban kerja Cloud Service Mesh, siapkan kebijakan penerbitan berikut untuk kumpulan CA:

    policy.yaml

    baselineValues:
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
          serverAuth: true
          clientAuth: true
      caOptions:
        isCa: false
    identityConstraints:
      allowSubjectPassthrough: false
      allowSubjectAltNamesPassthrough: true
      celExpression:
        expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
    
  4. Untuk memperbarui kebijakan penerbitan kumpulan CA, gunakan perintah berikut:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

    Untuk mengetahui informasi tentang cara menetapkan kebijakan di kumpulan, lihat Menggunakan kebijakan penerbitan sertifikat.

  5. Jika Anda menggunakan template sertifikat, konfigurasikan sekarang. Untuk informasi selengkapnya, ikuti Panduan Layanan CA untuk sertifikat identitas workload. Pastikan template sertifikat dibuat di region yang sama dengan kumpulan CA. Jika ada beberapa region untuk kumpulan CA, buat template sertifikat per region.

Mengonfigurasi Cloud Service Mesh untuk menggunakan CA Service

Jalankan perintah berikut di Google Distributed Cloud (khusus software) untuk VMware atau Google Distributed Cloud (khusus software) untuk bare metal guna menginstal platform kontrol dengan fitur default dan Layanan Certificate Authority. Masukkan nilai Anda di placeholder yang disediakan.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --enable_all \
      --ca gcp_cas \
      --platform multicloud \
      --ca_pool  projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id Project ID dari project host fleet.
    • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform tersebut adalah sesuatu yang bukan Google Cloud, seperti lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Berikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Tetapkan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca gcp_cas Gunakan Certificate Authority Service sebagai otoritas sertifikat. Mengubah certificate authority selama upgrade akan menyebabkan periode nonaktif. asmclimengonfigurasi Layanan Certificate Authority untuk menggunakan identitas workload armada
    • --ca_pool ID lengkap untuk CA Pool Layanan Certificate Authority. Jika Anda menggunakan template sertifikat, tambahkan ID template yang dipisahkan oleh :. Contoh:
        --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
        

    Untuk melihat SLO dan metrik infrastruktur di UI Cloud Service Mesh, Anda juga harus melakukan tiga langkah pertama di Mengaktifkan logging dan pemantauan aplikasi. Jika logging dan pemantauan tidak diaktifkan dan tidak menerima log dan metrik kustom, dasbor Cloud Service Mesh tidak akan menampilkan SLO, log error, atau metrik CPU dan memori.

Menginstal fitur default dengan CA Istio

Bagian ini menjelaskan cara:

  • Buat sertifikat dan kunci untuk CA Istio yang digunakan Cloud Service Mesh untuk menandatangani workload Anda.
  • Jalankan asmcli untuk menginstal Cloud Service Mesh dengan fitur default dan mengaktifkan Istio CA.

Secara default, lingkungan yang menginstal Cloud Service Mesh dengan Istio CA melaporkan metrik ke Prometheus. Jika ingin menggunakan dasbor Cloud Service Mesh, Anda harus mengaktifkan Stackdriver. Untuk mengetahui informasi selengkapnya, lihat Menginstal dengan fitur opsional.

Untuk keamanan terbaik, sebaiknya pertahankan root CA offline dan gunakan CA bawahan untuk menerbitkan sertifikat untuk setiap cluster. Untuk informasi selengkapnya, lihat Menyambungkan Sertifikat CA. Dalam konfigurasi ini, semua workload di mesh layanan menggunakan root certificate authority (CA) yang sama. Setiap CA Cloud Service Mesh menggunakan kunci dan sertifikat penandatanganan CA perantara, yang ditandatangani oleh CA root. Jika ada beberapa CA dalam mesh, hal ini akan membentuk hierarki kepercayaan di antara CA. Anda dapat mengulangi langkah-langkah ini untuk menyediakan sertifikat dan kunci untuk sejumlah otoritas sertifikasi.

Makefile untuk membuat sertifikat terletak di subdirektori istio-1.23.3-asm.1 di direktori --output_dir yang Anda tentukan dalam perintah asmcli validate. Jika tidak menjalankan asmcli validate, atau tidak memiliki direktori yang didownload secara lokal, Anda bisa mendapatkan Makefile dengan mendownload file penginstalan Cloud Service Mesh dan mengekstrak kontennya.

  1. Ubah ke direktori istio-1.23.3-asm.1.

  2. Buat direktori untuk sertifikat dan kunci:

    mkdir -p certs && \
    pushd certs
  3. Buat sertifikat dan kunci root:

    make -f ../tools/certs/Makefile.selfsigned.mk root-ca
    

    Tindakan ini akan 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
  4. Buat sertifikat dan kunci perantara:

    make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts

    Tindakan ini akan menghasilkan file berikut di 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 dengan akses ke cluster.

  5. Kembali ke direktori sebelumnya:

    popd
  6. Jalankan perintah berikut untuk menginstal kontrol plane dengan fitur default dan CA Istio. Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
   --project_id PROJECT_ID \
   --cluster_name CLUSTER_NAME \
   --cluster_location CLUSTER_LOCATION \
   --fleet_id FLEET_PROJECT_ID \
   --output_dir DIR_PATH \
   --enable_all \
   --ca citadel \
   --ca_cert CA_CERT_FILE_PATH \
   --ca_key CA_KEY_FILE_PATH \
   --root_cert ROOT_CERT_FILE_PATH \
   --cert_chain CERT_CHAIN_FILE_PATH
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
  • --fleet_id Project ID dari project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Berikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Tetapkan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • -ca citadel Menggunakan CA Istio sebagai otoritas sertifikat.
  • --ca_cert Intermediate certificate
  • --ca_key Kunci untuk intermediate certificate
  • --root_cert Root certificate
  • --cert_chain Rantai sertifikat

Menginstal dengan CA Istio dengan Google Cloud Observability diaktifkan

Jika ingin menggunakan dasbor Cloud Service Mesh, Anda harus mengaktifkan Stackdriver.

Jalankan perintah berikut untuk menginstal kontrol plane dengan fitur default dan CA Istio. Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
   --project_id PROJECT_ID \
   --cluster_name CLUSTER_NAME \
   --cluster_location CLUSTER_LOCATION \
   --fleet_id FLEET_PROJECT_ID \
   --output_dir DIR_PATH \
   --enable_all \
   --ca citadel \
   --ca_cert CA_CERT_FILE_PATH \
   --ca_key CA_KEY_FILE_PATH \
   --root_cert ROOT_CERT_FILE_PATH \
   --cert_chain CERT_CHAIN_FILE_PATH
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
  • --fleet_id Project ID dari project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Berikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Tetapkan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • -ca citadel Menggunakan CA Istio sebagai otoritas sertifikat.
  • --ca_cert Intermediate certificate
  • --ca_key Kunci untuk intermediate certificate
  • --root_cert Root certificate
  • --cert_chain Rantai sertifikat
  • --option stackdriver Mengaktifkan opsi Stackdriver. Perhatikan bahwa Anda juga dapat mengaktifkan Stackdriver dan Prometheus menggunakan --option prometheus-and-stackdriver.

Menginstal dengan fitur opsional

File overlay adalah file YAML yang berisi resource kustom (CR) IstioOperator yang Anda teruskan ke asmcli untuk mengonfigurasi platform kontrol. Anda dapat mengganti konfigurasi platform kontrol default dan mengaktifkan fitur opsional dengan meneruskan file YAML ke asmcli. Anda dapat menambahkan lebih banyak overlay, dan setiap file overlay akan mengganti konfigurasi di lapisan sebelumnya. Sebagai praktik terbaik, sebaiknya simpan file overlay di sistem kontrol versi Anda.

Ada dua opsi untuk mengaktifkan fitur opsional: --option dan --custom_overlay.

Gunakan --option jika Anda tidak perlu mengubah file overlay. Dengan metode ini, asmcli akan mengambil file dari repositori GitHub untuk Anda.

Gunakan --custom_overlay saat Anda perlu menyesuaikan file overlay.

Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan fitur opsional di panel kontrol dalam cluster.

Jalankan perintah berikut untuk menginstal platform kontrol dengan fitur opsional. Untuk menambahkan beberapa file, tentukan --custom_overlay dan nama file, misalnya: --custom_overlay overlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca \
--custom_overlay OVERLAY_FILE
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
  • --fleet_id Project ID dari project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Berikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Tetapkan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca mesh_ca Gunakan otoritas sertifikat Cloud Service Mesh sebagai otoritas sertifikat. Perhatikan bahwa asmcli mengonfigurasi otoritas sertifikasi Cloud Service Mesh untuk menggunakan identitas beban kerja fleet
  • --custom_overlay Tentukan nama file overlay.

Menginstal gateway

Cloud Service Mesh memberi Anda opsi untuk men-deploy dan mengelola gateway sebagai bagian dari mesh layanan Anda. Gateway menjelaskan load balancer yang beroperasi di tepi mesh yang menerima koneksi HTTP/TCP masuk atau keluar. Gateway adalah proxy Envoy yang memberi Anda kontrol terperinci atas traffic yang masuk dan keluar dari mesh.

  1. Buat namespace untuk gateway masuk jika Anda belum memilikinya. Gateway adalah beban kerja pengguna, dan sebagai praktik terbaik, gateway tidak boleh di-deploy di namespace bidang kontrol. Ganti GATEWAY_NAMESPACE dengan nama namespace Anda.

    kubectl create namespace GATEWAY_NAMESPACE
    

    Output yang diharapkan:

    namespace/GATEWAY_NAMESPACE created
    
  2. Aktifkan injeksi otomatis di gateway. Langkah-langkah yang diperlukan bergantung pada apakah Anda ingin menggunakan label injeksi default (misalnya, istio-injection=enabled) atau label revisi di namespace gateway. Tag revisi dan label revisi default digunakan oleh webhook injector sidecar untuk mengaitkan proxy yang dimasukkan dengan revisi bidang kontrol tertentu.

    Label injeksi default

    Terapkan label injeksi default ke namespace.

    kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
    

    Label revisi

    1. Gunakan perintah berikut untuk menemukan label revisi di istiod:

      kubectl get deploy -n istio-system -l app=istiod -o \
        "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
      

      Perintah ini menghasilkan label revisi yang sesuai dengan versi Cloud Service Mesh, misalnya: asm-1233-2

    2. Terapkan label revisi ke namespace. Dalam perintah berikut, REVISION adalah nilai label revisi istiod yang Anda catat di langkah sebelumnya.

      kubectl label namespace GATEWAY_NAMESPACE \
        istio.io/rev=REVISION --overwrite
      

      Output yang diharapkan:

      namespace/GATEWAY_NAMESPACE labeled
      

    Anda dapat mengabaikan pesan "istio.io/rev" not found dalam output. Artinya, namespace sebelumnya tidak memiliki label istio.io/rev, yang akan Anda temukan dalam penginstalan baru Cloud Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memiliki label istio.io/rev dan istio-injection, semua perintah kubectl label dalam dokumentasi Cloud Service Mesh secara eksplisit menentukan kedua label tersebut.

    Jika namespace gateway tidak diberi label, pod istio-ingressgateway akan gagal dengan error ImagePullBackOff saat gateway mencoba menarik dan image auto. Gambar ini akan diganti oleh webhook.

  3. Download contoh file konfigurasi .yaml gateway ingress dari repositori anthos-service-mesh-packages.

  4. Terapkan contoh konfigurasi .yaml gateway masuk apa adanya, atau ubah sesuai kebutuhan.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f CONFIG_PATH/istio-ingressgateway
    

    Output yang diharapkan:

    deployment.apps/istio-ingressgateway created
    poddisruptionbudget.policy/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created
    service/istio-ingressgateway created
    serviceaccount/istio-ingressgateway created
    

Pelajari lebih lanjut praktik terbaik untuk gateway.

Men-deploy dan men-deploy ulang workload

Cloud Service Mesh menggunakan proxy sidecar untuk meningkatkan keamanan, keandalan, dan kemampuan observasi jaringan. Dengan Cloud Service Mesh, fungsi ini diabstraksi dari penampung utama aplikasi dan diterapkan dalam proxy out-of-process umum yang dikirim sebagai penampung terpisah di Pod yang sama.

Penginstalan tidak akan selesai hingga Anda mengaktifkan injeksi proxy sidecar otomatis (injeksi otomatis) dan memulai ulang Pod untuk beban kerja apa pun yang berjalan di cluster sebelum Anda menginstal Cloud Service Mesh.

Untuk mengaktifkan injeksi otomatis, Anda memberi label pada namespace dengan label injeksi default jika tag default disiapkan, atau label revisi yang ditetapkan di istiod saat Anda menginstal Cloud Service Mesh. Tag revisi dan label revisi default digunakan oleh webhook injector sidecar untuk mengaitkan sidecar yang dimasukkan dengan revisi istiod. Setelah menambahkan label, setiap Pod yang ada di namespace harus dimulai ulang agar sidecar dapat dimasukkan.

Sebelum men-deploy beban kerja baru di namespace baru, pastikan untuk mengonfigurasi injeksi otomatis sehingga Cloud Service Mesh dapat memantau dan mengamankan traffic.

  1. Langkah-langkah yang diperlukan untuk mengaktifkan injeksi otomatis bergantung pada apakah Anda ingin menggunakan label injeksi default atau label revisi:

    1. Jika Anda menggunakan revisi tag default untuk mengaktifkan injeksi otomatis di gateway, pastikan tag default ada di direktori yang Anda tentukan di --output_dir dan mengarah ke revisi yang baru diinstal.

      DIR_PATH/istioctl tag list
      
    2. Jalankan perintah berikut. NAMESPACE adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis.

      kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
      

    Label injeksi default memasukkan revisi yang ditunjuk oleh tag default.

    Label revisi

    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-1233-2-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1233-2,istio=istiod,pod-template-hash=5788d57586
      istiod-asm-1233-2-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1233-2,istio=istiod,pod-template-hash=5788d57586

      Dalam output, di kolom LABELS, catat nilai label revisi istiod, yang mengikuti awalan istio.io/rev=. Dalam contoh ini, nilainya adalah asm-1233-2.

    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 di langkah sebelumnya.

      kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
      

      Anda dapat mengabaikan pesan "istio-injection not found" dalam output. Artinya, namespace sebelumnya tidak memiliki label istio-injection, yang akan Anda temukan dalam penginstalan baru Cloud Service Mesh atau deployment baru. Karena perilaku injeksi otomatis tidak ditentukan saat namespace memiliki label istio-injection dan revisi, semua perintah kubectl label dalam dokumentasi Cloud Service Mesh secara eksplisit memastikan bahwa hanya satu yang ditetapkan.

  2. Jika beban kerja berjalan di cluster sebelum Anda menginstal Cloud Service Mesh, mulai ulang Pod untuk memicu injeksi ulang.

    Cara memulai ulang Pod bergantung pada aplikasi dan lingkungan tempat cluster berada. Misalnya, di lingkungan staging, Anda dapat menghapus semua Pod, yang menyebabkannya dimulai ulang. Namun, di lingkungan produksi, Anda mungkin memiliki proses yang menerapkan deployment blue-green sehingga Anda dapat memulai ulang Pod dengan aman untuk menghindari gangguan traffic.

    Anda dapat menggunakan kubectl untuk melakukan mulai ulang bertahap:

    kubectl rollout restart deployment -n NAMESPACE
    

Apa langkah selanjutnya?