التحقق من صحة وحدات التحكم في القبول
هذا المقال جزء من سلسلة. ابدأ بنظرة عامة.
نادرا ما تسبب وحدات التحكم في القبول مشاكل، ولكن من الضروري ضمان وظائفها المناسبة. تتناول هذه المقالة كيف يمكن أن تؤثر وحدات التحكم في القبول على المكونات الأخرى عندما لا تعمل بشكل صحيح. كما يصف الأوامر التي يمكنك استخدامها للتحقق من صحة أداء وحدة تحكم القبول.
وحدة تحكم القبول
وحدة التحكم في القبول هي جزء من التعليمات البرمجية التي تعترض الطلبات إلى خادم Kubernetes API قبل استمرار كائن ولكن بعد مصادقة الطلب وتفويضه.
يمكن أن تتحقق وحدات التحكم في القبول من صحة كليهما أو تحولهما أو مزيجا منهما. يمكن لوحدات التحكم المتغيرة تعديل الكائنات ذات الصلة قبل قبول الطلب. يضمن التحقق من صحة وحدات التحكم فقط أن الطلبات تفي بمعايير محددة محددة مسبقا.
تتمثل إحدى الوظائف الأساسية لوحدات التحكم في القبول في تنظيم طلبات إنشاء الكائنات وحذفها وتعديلها. بالإضافة إلى ذلك، يمكن لوحدات تحكم القبول تقييد الأفعال المخصصة، مثل طلب اتصال ب pod عبر وكيل خادم API. ومع ذلك، لا يمكن لوحدات تحكم القبول حظر طلبات قراءة الكائنات، بما في ذلك عمليات مثل get
أو watch
أو list
.
يمكن أن تؤثر بعض المكونات على وحدات التحكم في القبول، مثل تغيير خطافات الويب والتحقق من صحتها. عند دمج تحويل خطافات الويب والتحقق من صحتها في مجموعة Kubernetes الخاصة بك، من الضروري ضمان قابلية وصول عالية. يجب ألا تمنع العقد غير السليمة طلبات خادم واجهة برمجة التطبيقات. من الضروري مراقبة مسار التحكم في القبول حتى لا يتم حظر الطلبات إلى خادم API. يمكن أن تؤثر وحدات التحكم في القبول غير السليمة على تغيير خطافات الويب والتحقق من صحتها. تتضمن وحدات التحكم في الدخول المستندة إلى خطاف الويب التي يجب مراقبتها ما يلي:
الوظيفة الإضافية لنهج Azure لمجموعات Azure Kubernetes Service (AKS)، والتي توسع Gatekeeper. Gatekeeper هو إخطار على الويب لوحدة تحكم القبول ل Open Policy Agent.
Kyverno، الذي يعمل كوحدة تحكم قبول ديناميكية في مجموعة Kubernetes. يتلقى Kyverno التحقق من صحة وتحور عمليات رد اتصال HTTP لخطاف الويب للقبول من خادم Kubernetes API ويطبق نهج المطابقة لإرجاع النتائج التي تفرض نهج القبول أو ترفض الطلبات. للحصول على مرجع استكشاف الأخطاء وإصلاحها (مثل استدعاءات خطاف الويب الفاشلة ل APIServer)، راجع وثائق استكشاف أخطاء Kyverno وإصلاحها.
بدلا من ذلك، يمكن أن تؤثر وحدات التحكم في القبول التي لا تعمل بشكل صحيح على المكونات المختلفة، مثل شبكات الخدمة. تستخدم شبكات الخدمة، مثل Istio وLinkerd، وحدات تحكم القبول لأتمتة حقن حاويات sidecar داخل جراب، من بين وظائف أخرى. من المهم تقييم وحدات التحكم في القبول والتحقق منها بشكل صحيح لضمان التشغيل السلس الشبكات الخدمة.
تحقق من حالة الوظيفة الإضافية لنهج Azure لمجموعات AKS
إذا قمت بتثبيت الوظيفة الإضافية لنهج Azure ل AKS، يمكنك استخدام أوامر kubectl التالية للتحقق من صحة تثبيت ووظائف وحدات التحكم في قبول نهج Azure في مجموعتك:
# Verify that Azure Policy pods are running.
kubectl get pod -n gatekeeper-system
# Sample output
...
NAME READY STATUS RESTARTS AGE
gatekeeper-audit-65844778cb-rkflg 1/1 Running 0 163m
gatekeeper-controller-78797d4687-4pf6w 1/1 Running 0 163m
gatekeeper-controller-78797d4687-splzh 1/1 Running 0 163m
...
قم بتشغيل الأمر السابق للتحقق من توفر جرابات عامل نهج Azure في مساحة اسم النظام gatekeeper. إذا لم يكن الإخراج كما تتوقع، فقد يشير إلى وجود مشكلة في وحدة تحكم القبول أو خدمة واجهة برمجة التطبيقات أو تعريف المورد المخصص (CRD).
# Check that all API resources are working correctly. Use the following command to list all API resources.
kubectl api-resources
# Sample output
...
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
...
يساعدك الأمر السابق على التحقق من أن جميع موارد واجهة برمجة التطبيقات تعمل بشكل صحيح. تأكد من أن الإخراج يتضمن الموارد المتوقعة دون أي أخطاء أو مكونات مفقودة. kubectl get pod
استخدم الأمرين و kubectl api-resources
للتحقق من حالة الوظيفة الإضافية لنهج Azure ل AKS، والتحقق من صحة وظائف وحدات تحكم القبول في مجموعة Kubernetes. مراقبة وحدات التحكم في القبول بانتظام للتأكد من أنها تعمل بشكل صحيح حتى تتمكن من الحفاظ على الصحة العامة والاستقرار للمجموعة الخاصة بك.
استخدم الأمر التالي kubectl get
لتأكيد تطبيق تعيينات النهج على نظام المجموعة:
kubectl get constrainttemplates
إشعار
قد تستغرق تعيينات النهج ما يصل إلى 20 دقيقة للمزامنة مع كل مجموعة.
يجب أن يكون الإخراج مشابها للمثال التالي:
NAME AGE
k8sazureallowedcapabilities 23m
k8sazureallowedusersgroups 23m
k8sazureblockhostnamespace 23m
k8sazurecontainerallowedimages 23m
k8sazurecontainerallowedports 23m
k8sazurecontainerlimits 23m
k8sazurecontainernoprivilege 23m
k8sazurecontainernoprivilegeescalation 23m
k8sazureenforceapparmor 23m
k8sazurehostfilesystem 23m
k8sazurehostnetworkingports 23m
k8sazurereadonlyrootfilesystem 23m
k8sazureserviceallowedports 23m
لمزيد من المعلومات، راجع الموارد التالية:
التحقق من صحة خطافات الويب
للتأكد من أن التحقق من صحة الإخطارات على الويب وتحورها يعمل كما هو متوقع في مجموعة Kubernetes الخاصة بك، اتبع هذه الخطوات.
قم بتشغيل الأمر التالي لسرد خطافات الويب للتحقق من الصحة في نظام المجموعة:
kubectl get ValidatingWebhookConfiguration -o wide
يجب أن يكون الإخراج مشابها للمثال التالي:
NAME WEBHOOKS AGE aks-node-validating-webhook 1 249d azure-policy-validating-webhook-configuration 1 249d gatekeeper-validating-webhook-configuration 1 249d
راجع الإخراج للتحقق من وجود إخطارات الويب التحقق وتكويناتها كما هو متوقع. يتضمن الإخراج اسم كل إخطار على الويب للتحقق من الصحة، وعدد الإخطارات على الويب، وعمر كل إخطار على الويب.
قم بتشغيل الأمر التالي لسرد خطافات الويب المتغيرة في نظام المجموعة:
kubectl get MutatingWebhookConfiguration -o wide
يجب أن يكون الإخراج مشابها للمثال التالي:
NAME WEBHOOKS AGE aks-node-mutating-webhook 1 249d azure-policy-mutating-webhook-configuration 1 249d gatekeeper-mutating-webhook-configuration 1 249d
تحقق من الإخراج للتأكد من إدراج خطافات الويب المتغيرة بشكل صحيح وتكويناتها كما هو مطلوب. يتضمن الإخراج اسم كل إخطار على الويب متغير، وعدد الإخطارات على الويب، وعمر كل إخطار على الويب.
قم بتشغيل الأمر التالي لاسترداد تفاصيل محددة لوحدة تحكم قبول معينة:
kubectl get MutatingWebhookConfiguration <mutating-webhook-name> -o yaml
استبدل
<mutating-webhook-name>
باسم خطاف الويب المتغير الذي تريد استرداد تفاصيله. يعرض إخراج هذا الأمر تمثيل YAML لتكوين خطاف الويب المتغير المحدد.
قم بتشغيل الأوامر في هذا القسم، وراجع الإخراج حتى تتمكن من التأكد من وجود الإخطارات على الويب للتحقق من الصحة وتحورها في مجموعة Kubernetes وتكوينها كما هو متوقع. هذا التحقق ضروري لضمان الأداء السليم. من المهم أيضا ضمان التزام خطافات الويب بنهج التحقق من صحة الموارد وتعديلها في نظام المجموعة.
المساهمون
تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.
الكتاب الرئيسيون:
- باولو سالفاتوري | مهندس العملاء الرئيسي
مساهمون آخرون:
- فرانسيس سيمي الناصرة | أخصائي تقني أول
لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.