Mengaktifkan fitur opsional

Saat Anda menginstal Anthos Service Mesh, fitur bidang kontrol yang diaktifkan secara default akan berbeda di setiap platform. Anda dapat mengaktifkan fitur opsional dengan menyertakan file overlay saat menginstal (atau mengupgrade) Anthos Service Mesh. File overlay adalah file YAML yang berisi resource kustom (CR) IstioOperator yang Anda gunakan untuk mengonfigurasi bidang kontrol. Anda dapat mengganti konfigurasi default dan mengaktifkan fitur opsional dalam file overlay. Anda dapat menambahkan beberapa overlay, dan setiap file overlay menggantikan konfigurasi di lapisan sebelumnya.

Tentang file overlay

File overlay di halaman ini berada dalam paket anthos-service-mesh di GitHub. File-file ini berisi penyesuaian umum pada konfigurasi default. Anda dapat menggunakan file ini sebagaimana adanya, atau Anda dapat membuat perubahan tambahan pada file tersebut sesuai kebutuhan.

  • Saat menginstal Anthos Service Mesh menggunakan perintah istioctl install, Anda dapat menentukan satu atau beberapa file overlay dengan opsi command line -f. Meskipun Anda dapat memodifikasi konfigurasi dengan menentukan parameter konfigurasi pada command line dengan menggunakan opsi --set untuk istioctl install, sebaiknya gunakan file overlay agar dapat menyimpan file di sistem kontrol versi bersama dengan file resource kustom lainnya. Anda harus menyimpan file ini saat mengupgrade Anthos Service Mesh agar bidang kontrol Anda memiliki konfigurasi yang sama setelah upgrade.

  • Saat menginstal Anthos Service Mesh menggunakan skrip install_asm yang disediakan Google, Anda dapat menentukan satu atau beberapa file overlay dengan opsi --option atau --custom_overlay. Jika tidak perlu melakukan perubahan pada file dalam repositori anthos-service-mesh, Anda dapat menggunakan --option, dan skrip akan mengambil file dari GitHub untuk Anda. Jika tidak, Anda dapat membuat perubahan pada file overlay, lalu menggunakan opsi --custom_overlay untuk meneruskannya ke skrip install_asm. Untuk contoh penggunaan kedua opsi tersebut, lihat contoh install_asm.

Jangan menyertakan beberapa CR dalam satu file YAML Membuat file YAML terpisah untuk setiap CR
beberapa CR dalam satu yaml file yaml terpisah untuk setiap CR

Mendownload paket anthos-service-mesh

Untuk mendownload paket anthos-service-mesh:

Langkah-langkah berikut menggunakan kpt untuk mendownload paket asm dari repositori GitHub. Jika ingin, Anda dapat menggunakan git clone.

  1. Instal kpt jika Anda belum melakukannya:

    gcloud components install kpt
    
  2. Download paket yang berisi file:

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

    Contoh berikut mengasumsikan bahwa paket asm berada di direktori kerja Anda saat ini.

Contoh

Untuk mengaktifkan fitur saat Anda menginstal Anthos Service Mesh, perintah yang tepat akan sedikit berbeda bergantung pada platform dan apakah Anda menggunakan skrip install_asm atau perintah istioctl install.

Semua perintah berikut menetapkan label revisi pada istiod. Nama deployment istiod akan ditetapkan ke istiod-asm-186-8. Label revisi memiliki format istio.io/rev=asm-186-8. Label revisi digunakan oleh webhook injektor file bantuan otomatis untuk mengaitkan file bantuan yang diinjeksikan dengan revisi istiod tertentu. Guna mengaktifkan injeksi otomatis file bantuan untuk namespace, beri label dengan revisi yang cocok dengan label revisi pada istiod.

Mengaktifkan gateway keluar di GKE lokal

