Service Mesh (ASM) menyediakan injector sidecar yang secara otomatis menyuntikkan proxy sidecar ke dalam Pod baru. Anda dapat mengonfigurasi kebijakan injeksi berdasarkan label untuk menentukan Pod mana yang memerlukan sidecar, sehingga membantu penggunaan sumber daya yang lebih efisien dan penyederhanaan manajemen. Selain itu, sesuai dengan ukuran dan beban kluster Anda, Anda juga dapat menyesuaikan konfigurasi sumber daya injector agar memiliki kapasitas yang cukup untuk beroperasi.
Prasyarat
Kluster ACK telah ditambahkan ke instans ASM. Untuk informasi selengkapnya, lihat Menambahkan kluster ke instans ASM.
Konfigurasi kebijakan injeksi otomatis
Anda dapat mencocokkan Pod untuk injeksi sidecar menggunakan label namespace Pod, label Pod, atau anotasi Pod.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Injection Policy Configuration, di bagian Injection Policy Configuration Management, konfigurasikan kebijakan injeksi otomatis.
Sidecar hanya akan secara otomatis disuntikkan ke dalam Pod jika Pod tersebut memenuhi kedua kondisi berikut: Condition For Pod Namespace Labels dan Condition For Pod Labels/annotations.
Kondisi pencocokan
Deskripsi
Condition For Pod Namespace Labels
Kondisi pencocokan untuk label namespace tempat Pod berada.
Includes Istio-injection: Enabled: Pod memenuhi kondisi injeksi otomatis jika namespace-nya berisi label istio-injection: enabled.
Istio-injection: Disabled: Pod memenuhi kondisi injeksi otomatis jika namespace-nya tidak berisi label istio-injection: disabled.
Condition For Pod Labels/annotations
Kondisi pencocokan untuk label atau anotasi Pod itu sendiri.
Sidecar.istio.io/inject: False: Pod memenuhi kondisi injeksi otomatis jika tidak memiliki label atau anotasi sidecar.istio.io/inject: "false".
Includes Sidecar.istio.io/inject: "true": Pod memenuhi kondisi injeksi otomatis jika memiliki label atau anotasi sidecar.istio.io/inject: "true".
CatatanUntuk instans ASM versi sebelum 1.12, injeksi otomatis hanya didukung melalui pencocokan anotasi Pod.
Untuk instans ASM versi 1.12 dan yang lebih baru, injeksi otomatis didukung melalui pencocokan label maupun anotasi Pod.
Label memiliki prioritas pencocokan yang lebih tinggi daripada anotasi. Misalnya, jika sebuah Pod memiliki label sidecar.istio.io/inject: "true" dan anotasi sidecar.istio.io/inject: "false", maka Pod tersebut akan ditandai dengan label sidecar.istio.io/inject: "true", bukan anotasi sidecar.istio.io/inject: "false".
CatatanJika Anda mengonfigurasi kebijakan di mana namespace tidak memiliki label Istio-injection: Disabled dan Pod tidak memiliki label Sidecar.istio.io/inject: False, ASM secara otomatis akan menambahkan label Istio-injection: Disabled ke namespace kube-system. Hal ini memastikan komponen sistem tidak terpengaruh.
(Opsional) Di bawah bagian Injection Policy Configuration Management, klik Show Advanced Options untuk mengonfigurasi opsi lanjutan.
Item konfigurasi
Deskripsi
Pod Label Selector For Sidecar Injection (AlwaysInjectSelector)
AlwaysInjectSelector adalah pemilih label Pod yang dapat dikonfigurasi. Pod yang dipilih oleh AlwaysInjectSelector diperlakukan seolah-olah memiliki label atau anotasi sidecar.istio.io/inject:"true".
Pod Label Selector To Prevent Sidecar Injection (NeverInjectSelector)
NeverInjectSelector adalah pemilih label Pod yang dapat dikonfigurasi. Pod yang dipilih oleh NeverInjectSelector diperlakukan seolah-olah memiliki label atau anotasi sidecar.istio.io/inject:"false".
CatatanAlwaysInjectSelector dan NeverInjectSelector keduanya merupakan pemilih label Pod dan dikonfigurasi dengan cara yang sama. Setiap pemilih dapat memiliki beberapa baris, dan setiap baris merupakan ekspresi pemilihan label. Sebuah Pod dipilih jika label-nya cocok dengan salah satu ekspresi tersebut.
Setiap ekspresi pemilihan label memiliki tiga bagian:
Kunci: Kunci dari label Pod yang digunakan untuk pencocokan.
Operator: Operator yang digunakan untuk mencocokkan label Pod. Anda dapat memilih salah satu dari empat operator berikut:
In: Ekspresi cocok jika nilai label Pod ada dalam daftar nilai yang ditentukan.
NotIn: Ekspresi cocok jika nilai label Pod tidak ada dalam daftar nilai yang ditentukan.
Exists: Ekspresi cocok jika kunci yang ditentukan ada dalam label Pod.
DoesNotExist: Ekspresi cocok jika kunci yang ditentukan tidak ada dalam label Pod.
Nilai: Jika Anda memilih In atau NotIn sebagai operator, tentukan daftar nilai untuk dicocokkan.
Di bagian bawah halaman, klik Update Settings.
Konfigurasi injector sidecar
Injector sidecar adalah layanan admission webhook yang diterapkan di kluster Kubernetes bidang data. Layanan ini bukan proxy sidecar, melainkan bertanggung jawab untuk secara otomatis menyuntikkan proxy sidecar. Layanan dan beban kerja injector sidecar diterapkan di namespace istio-system kluster Kubernetes, dengan nama yang diawali dengan istio-sidecar-injector. Anda dapat menyesuaikan pengaturan sumber daya dan jumlah replika komponen injector sidecar guna memastikan ketersediaannya saat banyak Pod disuntikkan secara bersamaan. Kami menyarankan Anda mengonfigurasi metrik pemantauan dan aturan peringatan untuk layanan admission webhook injector sidecar. Untuk informasi selengkapnya, lihat Manajemen peringatan Container Service dan Metrik untuk komponen kube-apiserver.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Injection Policy Configuration, di bagian Sidecar Injector Configuration Management, konfigurasikan injector sidecar. Lalu, di bagian bawah halaman, klik Update Settings.
Item konfigurasi
Deskripsi
Sidecar Injector Resource Configuration
Konfigurasikan Resource Limits dan Required Resources untuk kontainer injector sidecar.
Resource Limits: Konfigurasikan batas sumber daya CPU dan memori untuk kontainer injector sidecar. Satuan CPU adalah core, dan satuan memori adalah MiB.
Required Resources: Konfigurasikan sumber daya CPU dan memori yang dibutuhkan oleh kontainer injector sidecar. Satuan CPU adalah core, dan satuan memori adalah MiB.
Number Of Pod Replicas
Konfigurasikan jumlah replika untuk Pod injector sidecar.
CatatanMenambah jumlah replika meningkatkan ketersediaan layanan injeksi sidecar saat banyak Pod disuntikkan secara bersamaan. Kami menyarankan Anda mengatur jumlah replika Pod menjadi 2 atau lebih.
Rewrite Health Check
Menentukan apakah akan menulis ulang pemeriksaan kesehatan untuk Pod selama injeksi. Untuk menentukan apakah akan mengaktifkan penulisan ulang pemeriksaan kesehatan, lihat Aktifkan pengalihan pemeriksaan kesehatan untuk aplikasi dalam service mesh.
Sidecar-injector Deployment Node Selection
Pilih node tempat Pod injector sidecar diterapkan dengan mencocokkan label.
Klik Tambahkan Label Pencocokan, lalu masukkan Name dan Value label node kluster bidang data untuk mencocokkan node penyebaran tertentu.
Contoh 1: Menonaktifkan injeksi otomatis untuk Pod tertentu dalam namespace dan mengaktifkannya untuk Pod lainnya
Konfigurasikan kebijakan injeksi otomatis.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Injection Policy Configuration, di bagian Injection Policy Configuration Management, konfigurasikan informasi terkait.
Konfigurasi berikut menunjukkan bahwa proxy sidecar secara otomatis disuntikkan ke semua Pod dalam namespace yang memiliki label istio-injection: enabled, kecuali jika Pod memiliki label atau anotasi sidecar.istio.io/inject: "false".
Item konfigurasi
Deskripsi
Condition For Pod Namespace Labels
Pilih Includes Istio-injection:enabled.
Condition For Pod Labels/annotations
Pilih Does Not Include Sidecar.istio.io/injection: "false".
Buat namespace global dan aktifkan injeksi otomatis untuk namespace tersebut.
Pada halaman detail instans ASM, pilih di panel navigasi sebelah kiri. Pada halaman yang muncul, klik Create.
Pada panel Create Namespace, masukkan Name untuk namespace tersebut. Dalam contoh ini, gunakan test1. Di sebelah kanan Labels, klik Add. Atur Name menjadi istio-injection dan Value menjadi enabled. Lalu, klik OK.
Di bagian atas halaman, klik Sync Automatic Injection To Kubernetes Cluster untuk menyinkronkan namespace global dengan kluster Kubernetes bidang data.
Buat aplikasi.
Buat aplikasi details di namespace test1 kluster ACK bidang data. Untuk informasi selengkapnya, lihat Menyebar aplikasi di kluster yang terkait dengan instans ASM.
Verifikasi apakah proxy sidecar disuntikkan ke dalam Pod aplikasi.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di bagian atas halaman Deployments, atur Namespace menjadi test1 dan klik nama aplikasi details.
Pada tab Pods, Anda dapat melihat bahwa Pod berisi citra Proxy. Hal ini menunjukkan bahwa proxy sidecar berhasil disuntikkan.

Tambahkan label ke Pod untuk menonaktifkan injeksi otomatis.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih .
Pada halaman Stateless, klik More > View YAML di kolom Actions aplikasi details di namespace test1.
Pada kotak dialog Edit YAML, ubah konfigurasi YAML dan klik Update.
Jika versi ASM Anda 1.12.4 atau lebih baru, tambahkan label ke parameter labels dengan kunci
sidecar.istio.io/injectdan nilai"false", yaitu,sidecar.istio.io/inject: 'false'.
Jika versi ASM lebih lama dari 1.12.4, tambahkan anotasi di bawah parameter annotations dengan kunci
sidecar.istio.io/injectdan nilai"false":sidecar.istio.io/inject: "false".
Verifikasi bahwa injeksi otomatis dinonaktifkan untuk Pod layanan details, meskipun injeksi otomatis diaktifkan untuk namespace test1.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di bagian atas halaman Deployments, atur Namespace menjadi test1 dan klik nama aplikasi details.
Pada tab Pods, Anda dapat melihat bahwa Pod tidak berisi citra Proxy. Hal ini menunjukkan bahwa injeksi otomatis dinonaktifkan untuk Pod layanan details, meskipun injeksi otomatis diaktifkan untuk namespace test1.

Contoh 2: Mengonfigurasi kebijakan injeksi otomatis untuk Pod individual
Jika Anda tidak ingin mengonfigurasi kebijakan injeksi otomatis di tingkat namespace, Anda dapat mengonfigurasinya untuk Pod individual. Langkah-langkah berikut menjelaskan cara melakukan operasi ini.
Konfigurasikan kebijakan injeksi otomatis.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Injection Policy Configuration Management, di bagian Injection Policy Configuration Management, konfigurasikan informasi terkait. Lalu, di bagian bawah halaman, klik Update Settings.
Konfigurasi berikut menunjukkan bahwa proxy sidecar secara otomatis disuntikkan ke semua Pod yang memiliki label sidecar.istio.io/inject: "true". Namun, proxy sidecar tidak disuntikkan ke Pod apa pun di namespace yang memiliki label istio-injection:disabled.
Item konfigurasi
Deskripsi
Condition For Pod Namespace Labels
Pilih Does Not Include Istio-injection:disabled.
Condition For Pod Labels/annotations
Pilih Includes Sidecar.istio.io/injection: "true".
Di kluster ACK, buat namespace bernama test2 yang tidak memiliki label apa pun. Untuk informasi selengkapnya, lihat Mengelola namespace dan kuota.
Buat aplikasi reviews di namespace test2 kluster ACK. Untuk informasi selengkapnya, lihat Menyebar aplikasi di kluster yang terkait dengan instans ASM.
Tambahkan label ke Pod untuk mengaktifkan injeksi otomatis.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di bagian atas halaman Stateless, atur Namespace menjadi test2. Di kolom Actions untuk layanan reviews, klik Lainnya > Lihat YAML.
Pada kotak dialog Edit YAML, di bawah parameter labels, tambahkan label
sidecar.istio.io/inject: "true". Lalu, klik Perbarui.CatatanUntuk menggunakan label dalam mengonfigurasi injeksi otomatis untuk Pod, instans Service Mesh (ASM) Anda harus versi 1.12.4 atau lebih baru. Untuk informasi selengkapnya tentang cara meningkatkan instans, lihat Meningkatkan instans ASM.

Verifikasi bahwa kebijakan injeksi otomatis berhasil dikonfigurasi untuk Pod tersebut.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di bagian atas halaman Stateless, atur Namespace menjadi test2, lalu klik nama aplikasi reviews.
Pada tab Pods, Anda dapat melihat bahwa Pod berisi citra Proxy. Hal ini menunjukkan bahwa kebijakan injeksi otomatis berhasil dikonfigurasi untuk Pod tersebut.

Referensi
Pod yang sedang berjalan harus dimulai ulang agar kebijakan injeksi sidecar berlaku. Untuk informasi selengkapnya, lihat Memulai ulang Pod.
Jika aplikasi yang diaktifkan Istio masih menggunakan versi lama proxy sidecar setelah Anda meningkatkan lapisan kontrol, Anda harus meningkatkan proxy sidecar tersebut. Untuk informasi selengkapnya, lihat Meningkatkan proxy sidecar.
Anda dapat mengonfigurasi penggunaan sumber daya, kebijakan intersepsi lalu lintas, proxy DNS, dan siklus hidup proxy sidecar pada berbagai tingkatan, seperti global, namespace, beban kerja, dan Pod. Untuk informasi selengkapnya, lihat Mengonfigurasi proxy sidecar.