تكوين نُهج الحصة النسبية للموارد من AKS باستخدام نهج Azure لـ Kubernetes

مكتمل

تساعدك Azure Policy على فرض المعايير وتقييم الامتثال على نطاق واسع لبيئة السحابة الخاصة بك. من الممارسات الجيدة للشركات تنفيذ قواعد العمل لتحديد كيفية السماح للموظفين باستخدام برامج الشركة والأجهزة والموارد الأخرى في المؤسسة. لذلك، تستخدم الشركات النهج لفرض الوصول ومراجعته وتحديده. يساعد النهج المنظمة على تلبية متطلبات الحوكمة والمتطلبات القانونية، وتنفيذ أفضل الممارسات، وإنشاء الاتفاقيات التنظيمية.

تتيح لك خدمة Azure Kubernetes (AKS) تنظيم تطبيقاتك الأصلية على السحابة بكفاءة باستخدام النهج. تدرك أنك بحاجة إلى فرض قواعد العمل لإدارة كيفية استخدام الفرق ل AKS لضمان نهج فعال من حيث التكلفة. قررت استخدام نهج Azure لتطبيق هذه الفكرة على موارد السحابة المستندة إلى Azure.

قبل مناقشة كيفية استخدام نهج Azure ل Kubernetes، يجب أن تفهم بعض المفاهيم الإضافية التي تمكن هذه الميزة من داخل Kubernetes.

ما هي وحدة تحكم الدخول في Kubernetes؟

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

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

ما هو خطاف الويب لوحدة التحكم في الدخول؟

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

تتوفر خطاطيف الويب الخاصة بالدخول في نوعين: إما خطاف ويب للتحقق أو خطاف ويب متحور. يتم استدعاء خطاف الويب المتحور أولاً ويمكنه تغيير الإعدادات الافتراضية وتطبيقها على العناصر المرسلة إلى خادم واجهة برمجة التطبيقات. يقوم خطاف الويب الخاص بالتحقق من الصحة بالتحقق من قيم العنصر ويمكنه رفض الطلبات.

ما هو Open Policy Agent (OPA)؟

إن Open Policy Agent (OPA) هو محرك سياسة مفتوح المصدر للأغراض العامة يمنحك لغة تعريفية عالية المستوى للنُهج المؤلف. تسمح لك هذه النهج بتحديد القواعد التي تشرف على كيفية تصرف نظامك.

ما هو OPA Gatekeeper؟

OPA Gatekeeper هو خطاف ويب مفتوح المصدر للتحقق من صحة Kubernetes لوحدة التحكم في الدخول يفرض النهج المستندة إلى تعريف الموارد المخصصة (CRD) التي تتبع بناء جملة OPA.

الهدف من OPA Gatekeeper هو السماح لك بتخصيص نهج القبول باستخدام التكوين بدلا من قواعد النهج ذات التعليمات البرمجية المضمنة للخدمات. كما أنه يمنحك رؤية كاملة لمجموعتك لتحديد الموارد التي تنتهك النهج.

استخدم OPA Gatekeeper لتحديد النهج على مستوى المؤسسة مع القواعد:

  • فرض الحدود القصوى للموارد، مثل حدود وحدة المعالجة المركزية والذاكرة، على جميع القرون التي تم تكوينها.

  • يُسمح بنشر الصور فقط من المستودعات المعتمدة.

  • يجب أن يحدد اصطلاح التسمية للتسميات لكافة مساحات الأسماء في نظام المجموعة نقطة اتصال لكل مساحة اسم.

  • تفويض أن خدمات نظام المجموعة لها محددات فريدة عالميا.

نهج Azure Policy لـ AKS

يوسع Azure Policy الإصدار 3 من برنامج OPA Gatekeeper ويتكامل مع AKS من خلال النُهج المضمنة. تطبق هذه النُهج عمليات الإنفاذ والضمانات على نطاق واسع على مجموعتك بطريقة مركزية ومتسقة.

ترغب فرق التطوير بشركتك في تحسين التطوير وتقديم أدوات التطوير، مثل DevSpaces لتبسيط سير عمل تطوير Kubernetes. يجب عليك التأكد من أن أعضاء الفريق يلتزمون بحدود موارد معينة لمشاريعهم. تقرر وضع نهج يحدد موارد الحساب، وموارد التخزين، وعدد العناصر المسموح به في مساحات أسماء التطوير.

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

كيفية تمكين الوظيفة الإضافية لنهج Azure لـ AKS

