Aplikasi klien yang di-hosting Kube

Koneksi klien dari beberapa pod

Saat Anda memiliki beberapa pod yang terhubung ke server Redis, pastikan koneksi baru dari pod dibuat secara bertahap. Jika beberapa pod dimulai dalam waktu singkat tanpa melalui proses bertahap, akan menyebabkan lonjakan mendadak jumlah koneksi klien yang dibuat. Tingginya jumlah koneksi menyebabkan beban tinggi pada server Redis dan dapat menyebabkan timeout.

Hindari skenario yang sama saat mematikan beberapa pod secara bersamaan. Gagal terhuyung-huyung shutdown dapat menyebabkan penurunan tajam dalam jumlah koneksi yang mengarah ke tekanan CPU.

Sumber daya pod yang cukup

Pastikan bahwa pod yang menjalankan aplikasi klien Anda diberi cukup sumber daya CPU dan memori. Jika aplikasi klien berjalan mendekati batas sumber dayanya, maka dapat menghasilkan waktu habis.

Sumber daya node yang cukup

Pod yang menjalankan aplikasi klien dapat dipengaruhi oleh Pod lain yang berjalan pada node yang sama dan membatasi koneksi Redis atau operasi IO. Jadi selalu pastikan bahwa node di mana pod aplikasi klien Anda berjalan memiliki cukup memori, CPU, dan bandwidth jaringan. Kehabisan sumber daya ini dapat mengakibatkan masalah konektivitas.

Aplikasi klien yang dihosting Linux dan pengaturan TCP

Jika aplikasi klien Azure Cache for Redis Anda berjalan pada kontainer berbasis Linux, sebaiknya perbarui beberapa pengaturan TCP. Pengaturan ini dirinci dalam Pengaturan TCP untuk aplikasi klien yang dihosting Linux.

Potensi benturan koneksi dengan Istio /Envoy

Saat ini, Azure Cache for Redis menggunakan port 15xxx untuk cache berkluster untuk mengekspos node kluster ke aplikasi klien. Seperti yang didokumenkan di sini, port yang sama juga digunakan oleh proksi sidecar Istio.io yang disebut Envoy dan dapat mengganggu pembuatan koneksi, terutama pada port 15001 dan 15006.

Saat menggunakan Istio dengan kluster Azure Cache for Redis, pertimbangkan untuk mengecualikan port tabrakan potensial dengan anotasi istio.

annotations:
  traffic.sidecar.istio.io/excludeOutboundPorts: "15000,15001,15004,15006,15008,15009,15020"

Untuk menghindari gangguan koneksi, sebaiknya:

  • Pertimbangkan untuk menggunakan cache nonclustered atau cache tingkat Enterprise sebagai gantinya
  • Hindari mengonfigurasi sidecar Istio pada pod yang menjalankan kode klien Azure Cache for Redis