Memasukkan proxy sidecar dengan Cloud Service Mesh

Dokumen ini membahas cara mengonfigurasi injeksi proxy sidecar dengan Cloud Service Mesh untuk meningkatkan keamanan, keandalan, dan visibilitas jaringan. Fungsi ini diabstraksi dari penampung utama aplikasi dan diterapkan dalam proxy out-of-process umum (sidecar), yang dikirim sebagai penampung terpisah di Pod yang sama. Hal ini menyediakan fitur Cloud Service Mesh tanpa mendesain ulang aplikasi produksi Anda untuk berpartisipasi dalam mesh layanan.

Injeksi proxy sidecar otomatis (injeksi otomatis) terjadi saat Cloud Service Mesh mendeteksi label namespace yang Anda konfigurasikan untuk Pod beban kerja. Proxy menangkap semua traffic masuk dan keluar ke beban kerja dan berkomunikasi dengan Cloud Service Mesh.

Mengaktifkan injeksi sidecar otomatis

Cara yang direkomendasikan untuk memasukkan proxy sidecar adalah menggunakan penginjeksi sidecar otomatis berbasis webhook, meskipun Anda dapat memperbarui konfigurasi Kubernetes Pod secara manual.

Untuk mengaktifkan injeksi otomatis, Anda harus memberi label pada namespace dengan label injeksi default jika tag default disiapkan, atau dengan label revisi ke namespace Anda. Label digunakan oleh webhook injector sidecar untuk mengaitkan sidecar yang dimasukkan dengan revisi bidang kontrol tertentu.

Untuk mengaktifkan injeksi otomatis:

  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 ke namespace 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.

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

Mulai ulang Pod untuk mengupdate proxy sidecar

Dengan injeksi sidecar otomatis, Anda dapat mengupdate sidecar 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 sidecar:

    kubectl rollout restart deployment -n YOUR_NAMESPACE

    Jika Anda tidak menggunakan Deployment, hapus Pod, dan Pod akan otomatis dibuat ulang dengan sidecar:

    kubectl delete pod -n YOUR_NAMESPACE --all
  2. Pastikan semua Pod di namespace telah memasukkan sidecar:

    kubectl get pod -n YOUR_NAMESPACE

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

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

Langkah selanjutnya

Pelajari lebih lanjut: