Memasukkan proxy file bantuan

Anthos Service Mesh menggunakan proxy file bantuan untuk meningkatkan keamanan, keandalan, dan kemampuan observasi jaringan. Fungsi-fungsi ini diabstraksikan dari penampung utama aplikasi dan diimplementasikan dalam proxy di luar proses umum (file bantuan), yang dikirim sebagai penampung terpisah dalam Pod yang sama. Mesh ini menyediakan fitur Anthos Service Mesh tanpa mendesain ulang aplikasi produksi untuk berpartisipasi dalam mesh layanan.

Injeksi proxy file bantuan otomatis (injeksi otomatis) terjadi saat Anthos Service Mesh mendeteksi label namespace yang Anda konfigurasikan untuk Pod workload. Proxy ini mencegat semua traffic masuk dan keluar ke workload dan berkomunikasi dengan Anthos Service Mesh.

Mengaktifkan injeksi file bantuan otomatis

Cara yang direkomendasikan untuk memasukkan proxy file bantuan adalah dengan menggunakan injektor file bantuan otomatis berbasis webhook, meskipun Anda dapat mengupdate konfigurasi Kubernetes Pod secara manual. Untuk mengaktifkan injeksi otomatis, Anda harus menambahkan label revisi ke namespace. Label yang ditambahkan bergantung pada apakah Anda men-deploy bidang kontrol yang dikelola Google Anthos Service Mesh atau menginstal bidang kontrol dalam cluster. Label revisi digunakan oleh webhook injektor file bantuan untuk mengaitkan file bantuan yang dimasukkan dengan revisi bidang kontrol tertentu.

Untuk mengaktifkan injeksi otomatis:

Dalam cluster

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

  2. Terapkan label revisi ke namespace dan hapus label injeksi istio (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. Mulai ulang pod yang terpengaruh, menggunakan langkah-langkah di bagian berikutnya.

Dikelola Google

  1. Terapkan label revisi berikut ke namespace Anda dan hapus label istio-injection (jika ada). Dalam perintah berikut, ganti NAMESPACE dengan nama namespace tempat Anda ingin mengaktifkan injeksi otomatis:

    kubectl label namespace NAMESPACE  istio-injection- istio.io/rev=asm-managed --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.

  2. Mulai ulang pod yang terpengaruh, menggunakan langkah-langkah di bagian berikutnya.

Memulai ulang Pod untuk memperbarui proxy file bantuan

Dengan injeksi file bantuan otomatis, Anda dapat mengupdate file bantuan untuk Pod yang ada dengan memulai ulang Pod:

Cara memulai ulang Pod bergantung pada apakah Pod dibuat sebagai bagian dari Deployment.

  1. Jika Anda menggunakan Deployment, mulai ulang Deployment, yang akan memulai ulang semua Pod dengan file bantuan:

    kubectl rollout restart deployment -n YOUR_NAMESPACE

    Jika Anda tidak menggunakan Deployment, hapus Pod, lalu Pod akan otomatis dibuat ulang dengan file bantuan:

    kubectl delete pod -n YOUR_NAMESPACE --all
  2. Pastikan semua Pod di namespace memiliki file bantuan yang dimasukkan:

    kubectl get pod -n YOUR_NAMESPACE

    Pada contoh output dari perintah sebelumnya berikut, perhatikan bahwa kolom READY menunjukkan bahwa ada dua penampung untuk setiap beban kerja: penampung utama dan container untuk proxy sidecar.

    NAME                    READY   STATUS    RESTARTS   AGE
    YOUR_WORKLOAD           2/2     Running   0          20s
    ...
    

Langkah selanjutnya

Pelajari lebih lanjut: