يعد Metrics Server مصدرًا فعالاً وقابلاً للتطوير لمقاييس موارد الحاوية لخطوط أنابيب القياس التلقائي المضمنة في Kubernetes.
يجمع Metrics Server مقاييس الموارد من Kubelets ويعرضها في Kubernetes apiserver من خلال Metrics API لاستخدامها بواسطة Horizontal Pod Autoscaler وVertical Pod Autoscaler. يمكن أيضًا الوصول إلى Metrics API عبر kubectl top
، مما يسهل تصحيح أخطاء خطوط أنابيب القياس التلقائي.
حذر
خادم Metrics مخصص فقط لأغراض القياس التلقائي. على سبيل المثال، لا تستخدمه لإعادة توجيه المقاييس إلى حلول المراقبة، أو كمصدر لقياسات حلول المراقبة. في مثل هذه الحالات، يرجى جمع المقاييس من نقطة نهاية Kubelet /metrics/resource
مباشرةً.
يقدم خادم المقاييس:
يمكنك استخدام Metrics Server من أجل:
لا تستخدم Metrics Server عندما تحتاج إلى:
بالنسبة لحالات الاستخدام غير المدعومة، تحقق من حلول المراقبة الكاملة مثل Prometheus.
لدى Metrics Server متطلبات محددة لتكوين المجموعة والشبكة. هذه المتطلبات ليست الافتراضية لجميع توزيعات المجموعة. يرجى التأكد من أن توزيع مجموعتك يدعم هذه المتطلبات قبل استخدام Metrics Server:
--kubelet-insecure-tls
إلى Metrics Server)hostNetwork
). اقرأ المزيد عن مستوى التحكم في الاتصال بالعقدة..status.addresses
والمنفذ في .status.daemonEndpoints.kubeletEndpoint.port
الحقل (الافتراضي 10250). سيختار Metrics Server عنوان العقدة الأول استنادًا إلى القائمة المقدمة بواسطة علامة سطر أوامر kubelet-preferred-address-types
( InternalIP,ExternalIP,Hostname
في البيانات). يمكن تثبيت Metrics Server إما مباشرةً من بيان YAML أو عبر مخطط Helm الرسمي. لتثبيت أحدث إصدار من Metrics Server من بيان Components.yaml ، قم بتشغيل الأمر التالي.
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
يمكن العثور على تعليمات التثبيت للإصدارات السابقة في إصدارات Metrics Server.
خادم المقاييس | مجموعة/إصدار واجهة برمجة تطبيقات المقاييس | نسخة Kubernetes المدعومة |
---|---|---|
0.7.x | metrics.k8s.io/v1beta1 | 1.19+ |
0.6.x | metrics.k8s.io/v1beta1 | 1.19+ |
0.5.x | metrics.k8s.io/v1beta1 | *1.8+ |
0.4.x | metrics.k8s.io/v1beta1 | *1.8+ |
0.3.x | metrics.k8s.io/v1beta1 | 1.8-1.21 |
*تتطلب إصدارات Kubernetes الأقل من الإصدار 1.16 تمرير علامة سطر الأوامر --authorization-always-allow-paths=/livez,/readyz
يمكن تثبيت Metrics Server في وضع الإتاحة العالية مباشرة من بيان YAML أو عبر مخطط Helm الرسمي عن طريق تعيين قيمة replicas
أكبر من 1
. لتثبيت أحدث إصدار من Metrics Server في وضع الإتاحة العالية من بيان التوفر العالي. yaml، قم بتشغيل الأمر التالي.
على الإصدار 1.21+ من Kubernetes:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
في الإصدار 1.19-1.21 من Kubernetes:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability.yaml
ملحوظة
يتطلب هذا التكوين وجود مجموعة تحتوي على عقدتين على الأقل يمكن جدولة Metrics Server عليها.
أيضًا، لتعظيم كفاءة هذا التكوين المتاح للغاية، يوصى بإضافة علامة --enable-aggregator-routing=true
CLI إلى kube-apserver بحيث تكون الطلبات المرسلة إلى Metrics Server متوازنة التحميل بين المثيلين.
يتم الاحتفاظ بمخطط Helm كمكون إضافي ضمن هذا الريبو ويتم إصداره في مستودع المخططات المدعوم على فرع gh-pages
. سيتم إصدار نسخة جديدة من المخطط لكل إصدار من إصدارات Metrics Server ويمكن أيضًا إصدارها بشكل مستقل إذا كانت هناك حاجة. لا ينبغي الإشارة إلى المخطط الموجود في الفرع master
مباشرةً لأنه قد يحتوي على تعديلات منذ إصداره آخر مرة، ولعرض رمز المخطط، استخدم علامة إصدار المخطط.
يتطلب Metrics Server إمكانية CAP_NET_BIND_SERVICE
من أجل الارتباط بمنافذ ذات امتيازات باعتبارها منافذ غير جذر. إذا كنت تقوم بتشغيل Metrics Server في بيئة تستخدم PSSs أو آليات أخرى لتقييد إمكانيات الحجرة، فتأكد من السماح لـ Metrics Server باستخدام هذه الإمكانية. وينطبق هذا حتى إذا كنت تستخدم علامة --secure-port
لتغيير المنفذ الذي يربطه Metrics Server بمنفذ غير متميز.
بدءًا من الإصدار 0.5.0، يأتي Metrics Server مع طلبات الموارد الافتراضية التي يجب أن تضمن الأداء الجيد لمعظم تكوينات المجموعة حتى 100 عقدة:
يعتمد استخدام موارد Metrics Server على أبعاد مستقلة متعددة، مما يؤدي إلى إنشاء مظروف قابلية التوسع. يجب أن يعمل تكوين Metrics Server الافتراضي في مجموعات لا تتجاوز أيًا من الحدود المذكورة أدناه:
كمية | عتبة مساحة الاسم | عتبة الكتلة |
---|---|---|
#العقد | غير متوفر | 100 |
# القرون لكل عقدة | 70 | 70 |
# عمليات النشر مع HPAs | 100 | 100 |
يمكن تعديل الموارد بشكل متناسب بناءً على عدد العقد في المجموعة. بالنسبة للمجموعات التي تحتوي على أكثر من 100 عقدة، قم بتخصيص ما يلي بالإضافة إلى ذلك:
يمكنك استخدام نفس الأسلوب لتقليل طلبات الموارد، ولكن هناك حدود حيث قد يؤثر ذلك على أبعاد قابلية التوسع الأخرى مثل الحد الأقصى لعدد القرون لكل عقدة.
اعتمادًا على إعداد مجموعتك، قد تحتاج أيضًا إلى تغيير العلامات التي تم تمريرها إلى حاوية Metrics Server. الأعلام الأكثر فائدة:
--kubelet-preferred-address-types
- أولوية أنواع عناوين العقدة المستخدمة عند تحديد عنوان للاتصال بعقدة معينة (الافتراضي [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP])--kubelet-insecure-tls
- لا تتحقق من المرجع المصدق لشهادات الخدمة المقدمة من Kubelets. لأغراض الاختبار فقط.--requestheader-client-ca-file
- حدد حزمة شهادة الجذر للتحقق من شهادات العميل على الطلبات الواردة.--node-selector
-يمكن إكماله لاستخراج المقاييس من العقد المحددة بناءً على التصنيفاتيمكنك الحصول على قائمة كاملة بعلامات تكوين Metrics Server عن طريق تشغيل:
docker run --rm registry.k8s.io/metrics-server/metrics-server:v0.7.0 --help
يعد Metrics Server أحد مكونات مسار المقاييس الأساسية الموضح في بنية مراقبة Kubernetes.
لمزيد من المعلومات، راجع:
قبل نشر أي مشكلة، قم أولاً بمراجعة الأسئلة الشائعة والمشكلات المعروفة.
تعرف على كيفية التعامل مع مجتمع Kubernetes على صفحة المجتمع.
يمكنكم التواصل مع القائمين على هذا المشروع على:
تتم صيانة هذا المشروع بواسطة SIG Instrumentation
تخضع المشاركة في مجتمع Kubernetes لقواعد سلوك Kubernetes.