مراقبة مقاييس مستوى التحكم في خدمة Azure Kubernetes (AKS) (معاينة)

تعد صحة وحدة التحكم في خدمة Azure Kubernetes (AKS) أمرا بالغ الأهمية لأداء نظام المجموعة وموثوقيتها. توفر مقاييس وحدة التحكم (معاينة) رؤية أكبر لتوفرها وأدائها، ما يسمح لك بزيادة إمكانية المراقبة الشاملة والحفاظ على التميز التشغيلي. هذه المقاييس متوافقة تماما مع Prometheus وGrafana، ويمكن تخصيصها لتخزين ما تعتبره ضروريا فقط. باستخدام هذه المقاييس الجديدة، يمكنك جمع جميع المقاييس من خادم API و ETCD و Scheduler و Autoscaler و مدير وحدة التحكم.

تساعدك هذه المقالة على فهم هذه الميزة الجديدة وكيفية تنفيذها وكيفية مراقبة بيانات تتبع الاستخدام التي تم جمعها.

المتطلبات الأساسية والقيود

تثبيت ملحق Azure CLI أو تحديثه aks-preview

هام

تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:

aks-preview تثبيت ملحق Azure CLI باستخدام az extension add الأمر .

az extension add --name aks-preview

إذا كنت بحاجة إلى تحديث إصدار الملحق، يمكنك القيام بذلك باستخدام az extension update الأمر .

az extension update --name aks-preview

تسجيل علامة ميزة "AzureMonitorMetricsControlPlanePreview"

قم بتسجيلAzureMonitorMetricsControlPlanePreviewميزة الإشارة باستخدامتسجيل ميزة az كما هو موضح في المثال التالي:

az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

يستغرق الأمر بضع دقائق حتى تظهر الحالة مُسجل. تحقق من حالة التسجيل باستخدام الأمر az feature show :

az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

عندما تعكس الحالة Registered، قم بتحديث تسجيل موفر موارد Microsoft.ContainerService باستخدام الأمر az provider register:

az provider register --namespace "Microsoft.ContainerService"

تمكين مقاييس مستوى التحكم على نظام مجموعة AKS

يمكنك تمكين مقاييس مستوى التحكم باستخدام خدمة Azure Monitor المدارة للوظيفة الإضافية Prometheus أثناء إنشاء نظام المجموعة أو لنظام مجموعة موجود. لتجميع مقاييس Prometheus من مجموعة Kubernetes الخاصة بك، راجع تمكين Prometheus وGrafana لمجموعات Kubernetes واتبع الخطوات الموجودة في علامة التبويب CLI لمجموعة AKS.

إذا كان مجموعتك تحتوي بالفعل على ملحق Prometheus المنشور، فيمكنك ببساطة تشغيل az aks update لضمان تحديثات نظام المجموعة لبدء جمع مقاييس وحدة التحكم.

az aks update --name <cluster-name> --resource-group <resource-group>

إشعار

على عكس المقاييس التي تم جمعها من عقد نظام المجموعة، يتم جمع مقاييس مستوى التحكم بواسطة مكون ليس جزءا من الوظيفة الإضافية ama-metrics . يضمن تمكين علامة الميزة AzureMonitorMetricsControlPlanePreview والوظيفة الإضافية prometheus المدارة جمع مقاييس مستوى التحكم. بعد تمكين جمع المقاييس، قد يستغرق ظهور البيانات في مساحة العمل عدة دقائق.

الاستعلام عن مقاييس مستوى التحكم

يتم تخزين مقاييس وحدة التحكم في مساحة عمل Azure monitor في منطقة نظام المجموعة. يمكن الاستعلام عن ذلك مباشرة من مساحة العمل أو من خلال مثيل Azure Managed Grafana المتصل بمساحة العمل. للعثور على مساحة عمل Azure Monitor المقترنة بالمجموعة، من الجزء الأيسر من مجموعة AKS المحددة، انتقل إلى قسم المراقبة وحدد Insights. في صفحة Container Insights للمجموعة، حدد Monitor Settings.

لقطة شاشة لمساحة عمل Azure Monitor.

إذا كنت تستخدم Azure Managed Grafana لتصور البيانات، يمكنك استيراد لوحات المعلومات التالية. يوفر AKS قوالب لوحة المعلومات لمساعدتك في عرض بيانات تتبع الاستخدام لمستوى التحكم وتحليلها في الوقت الفعلي.

تخصيص مقاييس مستوى التحكم

بشكل افتراضي، تتضمن AKs مجموعة مكونة مسبقا من المقاييس لتجميع كل مكون وتخزينه. API server ويتم تمكين و etcd بشكل افتراضي. يمكن تخصيص هذه القائمة من خلال ama-settings-configmap. تتوفر قائمة minimal-ingestion مقاييس ملف التعريف هنا.

يسرد التالي الأهداف الافتراضية:

controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true

الخيارات المختلفة مشابهة ل Azure Managed Prometheus المدرجة هنا.

يجب تطبيق كافة ConfigMaps على kube-system مساحة الاسم لأي مجموعة.

استيعاب الحد الأدنى فقط من المقاييس للأهداف الافتراضية

هذا هو السلوك الافتراضي مع الإعداد default-targets-metrics-keep-list.minimalIngestionProfile="true". يتم استيعاب المقاييس المدرجة لاحقا في هذه المقالة فقط لكل هدف من الأهداف الافتراضية، والتي في هذه الحالة هي controlplane-apiserver و controlplane-etcd.

استيعاب جميع المقاييس من جميع الأهداف

قم بتنفيذ الخطوات التالية لجمع جميع المقاييس من جميع الأهداف على نظام المجموعة.

  1. قم بتنزيل ملف ConfigMap ama-metrics-settings-configmap.yaml وأعد تسميته إلى configmap-controlplane.yaml.

  2. تعيين minimalingestionprofile = false وتحقق من الأهداف ضمن default-scrape-settings-enabled التي تريد استخراجها، يتم تعيين إلى true. الأهداف الوحيدة التي يمكنك تحديدها هي: controlplane-apiserverوcontrolplane-cluster-autoscalercontrolplane-kube-schedulercontrolplane-kube-controller-manager.controlplane-etcd

  3. تطبيق ConfigMap عن طريق تشغيل الأمر kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    بعد تطبيق التكوين، يستغرق الأمر عدة دقائق قبل أن تظهر المقاييس من الأهداف المحددة التي تم استخراجها من مستوى التحكم في مساحة عمل Azure Monitor.

استيعاب بعض المقاييس الأخرى بالإضافة إلى الحد الأدنى من المقاييس

Minimal ingestion profile هو إعداد يساعد على تقليل حجم استيعاب المقاييس، حيث يتم جمع المقاييس المستخدمة فقط من قبل لوحات المعلومات الافتراضية وقواعد التسجيل الافتراضية والتنبيهات الافتراضية. نفذ الخطوات التالية لتخصيص هذا السلوك.

  1. قم بتنزيل ملف ConfigMap ama-metrics-settings-configmap وأعد تسميته إلى configmap-controlplane.yaml.

  2. تعيين minimalingestionprofile = true وتحقق من تعيين الأهداف ضمن default-scrape-settings-enabled التي تريد استخراجها إلى true. الأهداف الوحيدة التي يمكنك تحديدها هي: controlplane-apiserverوcontrolplane-cluster-autoscalercontrolplane-kube-schedulercontrolplane-kube-controller-manager.controlplane-etcd

  3. default-targets-metrics-keep-listضمن ، حدد قائمة المقاييس للأهدافtrue. على سبيل المثال،

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • تطبيق ConfigMap عن طريق تشغيل الأمر kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    بعد تطبيق التكوين، يستغرق الأمر عدة دقائق قبل أن تظهر المقاييس من الأهداف المحددة التي تم استخراجها من مستوى التحكم في مساحة عمل Azure Monitor.

استيعاب مقاييس محددة فقط من بعض الأهداف

  1. قم بتنزيل ملف ConfigMap ama-metrics-settings-configmap وأعد تسميته إلى configmap-controlplane.yaml.

  2. تعيين minimalingestionprofile = false وتحقق من تعيين الأهداف ضمن default-scrape-settings-enabled التي تريد استخراجها إلى true. الأهداف الوحيدة التي يمكنك تحديدها هنا هي controlplane-apiserverوcontrolplane-kube-controller-managercontrolplane-cluster-autoscalercontrolplane-kube-scheduler و.controlplane-etcd

  3. default-targets-metrics-keep-listضمن ، حدد قائمة المقاييس للأهدافtrue. على سبيل المثال،

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • تطبيق ConfigMap عن طريق تشغيل الأمر kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    بعد تطبيق التكوين، يستغرق الأمر عدة دقائق قبل أن تظهر المقاييس من الأهداف المحددة التي تم استخراجها من مستوى التحكم في مساحة عمل Azure Monitor.

استكشاف مشكلات مقاييس وحدة التحكم وإصلاحها

تأكد من التحقق من تمكين علامة AzureMonitorMetricsControlPlanePreview الميزة وتشغيل ama-metrics القرون.

إشعار

لن تترجم أساليب استكشاف الأخطاء وإصلاحها لخدمة Azure المدارة Prometheus مباشرة هنا لأن المكونات التي تقوم باستخراج مستوى التحكم غير موجودة في الوظيفة الإضافية prometheus المدارة.

تنسيق ConfigMap أو الأخطاء

تأكد من التحقق مرة متعددة من تنسيق ConfigMap، وإذا تم ملء الحقول بالقيم المقصودة بشكل صحيح. على وجه التحديد default-targets-metrics-keep-list، minimal-ingestion-profileو، و default-scrape-settings-enabled.

عزل وحدة التحكم عن مشكلة مستوى البيانات

ابدأ بتعيين بعض المقاييس المتعلقة بالعقدة إلى true وتحقق من إعادة توجيه المقاييس إلى مساحة العمل. يساعد هذا في تحديد ما إذا كانت المشكلة خاصة بكشط مقاييس وحدة التحكم.

الأحداث التي تم استيعابها

بمجرد تطبيق التغييرات، يمكنك فتح مستكشف المقاييس من صفحة نظرة عامة على Azure Monitor، أو من قسم المراقبة نظام المجموعة المحدد. في مدخل Microsoft Azure، حدد Metrics. تحقق من وجود زيادة أو نقصان في عدد الأحداث التي يتم تناولها في الدقيقة. يجب أن يساعدك في تحديد ما إذا كان المقياس المحدد مفقودا أو أن جميع المقاييس مفقودة.

المقياس المحدد غير مكشوف

كانت هناك حالات تم فيها توثيق المقاييس، ولكن لم يتم كشفها من الهدف ولم تتم إعادة توجيهها إلى مساحة عمل Azure Monitor. في هذه الحالة، من الضروري التحقق من إعادة توجيه المقاييس الأخرى إلى مساحة العمل.

لا يوجد وصول إلى مساحة عمل Azure Monitor

عند تمكين الوظيفة الإضافية، ربما تكون قد حددت مساحة عمل موجودة ليس لديك حق الوصول إليها. في هذه الحالة، قد يبدو وكأنه لا يتم جمع المقاييس وإعادة توجيهها. تأكد من إنشاء مساحة عمل جديدة أثناء تمكين الوظيفة الإضافية أو أثناء إنشاء نظام المجموعة.

تعطيل مقاييس مستوى التحكم على نظام مجموعة AKS

يمكنك تعطيل مقاييس وحدة التحكم في أي وقت، إما عن طريق تعطيل علامة الميزة، أو تعطيل Prometheus المدار، أو عن طريق حذف نظام مجموعة AKS.

تم تمكين علامة المعاينة بعد إعداد Prometheus المدار

إذا تم تمكين علامة المعاينة (AzureMonitorMetricsControlPlanePreview) على مجموعة Prometheus مدارة موجودة، فسيتطلب فرض تحديث لنظام المجموعة لإصدار مقاييس وحدة التحكم

يمكنك تشغيل تحديث az aks لضمان تحديثات نظام المجموعة لبدء جمع مقاييس مستوى التحكم.

az aks update -n <cluster-name> -g <resource-group>

إشعار

لا يزيل هذا الإجراء أي بيانات موجودة مخزنة في مساحة عمل Azure Monitor.

قم بتشغيل الأمر التالي لإزالة الوظيفة الإضافية للمقاييس التي تخلص مقاييس Prometheus.

az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>

قم بتشغيل الأمر التالي لتعطيل استخراج مقاييس مستوى التحكم على نظام مجموعة AKS عن طريق إلغاء تسجيل علامة الميزة AzureMonitorMetricsControlPlanePreview باستخدام الأمر az feature unregister .

az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

الأسئلة المتداولة

  • هل يمكن استخراج هذه المقاييس باستخدام prometheus المستضاف ذاتيا؟

    • لا يمكن استخراج مقاييس وحدة التحكم حاليا باستخدام prometheus المستضاف ذاتيا. سيكون prometheus المستضاف ذاتيا قادرا على استخراج المثيل الفردي اعتمادا على موازن التحميل. هذه المقاييس غير آمنة حيث غالبا ما تكون هناك نسخ متماثلة متعددة من مقاييس مستوى التحكم التي ستكون مرئية فقط من خلال Prometheus المدار
  • لماذا لا يتوفر عامل المستخدم من خلال مقاييس مستوى التحكم؟

الخطوات التالية

بعد تقييم ميزة المعاينة هذه، شارك ملاحظاتك. نحن مهتمون بسماع رأيك.