هناك بضع خطوات لتسجيل الوظيفة الإضافية لنهج Azure Policy لميزة AKS. سنقدم أمثلة هنا، ولكنك ستستكمل بالفعل الخطوات في الوحدة التالية.

  1. قم تسجيل اثنين من موفري الموارد باستخدام الأمر az provider register:

    • Microsoft.ContainerService وMicrosoft.PolicyInsights: يدعم موفرو الموارد هذه إجراءات مثل الاستعلام عن معلومات حول أحداث النهج وإدارة الحاويات. هذه إجراءات للاستعلام عن معالجة النهج أو إنشائها أو تحديثها أو حذفها.

    فيما يلي مثال على أمري التسجيل:

    az provider register --namespace Microsoft.ContainerService
    az provider register --namespace Microsoft.PolicyInsights
    
  2. سجل الميزة AKS-AzurePolicyAutoApprove مع مزود الموارد Microsoft. ContainerService. فيما يلي مثال على الأمر:

    az feature register --namespace Microsoft.ContainerService --name AKS-AzurePolicyAutoApprove
    
  3. بعد تأكيد تسجيل الميزة الناجح، قم بتشغيل az provider register الأمر مع المعلمة --namespace لنشر تسجيل الميزة الجديدة. فيما يلي مثال على الأمر:

    az provider register -n Microsoft.ContainerService
    
  4. تمكين الوظيفة الإضافية لنهج azure:

    az aks enable-addons \
        --addons azure-policy \
        --name myAKSCluster \
        --resource-group myResourceGroup
    

    تنشيط أحمال عمل جدولة الوظيفة الإضافية في مساحة اسمين على نظام المجموعة الخاص بك. مساحة الاسم الأولى هي kube-system، والتي تحتوي على azure-policy و azure-policy-webhook. مساحة الاسم الثانية هي gatekeeper-system، والتي تحتوي على gatekeeper-controller-manager. تتحمل أحمال العمل هذه مسؤولية تقييم الطلبات المقدمة إلى وحدة التحكم AKS. استنادا إلى النهج التي تم تكوينها، يمكن أن يسمح webhook للنهج الخاص بك بالطلبات أو يرفضها.

تعيين تعريف نهج مضمن

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

لكل نهج، يتم سرد المعلومات العامة التالية:

عنصر ‏‏الوصف مثال
الاسم اسم النهج. [معاينة]: تأكد من أن حدود موارد وحدة المعالجة المركزية والذاكرة للحاوية لا تتجاوز الحدود المحددة في مجموعة Kubernetes.
النطاق مجموعة موارد الاشتراك التي يتم تطبيق هذا النهج عليها. mySubscription/rg-akscostsaving.
حالة التوافق حالة النُهج المعينة. متوافق أو متعارض أو لم يتم بدء تشغيله أو غير مسجل.
توافق للموارد النسبة المئوية للموارد التي تتوافق مع النهج. يأخذ هذا الحساب في الاعتبار الموارد المتوافقة وغير المتوافقة والمتضاربة. 100
الموارد غير المتوافقة عدد الموارد الفريدة التي تنتهك قاعدة أو أكثر من قواعد النهج. 3
النُهج غير المتوافقة عدد النُهج غير المتوافقة. 5

من هنا، يمكنك التنقل لأسفل في تفاصيل كل مورد ولكل نهج للأحداث التي تم تشغيلها. على سبيل المثال، يمكنك فحص تفاصيل توزيع حمل العمل الذي تم رفضه.

تعيين النُهج

لتعيين نهج، حدد الخيار Assignments ضمن قسم Authoring في لوحة التنقل Azure Policy.

يمكنك تعيين نهج Azure بإحدى طريقتين: كمجموعة من النهج تسمى مبادرة، أو كنهج واحد.

تعيين المبادرة

تعيين المبادرة عبارة عن مجموعة من تعريفات نهج Azure المجمعة معًا لتحقيق هدف أو غرض معين. على سبيل المثال، قد يكون الهدف هو تطبيق معيار أمان بيانات صناعة بطاقات الدفع عبر مواردك.

تعيين النهج

يقوم تعيين النهج بتعيين نهج واحدة، مثل Do not allow privileged containers in Kubernetes cluster (عدم السماح للحاويات المميزة في مجموعة Kubernetes.).

كيفية تعيين نهج

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

على سبيل المثال، للحد من نشر الموارد بواسطة المطورين في بيئة السحابة الخاصة بالشركة، يمكنك تعيين إحدى نُهج Azure المضمنة لخدمة Azure Kubernetes. اسم النهج هو [Preview]: Ensure container CPU and memory resource limits do not exceed the specified limits in Kubernetes cluster.

يتطلب منك النهج تعيين حد للموارد المسموح بها المطلوبة بواسطة طلبات التوزيع.

لنلق نظرة على الخيارات القابلة للتكوين عند تعيين نهج.

معلومات النهج الأساسي

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

عنصر ‏‏الوصف
النطاق يحدد النطاق الموارد أو مجموعة الموارد التي يتم فرض تعيين النهج عليها. تستند هذه القيمة إلى اشتراك أو مجموعة إدارة. يمكنك استبعاد الموارد من اختيارك بمستوى واحد أقل من مستوى النطاق.
تعريف النهج النهج الذي تريد تطبيقه. يمكنك الاختيار من بين العديد من خيارات النهج المضمن.
اسم التعيين الاسم المستخدم لتعريف النهج المعين.
الوصف وصف نص حر يصف النهج.
إنفاذ النُهج يمكنك اختيار تمكين وتعطيل. إذا كان الخيار Disabled، فلن يتم تطبيق النهج ولن يتم رفض الطلبات بسبب عدم الامتثال.
التعيين بواسطة قيمة نصية حرة افتراضية للمستخدم المسجل. يمكنك تغيير هذه القيمة.

معلمات النهج

تتطلب منك النُهج تكوين قواعد العمل التي تنطبق على كل سياسة محددة. لا تحتوي جميع النُهج على نفس قواعد العمل، ولهذا السبب لكل نهج معلمات مختلفة.

على سبيل المثال، يتطلب النهج Ensure container CPU and memory resource limits do not exceed the specified limits in Kubernetes clusterتعيين ثلاث معلمات:

  • الحد الأقصى لوحدات وحدة المعالجة المركزية المسموح بها للحاوية
  • الحد الأقصى لوحدات بايت الذاكرة المسموح بها للحاوية
  • قائمة بمساحات أسماء Kubernetes لاستبعادها من النهج

قارن هذا النهج بنهج Web Application should only be accessible over HTTPS، الذي لا يحتوي على معلمات مخصصة لتكوينها.

تحتوي كافة النهج على الإعداد «Effect». يتيح هذا الإعداد تنفيذ النهج أو يعطله. كما هو الحال مع المعلمات، يمكن أن تكون للسياسات أيضًا خيارات تأثير مختلفة.

على سبيل المثال، بالنسبة لنهج إدارة الموارد، يمكنك تحديد التدقيق أو الرفض أو التعطيل كقيمة التأثير. بالنسبة إلى نهج تطبيق الويب، يمكنك تحديد تدقيق أو تعطيل فقط.

يسرد هذا الجدول جميع التأثيرات المدعومة حاليًا في تعريفات النهج:

التأثير ‏‏الوصف
إلحاق إضافة المزيد من الحقول إلى المورد المطلوب
Audit إنشاء حدث تحذير في سجل النشاط
AuditIfNotExists تمكين تدقيق الموارد المتعلقة بالمورد الذي يطابق الشرط
Deny يمنع طلب مورد لا يتطابق مع المعايير المحددة من خلال تعريف النهج، ويفشل في الطلب
DeployIfNotExists تنفيذ توزيع قالب عند استيفاء الشرط
Disabled مفيد لاختبار المواقف أو عندما يقوم تعريف النهج بوضع معلمات على التأثير، وتريد تعطيل تعيين واحد
Modify إضافة العلامات أو تحديثها أو إزالتها على مورد أثناء الإنشاء أو التحديث

معالجة النهج

الخطوة الأخيرة هي النظر في معالجة النُهج. عند تعيين النهج، من المحتمل أن تكون الموارد موجودة بالفعل وأن تنتهك النهج الجديد. بشكل افتراضي، يتم تطبيق الموارد التي تم إنشاؤها حديثا فقط على النهج الجديد. استخدم المعالجة للتحقق من الموارد الموجودة بعد تعيين نهج جديد. يمكن أن تختلف مهام المعالجة اعتمادا على أنواع النهج المطبقة.

في التمرين التالي، يمكنك استخدام التأكد من أن حدود موارد وحدة المعالجة المركزية والذاكرة للحاوية لا تتجاوز الحدود المحددة في نهج مجموعة Kubernetes لخفض التكاليف بشكل أكبر.