RangeStream يقلل استخدام الذاكرة في Kubernetes 1.37
ما هي ميزة RangeStream؟
تعمل ميزة RangeStream، التي دخلت مرحلة البيتا في إصدار Kubernetes 1.37، جنبًا إلى جنب مع etcd v3.7 لتمكين القراءة القائمة على البث لعمليات قراءة البيانات. في الطرق التقليدية، كان يتم الاحتفاظ بجزء البيانات بالكامل في الذاكرة قبل تخزين الكائن الكبير مؤقتًا في ذاكرة خادم API. وكان هذا يتسبب في رفع استهلاك الذاكرة إلى مستويات غير متوقعة، خاصة في البيئات التي تُدرج عددًا كبيرًا من الموارد ذات الأحجام الضخمة.
تأثير النهج القديم على الذاكرة
عندما يتلقى خادم API طلب list، يطلب أولاً المفاتيح المعنية من etcd، ثم يقوم بإنشاء الاستجابة. وحتى لو تم تقسيم البيانات إلى صفحات، فإن الاستجابة بالكامل تُحمل في الذاكرة نظرًا لعدم معرفة الحجم الكامل للكائن مسبقًا. وينشأ ضغط الذاكرة في نقطتين خلال هذه العملية: الأولى هي احتفاظ etcd بالاستجابة، والثانية هي تجميع خادم API للاستجابة وتخزينها مؤقتًا. ويمكن لقوائم ConfigMap أو Custom Resource Definition الكبيرة أن تتسبب في أخطاء نفاذ الذاكرة OOM (Out‑Of‑Memory) في كلا المرحلتين.
نهج الحل في RangeStream
تركز RangeStream على نقل البيانات في شكل تدفق جزءًا فجزء بدلاً من إرسالها دفعة واحدة. يعيد etcd النطاقات المطلوبة (range) في شكل كتل مفردة، ويبدأ خادم API في إرسال هذه الكتل إلى العميل بمجرد استلامها. وبهذه الطريقة، لا يضطر كل من etcd وخادم API إلى الاحتفاظ بالاستجابة كاملة في الذاكرة. وبذلك تظل الحاجة إلى الذاكرة عند مستوى أكثر قابلية للتنبؤ استنادًا إلى عدد الكتل المعالجة في نفس الوقت.
المكاسب الملموسة في استخدام الذاكرة
يوفر نموذج التدفق الذي تقدمه RangeStream فائدتين رئيسيتين:
- استهلاك ذاكرة قابل للتنبؤ: نظرًا لأن تدفق البيانات يتم على شكل كتل، فإن كمية البيانات المحتفظ بها في الذاكرة في أي لحظة لها حد أقصى ثابت.
- تقليل العبء على etcd: بدلاً من توليد استجابة ضخمة دفعة واحدة، يتم تقديم الاستجابة على أجزاء صغيرة، مما يقلل أيضًا الضغط على المعالج (CPU) الإدخال/الإخراج (I/O) لـ etcd.
التطبيق والتأثيرات التشغيلية
كون RangeStream في مرحلة البيتا يشير إلى أنها ليست خيارًا افتراضيًا لجميع البيئات بعد. ومع ذلك، يمكن لـ مسؤولي Kubernetes تفعيل هذه الميزة في بيئات الاختبار لمراقبة حدود الذاكرة. خاصة في العناقيد كبيرة الحجم (large‑scale)، قد يلزم إعادة تقييم معلمات خادم API مثل --max-request-bytes. وعند تفعيل RangeStream، يصبح من الممكن الإبقاء على هذه المعلمات عند مستوى أكثر مرونة.
التطوير المستقبلي ومساهمة المجتمع
يخطط مجتمع Kubernetes لنقل RangeStream من مرحلة البيتا إلى ميزة مستقرة. وفي هذه العملية، يُعد التنسيق بين مظوري etcd وفريق خادم API أمرًا حاسمًا. ستسمح الملاحظات بضبط إعدادات مثل حجم التدفق، وعدد الكتل، والمهلة الزمنية بشكل أكثر دقة. وستكون تقلبات الذاكرة وحوادث OOM التي يواجهها المستخدمون مصادر بيانات قيمة لتحسين هذه الإعدادات.
باختصار، تحقق RangeStream خطوة أخرى إلى الأمام في إدارة مجموعات البيانات الضخمة ضمن منظومة Kubernetes. فالسيطرة على استهلاك الذاكرة تقلل تكاليف البنية التحتية وتزيد الاستقرار ضد انقطاع الخدمة. ورغم أن كون الميزة في مرحلة التجربة يؤكد أهمية مرحلة الاختبار والملاحظات، فمن الواضح أنها ستوفر مزايا الاستقرار والأداء على المدى الطويل للمؤسسات المبكرة في تبنيها.
المصدر: مدونة Kubernetes
Kaynak: Kubernetes Blog
Alakalı İçerikler
-
Kubernetes 1.37’da Sıfır Pod’a Ölçekleme Şimdi Varsayılan 3 Gün önce
Kubernetes 1.37, HPA sayesinde iş yüklerini dış metriklerle sıfır pod’a kadar otomatik ölçekleyerek maliyet tasarrufu sağlıyor; soğuk başlatma ve istek kuyruğu konularına da değiniyor.
-
حل نقل سجلات HCP Vault Dedicated إلى Sentinel 9 Dakika önce
توفر HashiCorp مراقبة أمان مركزية عبر توجيه سجلات تدقيق HCP Vault Dedicated إلى Azure Log Analytics ثم Microsoft Sentinel باستخدام خط بيانات مبني على Terraform.
-
OpenShift ile Üniversitelerde Otomatik Düğüm Kurtarma 21 Saat önce
Red Hat OpenShift'in otomatik düğüm kurtarma özelliği, yükseköğretimde sanallaştırma maliyetlerini düşürürken veri bütünlüğünü koruyarak kesintisiz hizmet sağlar.
-
AI Ajan Maliyetleri Düşen Tokenlerde Üç Katına Çıktı 2 Gün önce
Token fiyatları %75 azalırken, ajan tabanlı yapay zekâ hizmetlerinin maliyeti üç katına çıktı; bu makale artışın matematiğini ve yöneticilerin kontrol yöntemlerini inceliyor.
-
OpenStack Kesintisinde Canlı Yeniden Oluşturma Başarısı 4 Gün önce
Canonical ekibi, eski yedek nedeniyle bir gecede çöküş yaşayan OpenStack kontrol düzlemini hizmet bazında canlı yeniden inşa ederek veri kaybı olmadan kurtardı.
-
Kubernetes 1.37’da Depolama Sürümü Göçü Otomatik Açıldı 5 Gün önce
Kubernetes 1.37, Depolama Sürümü Göçü (SVM) özelliğini GA seviyesine taşıyarak tüm kümelerde varsayılan hâle getiriyor; API uyumluluğu ve veri bütünlüğü daha sorunsuz.
- Kubernetes
- RangeStream
- etcd
- bellek yönetimi
- API sunucusu
- OOM
- beta özellik
Tepkini Göster
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Yorumlar
Sende Yorumunu Ekle