Contoh ini mengasumsikan bahwa Anda telah mengikuti langkah-langkah dalam panduan Menginstal Anthos Service Mesh secara lokal hingga Anda menginstal Anthos Service Mesh. Panduan ini mencakup langkah-langkah untuk menetapkan variabel lingkungan CTX_CLUSTER1 dan mengonfigurasi cluster.yaml. Salah satu setelan yang Anda konfigurasi di cluster.yaml adalah revisi. File egressgateways.yaml berisi konfigurasi untuk mengaktifkan gateway keluar opsional.

  1. Instal Anthos Service Mesh di GKE di VMware:

    istioctl install --context="${CTX_CLUSTER1}" \
      -f cluster.yaml \
      -f asm/istio/options/egressgateways.yaml
    
  2. Pastikan untuk kembali ke panduan penginstalan GKE di VMware untuk mengonfigurasi webhook validasi yang diperlukan untuk penginstalan baru.

Urutan file pada command line penting. Pastikan untuk menentukan cluster.yaml terlebih dahulu, yang memiliki konfigurasi yang diperlukan untuk fitur default, lalu file overlay setelahnya.

Mengaktifkan gateway keluar di GKE di Google Cloud

Sebaiknya gunakan skrip install_asm untuk menyiapkan satu atau beberapa cluster dalam project yang sama. Skrip ini menetapkan label revisi pada istiod. Contoh ini mengasumsikan bahwa Anda telah mengikuti panduan Menginstal Anthos Service Mesh di GKE untuk mendownload versi skrip install_asm di cabang release-1.8-asm yang menginstal Anthos Service Mesh 1.8.6.

Untuk menggunakan skrip install_asm guna menginstal gateway keluar:

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_all \
  --option egressgateways

Perintah ini menjalankan skrip untuk penginstalan baru dan mengaktifkan Mesh CA, yang merupakan CA default untuk penginstalan. Dengan flag --enable_all, skrip dapat mengaktifkan Google API yang diperlukan, menetapkan izin Identity and Access Management, dan melakukan update yang diperlukan pada cluster Anda, termasuk mengaktifkan Workload Identity GKE. Skrip ini mengambil file egressgateways.yaml dari GitHub, yang digunakan untuk mengonfigurasi bidang kontrol.

Aktifkan gateway keluar di cluster GKE di berbagai project

Saat ini, skrip install_asm tidak mendukung penginstalan Anthos Service Mesh di cluster di project yang berbeda.

Command line berikut mengasumsikan bahwa Anda telah mengikuti semua langkah dalam Penginstalan dan migrasi multi-project hingga ke titik penginstalan Anthos Service Mesh.

  1. Instal Anthos Service Mesh:

    istioctl install \
     -f asm/istio/istio-operator.yaml \
     -f asm/istio/options/multiproject.yaml \
     -f asm/istio/options/multicluster.yaml\
     -f asm/istio/options/egressgateways.yaml \
     --set revision=asm-186-8
    

    File berikut menempatkan setelan pada file istio-operator.yaml:

    • File multiproject.yaml digunakan untuk menentukan fitur default untuk mesh multi-project. Anda harus menentukannya sebelum file overlay lainnya.

    • File multicluster.yaml mengonfigurasi setelan yang diperlukan Anthos Service Mesh untuk konfigurasi multi-cluster.

    • File egressgateways.yaml mengonfigurasi gateway keluar.

  2. Pastikan untuk kembali ke Panduan penginstalan multi-project guna mengonfigurasi webhook validasi yang diperlukan untuk penginstalan baru.

YAML untuk fitur opsional

Bagian berikut ini menyediakan YAML untuk mengaktifkan fitur opsional dan yang didukung.

Mode STRICT mTLS

Konfigurasi global.mtls.enabled telah dihapus untuk menghindari masalah dengan upgrade dan untuk menyediakan penginstalan yang lebih fleksibel. Untuk mengaktifkan mTLS STRICT, konfigurasikan kebijakan autentikasi peer.

Mengarahkan Envoy ke stdout

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: "/dev/stdout"

Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan logging akses Envoy.

Cloud Trace

Untuk penginstalan di GKE, Anda dapat mengaktifkan Cloud Trace. Untuk mengetahui informasi harga yang lebih detail, lihat halaman harga Cloud Trace.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    global:
      proxy:
        tracer: stackdriver

Frekuensi sampling default adalah 1%, tetapi Anda dapat mengganti frekuensi sampling default dengan menentukan nilai tracing.sampling. Nilai harus dalam rentang 0,0 hingga 100,0 dengan presisi 0,01. Misalnya, untuk melacak 5 permintaan dari setiap 10.000 permintaan,gunakan 0, 05.

Contoh berikut menunjukkan frekuensi sampling 100% (yang hanya akan Anda lakukan untuk tujuan demo atau pemecahan masalah).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100
  values:
    global:
      proxy:
        tracer: stackdriver

Perlu diperhatikan bahwa konfigurasi tracer saat ini adalah bagian dari konfigurasi bootstrap proxy, sehingga pod perlu dimulai ulang dan dimasukkan ulang untuk mengambil update tracer. Misalnya, Anda dapat menggunakan perintah berikut yang mencakup pod mulai ulang dari suatu deployment:

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

Propagasi konteks rekaman aktivitas

Meskipun proxy file bantuan dapat secara otomatis mengirim span rekaman aktivitas, proxy tersebut memerlukan beberapa petunjuk untuk mengaitkan seluruh rekaman aktivitas. Aplikasi perlu menyebarkan header HTTP yang sesuai, sehingga saat proxy mengirim informasi span, span dapat dikorelasikan dengan benar ke dalam satu pelacakan.

Untuk melakukannya, aplikasi harus mengumpulkan dan menyebarkan header berikut dari permintaan masuk ke semua permintaan keluar:

  • x-request-id
  • Traceid x-b3
  • x-b3-spanid
  • x-b3-orang tua
  • Diambil sampel x-b3
  • flag x-b3
  • x-ot-span-context
  • x-cloud-trace-context
  • induk trace
  • grpc-trace-bin

Untuk contoh yang menyebarkan header, lihat Penyebaran konteks rekaman aktivitas.

Membuat trace dari klien dengan ID kustom

Untuk membuat rekaman aktivitas dari klien dengan ID kustom, gunakan perintah curl untuk membuat permintaan dengan klien eksternal dan memaksanya menampilkan rekaman aktivitas. Contoh:

curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"

Untuk mengetahui informasi selengkapnya tentang x-client-trace-id, lihat dokumentasi Envoy.

Traffic keluar melalui gateway keluar

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    egressGateways:
    - name: istio-egressgateway
      enabled: true

Untuk mengetahui informasi selengkapnya, lihat Gateway Keluar.

Antarmuka Jaringan Container Istio

Cara mengaktifkan Antarmuka Jaringan Container (CNI) Istio bergantung pada lingkungan tempat Anthos Service Mesh diinstal. Anda juga harus mengaktifkan kebijakan jaringan.

Mengaktifkan CNI di GKE

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /home/kubernetes/bin
      excludeNamespaces:
      - istio-system
      - kube-system

Mengaktifkan CNI pada GKE di VMware

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /opt/cni/bin
      excludeNamespaces:
      - istio-system
      - kube-system
      - gke-system

Mengaktifkan load balancer internal

Untuk penginstalan di GKE, Anda dapat mengaktifkan load balancer internal untuk gateway masuk Istio.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      k8s:
        serviceAnnotations:
          cloud.google.com/load-balancer-type: "internal"
        service:
          ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443

Pengelolaan sertifikat eksternal di gateway masuk

Untuk mengetahui informasi tentang cara mengaktifkan pengelolaan sertifikat eksternal di gateway masuk menggunakan Envoy SDS, lihat Gateway Aman.