Pod Kubernetes Dapat Penempatan Lebih Cerdas dengan Alat Automatic Zone Placement Baru

Tim Komunitas BigGo
Pod Kubernetes Dapat Penempatan Lebih Cerdas dengan Alat Automatic Zone Placement Baru

Dalam dunia aplikasi cloud-native, Kubernetes telah menjadi standar de facto untuk orkestrasi container. Namun, satu tantangan yang terus berlanjut adalah ketidakmampuan scheduler untuk memahami topologi jaringan di luar cluster. Keterbatasan ini menjadi sangat bermasalah ketika aplikasi perlu berkomunikasi dengan layanan eksternal seperti database, di mana latensi lintas zona dapat secara signifikan memengaruhi kinerja dan biaya. Solusi baru bernama Automatic Zone Placement sedang menciptakan buzz di komunitas Kubernetes dengan mengatasi masalah persis ini.

Masalah Kinerja Lintas Zona

Ketika Kubernetes menjadwalkan pod tanpa kesadaran akan lokasi sumber daya eksternal, aplikasi dapat berakhir berkomunikasi melintasi availability zone yang tidak perlu. Hal ini menciptakan dua masalah utama: peningkatan latensi dan biaya transfer data yang lebih tinggi. Lalu lintas jaringan lintas AZ di lingkungan cloud seperti AWS dikenakan biaya, dan latensi antar zona, meskipun tampaknya kecil, dapat terakumulasi secara signifikan dalam aplikasi yang melakukan banyak panggilan jaringan.

Diskusi komunitas mengungkapkan bahwa ini bukan hanya kekhawatiran teoretis. Seorang komentator mencatat bahwa lalu lintas antar zona adalah biaya terbesar kedua kami di tagihan AWS kami, lebih dari biaya EC2/EKS kami, berjumlah hingga ratusan ribu dolar setiap tahunnya. Peserta lain mengamati bahwa latensi lintas AZ biasanya mengukur sekitar 0,7ms tetapi dapat melonjak hingga 3-4ms dalam beberapa kasus - perbedaan orde magnitudo yang menjadi kritis ketika aplikasi membuat lusinan RPC untuk melayani satu permintaan.

Kebanyakan orang menerima peningkatan latensi sedikit untuk ketersediaan yang lebih tinggi, tetapi saya kira dalam kasus ini, hal itu tidak dapat diterima.

Perbandingan Dampak Performa

  • Latensi AZ yang sama: 0.119-0.187ms
  • Latensi lintas AZ: 0.548-0.658ms
  • Peningkatan performa: Peningkatan TPS 175-375%
  • Biaya transfer data: ~$0.01/GB antar AZ di AWS

Cara Kerja Automatic Zone Placement

Solusi ini menggunakan arsitektur dua komponen yang cerdik yang bekerja dalam infrastruktur Kubernetes yang ada. Layanan pencarian ringan bertindak sebagai otak, mengambil nama domain dan memetakannya ke availability zone tertentu berdasarkan rentang alamat IP. Layanan ini kemudian terintegrasi dengan Kubernetes melalui mutating webhook yang didukung oleh Kyverno, yang mencegat permintaan pembuatan pod dan secara otomatis menyuntikkan aturan node affinity.

Apa yang membuat pendekatan ini sangat elegan adalah kesederhanaan dan otomasinya. Alih-alih meminta pengembang untuk mengonfigurasi aturan node affinity secara manual yang mungkin menjadi usang ketika sumber daya eksternal berpindah selama peristiwa pemeliharaan, sistem secara dinamis menentukan penempatan optimal pada saat pembuatan pod. Solusi ini menggunakan aturan affinity preferredDuringSchedulingIgnoredDuringExecution, yang berarti pod akan mencoba dijadwalkan di zona optimal tetapi masih dapat berjalan di tempat lain jika diperlukan.

Komponen Solusi

  • Lookup Service: API berbasis Python yang memetakan IP ke zona
  • Mutating Webhook: Mesin kebijakan berbasis Kyverno
  • Affinity Type: preferredDuringSchedulingIgnoredDuringExecution
  • Requirements: FQDN A record tunggal, pemetaan subnet yang diketahui

Pertanyaan dan Pertimbangan Komunitas

Diskusi seputar alat ini mengungkapkan beberapa pertimbangan penting untuk penggunaan produksi. Satu pertanyaan kunci yang diajukan adalah tentang menangani skenario failover: Bagaimana Anda menangani failover RDS? Mutating Webhook hanya diaktifkan ketika Pod dibuat, jadi jika zona AZ tidak gagal, tidak ada pod yang akan dibuat dan aturan affinity untuk diubah.

Pembuat alat mengakui keterbatasan ini dalam implementasi saat ini, menyarankan bahwa kebijakan pemindaian latar belakang dapat ditambahkan untuk secara berkala memeriksa dan memperbarui deployment ketika lokasi sumber daya eksternal berubah. Ini menyoroti sifat dinamis dari lingkungan cloud di mana lokasi sumber daya tidak statis.

Komentator lain mempertanyakan kebutuhan mendasar untuk alat seperti itu, menyarankan bahwa deployment zona tunggal mungkin cukup untuk banyak organisasi. Namun, data kinerja yang disajikan menceritakan kisah yang menarik - benchmark menunjukkan peningkatan 175% hingga 375% dalam transaksi per detik ketika pod ditempatkan bersama dengan database mereka di availability zone yang sama.

Implikasi Lebih Luas dan Arah Masa Depan

Konsep di balik Automatic Zone Placement memiliki implikasi melampaui hanya skenario AWS RDS. Komentator mencatat bahwa pendekatan serupa dapat bekerja untuk deployment on-premise, di mana workload dapat dijadwalkan berdasarkan kedekatan fisik dengan sumber daya di rak, baris, atau pusat data tertentu. Pembuat alat menyebutkan sedang mengerjakan ekstensi untuk layanan multi-AZ dan pengoptimalan perutean lalu lintas.

Salah satu anggota komunitas menunjuk bahwa solusi saat ini memerlukan pemetaan statis informasi subnet, menyarankan bahwa versi masa depan dapat secara otomatis mengumpulkan data ini melalui API penyedia cloud. Ini akan membuat alat lebih mudah beradaptasi dengan lingkungan dinamis di mana konfigurasi jaringan berubah secara sering.

Metrik Latensi AWS (region eu-central-1)

  • AZ yang Sama: 0.164ms (az1), 0.119ms (az2), 0.187ms (az3)
  • Lintas AZ: 0.556ms (az1-az2), 0.548ms (az1-az3), 0.658ms (az2-az3)

Kesimpulan

Automatic Zone Placement mewakili langkah maju yang penting dalam membuat Kubernetes lebih pintar tentang kesadaran infrastruktur. Dengan menjembatani kesenjangan antara penjadwalan cluster dan lokasi sumber daya eksternal, alat ini mengatasi kekhawatiran kinerja dan biaya dunia nyata yang dihadapi banyak organisasi di lingkungan produksi. Meskipun solusi memiliki keterbatasan seputar penanganan failover dan memerlukan beberapa konfigurasi manual, konsep ini menunjukkan bagaimana Kubernetes dapat berevolusi untuk lebih memahami dan mengoptimalkan ekosistem infrastruktur yang lebih luas di mana ia beroperasi. Seiring teknologi cloud-native matang, alat seperti ini menyoroti kebutuhan berkelanjutan untuk penempatan sumber daya yang lebih cerdas dan optimasi jaringan dalam sistem terdistribusi.

Referensi: Layanan penempatan zona otomatis