All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan kebijakan injeksi sidecar

Last Updated:Jun 21, 2026

ASM menyertakan injector sidecar yang secara otomatis menambahkan proxy sidecar ke Pod baru. Anda dapat mengonfigurasi kebijakan injeksi untuk mengontrol Pod mana yang menerima sidecar guna meningkatkan efisiensi penggunaan resource dan menyederhanakan manajemen. Anda juga dapat menyesuaikan konfigurasi resource injector sesuai dengan ukuran dan beban kluster Anda.

Prasyarat

Anda telah menambahkan kluster ke instans ASM.

Konfigurasikan kebijakan injeksi otomatis

Anda dapat menggunakan label namespace atau label dan anotasi Pod untuk mengontrol Pod mana yang menerima sidecar.

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Data Plane Component Management > Sidecar Proxy injection.

  3. Pada halaman Sidecar Proxy injection, di bagian Injection strategy configuration management, konfigurasikan kebijakan injeksi otomatis.

    Sidecar hanya akan diinjeksikan secara otomatis ke dalam Pod jika Pod tersebut memenuhi kedua kondisi berikut: The labels of the pod's namespace must meet the conditions. dan The pod's own labels/annotations must meet the conditions..

    Matching condition

    Description

    The labels of the pod's namespace must meet the conditions.

    Kondisi untuk label namespace Pod.

    • Include istio-injection: enabled: Saat namespace Pod berisi label istio-injection: enabled, Pod tersebut memenuhi syarat untuk injeksi otomatis.

    • Sidecar diinjeksikan jika namespace Pod tidak memiliki label istio-injection: disabled.

    The pod's own labels/annotations must meet the conditions.

    Kondisi untuk label atau anotasi Pod.

    • Sidecar diinjeksikan jika Pod tidak memiliki label atau anotasi sidecar.istio.io/inject: "false".

    • Include sidecar.istio.io/inject: "true" or Selected by AlwaysInjectSelector: Saat Pod berisi label atau anotasi sidecar.istio.io/inject: "true", Pod tersebut memenuhi kriteria untuk injeksi otomatis.

      Catatan
      • Untuk instans ASM versi sebelum v1.12, injeksi otomatis hanya didukung melalui pencocokan anotasi Pod.

      • Untuk instans ASM v1.12 dan yang lebih baru, injeksi otomatis didukung melalui pencocokan label maupun anotasi Pod.

        Label memiliki prioritas lebih tinggi daripada anotasi. Misalnya, jika sebuah Pod memiliki label sidecar.istio.io/inject: "true" dan anotasi sidecar.istio.io/inject: "false", Pod tersebut dianggap memiliki label sidecar.istio.io/inject: "true".

    Catatan

    Jika Anda mengonfigurasi kebijakan untuk melakukan injeksi kecuali namespace memiliki label istio-injection: disabled atau Pod memiliki label sidecar.istio.io/inject: false, ASM secara otomatis menambahkan label istio-injection: disabled ke namespace kube-system untuk melindungi komponen sistem.

  4. (Opsional) Di bawah bagian Injection strategy configuration management, klik Show Advanced Settings untuk mengonfigurasi opsi lanjutan.

    Parameter

    Description

    The label selector which selector pods to be injected istio-proxy (AlwaysInjectSelector)

    Pemilih label Pod yang dapat dikonfigurasi. Pod yang cocok dengan pemilih ini selalu diinjeksikan, seolah-olah memiliki label atau anotasi sidecar.istio.io/inject:"true".

    The label selector which selector pods which will never be injected (NeverInjectSelector)

    Pemilih label Pod yang dapat dikonfigurasi. Pod yang cocok dengan pemilih ini tidak pernah diinjeksikan, seolah-olah memiliki label atau anotasi sidecar.istio.io/inject:"false".

    Catatan

    Both AlwaysInjectSelector and NeverInjectSelector are pod label selectors and are configured in the same way. Each selector can have multiple label selection expressions, one per line. A pod is selected if its labels match any of the expressions.

    Each label selection expression consists of three parts:

    • Key: The key of the pod label to match.

    • Operator: The matching operator. The following four operators are available:

      • In: Matches if the pod's label value is in the specified set of values.

      • NotIn: Matches if the pod's label value is not in the specified set of values.

      • Exists: Matches if the pod has a label with the specified key.

      • DoesNotExist: Matches if the pod does not have a label with the specified key.

    • Value: The set of values to match against when using the In or NotIn operator.

  5. Di bagian bawah halaman, klik Update Settings.

Konfigurasikan injector sidecar

Injector sidecar adalah layanan admission webhook yang diterapkan di kluster Kubernetes bidang data. Layanan ini secara otomatis menginjeksikan proxy sidecar dan bukan merupakan proxy sidecar itu sendiri. Layanan dan workload injector sidecar diterapkan di namespace istio-system kluster Kubernetes, dengan nama yang diawali dengan istio-sidecar-injector. Anda dapat menyesuaikan pengaturan resource dan jumlah replika komponen injector sidecar untuk memastikan ketersediaan saat menginjeksikan banyak Pod secara bersamaan. Konfigurasikan pemantauan metrik dan aturan alert untuk layanan admission webhook injector sidecar dengan merujuk ke Container Service alert management dan kube-apiserver component monitoring metrics.

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Data Plane Component Management > Sidecar Proxy injection.

  3. Pada halaman Sidecar Proxy injection, di bagian Injection service, konfigurasikan injector sidecar dan klik Update Settings di bagian bawah halaman.

    Parameter

    Description

    Resource Settings for Sidecar Injection

    Konfigurasikan Limits on Resources dan Required Resources untuk kontainer injector sidecar.

    • Limits on Resources: Konfigurasikan batas resource CPU dan memori untuk kontainer injector sidecar. Satuan batas resource CPU adalah core, dan satuan batas resource memori adalah MiB.

    • Required Resources: Konfigurasikan permintaan resource CPU dan memori untuk kontainer injector sidecar. Satuan permintaan resource CPU adalah core, dan satuan permintaan resource memori adalah MiB.

    pod replicas

    Jumlah replika injector sidecar.

    Catatan

    Menambah jumlah replika injector sidecar meningkatkan ketersediaan layanan injeksi sidecar saat menginjeksikan banyak Pod secara bersamaan. Untuk ketersediaan tinggi, atur jumlah replika menjadi 2 atau lebih.

    Rewrite App Probe

    Menentukan apakah akan menulis ulang pemeriksaan kesehatan Pod selama injeksi. Untuk menentukan apakah Anda perlu mengaktifkan penulisan ulang pemeriksaan kesehatan, lihat Enable health check redirection for applications in a service mesh.

    Sidecar-injector NodeSelector

    Menentukan label node untuk mengontrol tempat penempatan Pod injector sidecar.

    Klik Add Match Label dan masukkan Name dan Value label node di kluster bidang data untuk menentukan node penempatan.

Contoh 1: Nonaktifkan injeksi untuk Pod tertentu

  1. Konfigurasikan kebijakan injeksi otomatis.

    1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Data Plane Component Management > Sidecar Proxy injection.

    3. Pada halaman Sidecar Proxy injection, di bagian Injection strategy configuration management, konfigurasikan pengaturan.

      Konfigurasi berikut secara otomatis menginjeksikan sidecar ke semua Pod dalam namespace yang memiliki label istio-injection: enabled, kecuali jika Pod memiliki label atau anotasi sidecar.istio.io/inject: "false".

      Parameter

      Description

      The labels of the pod's namespace must meet the conditions.

      Pilih Include istio-injection: enabled.

      The pod's own labels/annotations must meet the conditions.

      Pilih Not Include sidecar.istio.io/inject: "false" or Selected by NeverInjectSelector.

  2. Buat namespace global dan aktifkan injeksi otomatis untuk namespace tersebut.

    1. Pada halaman detail instans ASM, pilih ASM Instance > Global Namespace di panel navigasi kiri. Pada halaman yang muncul, klik Create.

    2. Pada panel Create Namespace, masukkan Name untuk namespace (misalnya, test1). Klik Add di samping Tag, atur Name menjadi istio-injection dan Value menjadi enabled, lalu klik OK.

    3. Di bagian atas halaman, klik Sync Automatic Sidecar Injection to Kubernetes Cluster untuk menyinkronkan namespace global ke kluster Kubernetes bidang data.

  3. Buat aplikasi.

    1. Terapkan aplikasi details di namespace test1 kluster ACK pada bidang data. Untuk informasi selengkapnya, lihat Deploy an application in a cluster associated with an ASM instance.

    2. Verifikasi apakah proxy sidecar diinjeksikan ke Pod aplikasi.

      1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

      2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

      3. Di bagian atas halaman Deployments, atur Namespace menjadi test1 dan klik nama aplikasi details.

        Pada tab Pods, Anda dapat melihat bahwa Pod details-v1 berisi dua gambar: gambar proxy sidecar Istio (proxyv2) dan gambar aplikasi (examples-bookinfo-details-v1). Statusnya Running, yang menunjukkan bahwa sidecar telah berhasil diinjeksikan.

  4. Tambahkan label ke Pod untuk menonaktifkan injeksi otomatis.

    1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    3. Pada halaman Deployments, di namespace test1, temukan aplikasi details dan klik More > View YAML di kolom Actions.

    4. Pada kotak dialog Edit, modifikasi konfigurasi YAML dan klik Update.

      • Untuk versi ASM 1.12.4 dan yang lebih baru: pada parameter labels, tambahkan label dengan Kunci sidecar.istio.io/inject dan Nilai "false", ditentukan sebagai sidecar.istio.io/inject: 'false'.

        spec:
          progressDeadlineSeconds: 600
          replicas: 1
          revisionHistoryLimit: 10
          selector:
            matchLabels:
              app: details
              version: v1
          strategy:
            rollingUpdate:
              maxSurge: 25%
              maxUnavailable: 25%
            type: RollingUpdate
          template:
            metadata:
              labels:
                sidecar.istio.io/inject: "false"
                app: details
                version: v1
      • Untuk versi ASM sebelum 1.12.4: Pada parameter annotations, tambahkan anotasi dengan Kunci sidecar.istio.io/inject dan Nilai "false", yaitu sidecar.istio.io/inject: "false".

  5. Verifikasi bahwa injeksi otomatis dinonaktifkan untuk Pod layanan details sementara tetap diaktifkan untuk namespace test1.

    1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    3. Di bagian atas halaman Deployments, atur Namespace menjadi test1 dan klik nama aplikasi details.

      Pada tab Pods, Anda dapat melihat bahwa Pod details-v1 berada dalam status Running dan hanya berisi gambar docker.io/istio/examples-bookinfo-details-v1:1.16.2. Hal ini mengonfirmasi bahwa sidecar Istio tidak diinjeksikan ke Pod ini.

Contoh 2: Konfigurasikan injeksi per-Pod

Anda dapat mengatur kebijakan injeksi untuk Pod individual, bukan untuk seluruh namespace.

  1. Konfigurasikan kebijakan injeksi otomatis.

    1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Data Plane Component Management > Sidecar Proxy injection.

    3. Pada halaman Injection strategy configuration management, konfigurasikan pengaturan di bagian Injection strategy configuration management dan klik Update Settings di bagian bawah halaman.

      Konfigurasi berikut secara otomatis menginjeksikan sidecar ke Pod yang memiliki label sidecar.istio.io/inject: "true" di namespace apa pun, kecuali Pod di namespace dengan label istio-injection: disabled.

      Parameter

      Description

      The labels of the pod's namespace must meet the conditions.

      Pilih Not include istio-injection: disabled.

      The pod's own labels/annotations must meet the conditions.

      Pilih Include sidecar.istio.io/inject: "true" or Selected by AlwaysInjectSelector.

  2. Di kluster ACK, buat namespace bernama test2 tanpa label apa pun. Untuk informasi selengkapnya, lihat Manage namespaces and quotas.

  3. Di namespace test2 kluster ACK, buat aplikasi reviews. Untuk informasi selengkapnya, lihat Deploy an application in a cluster associated with an ASM instance.

  4. Tambahkan label ke Pod untuk mengaktifkan injeksi otomatis.

    1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    3. Di bagian atas halaman Deployments, atur Namespace menjadi test2. Pada baris layanan reviews, klik More > View YAML di kolom Actions.

    4. Pada kotak dialog Edit YAML, di bawah parameter labels, tambahkan label sidecar.istio.io/inject: "true", lalu klik Update.

      Catatan

      Untuk mengonfigurasi injeksi Pod otomatis menggunakan label, versi Service Mesh ASM harus 1.12.4 atau yang lebih baru. Untuk informasi selengkapnya tentang cara meningkatkan instans, lihat Upgrade an ASM instance.

      spec:
        progressDeadlineSeconds: 600
        replicas: 1
        revisionHistoryLimit: 10
        selector:
          matchLabels:
            app: reviews
            version: v1
        strategy:
          rollingUpdate:
            maxSurge: 25%
            maxUnavailable: 25%
          type: RollingUpdate
        template:
          metadata:
            labels:
              app: reviews
              sidecar.istio.io/inject: 'true'
              version: v1
  5. Verifikasi bahwa kebijakan injeksi otomatis untuk Pod berhasil dikonfigurasi.

    1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    3. Di bagian atas halaman Deployments, atur Namespace menjadi test2 dan klik nama aplikasi reviews.

      Pada tab Pods, daftar gambar untuk Pod reviews-v1 berisi gambar proxy sidecar Istio (proxyv2) dan gambar kontainer aplikasi (examples-bookinfo-reviews-v1). Statusnya Running, yang menunjukkan bahwa sidecar telah berhasil diinjeksikan.

Dokumen terkait

  • Kebijakan injeksi hanya berlaku untuk Pod yang baru dibuat. Anda harus me-restart Pod yang sedang berjalan agar kebijakan berlaku. Untuk informasi selengkapnya, lihat Restart a pod.

  • Jika aplikasi yang diaktifkan Istio Anda masih menggunakan versi lama proxy sidecar setelah peningkatan lapisan kontrol, lihat Upgrade sidecar proxies untuk meningkatkannya.

  • Anda dapat mengonfigurasi konsumsi resource, kebijakan intersepsi traffic, proxy DNS, dan siklus hidup proxy sidecar pada berbagai tingkatan, seperti global, namespace, workload, dan Pod. Untuk informasi selengkapnya, lihat Configure a sidecar proxy.