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

مكتمل

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

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

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

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

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

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

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

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

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

ما هو Open Policy Agent (OPA)؟

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

ما هو OPA Gatekeeper؟

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

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

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

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

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

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

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

نهج Azure ل AKS

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

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

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

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

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

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

    • Microsoft.ContainerServiceMicrosoft.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، والتي تحتوي على azure-policyazure-policy-webhook. مساحة الاسم الثانية هي gatekeeper-system، والتي تحتوي على gatekeeper-controller-manager. أحمال العمل هذه مسؤولة عن تقييم الطلبات المقدمة إلى وحدة التحكم AKS. استنادا إلى النهج التي تم تكوينها، يمكن أن يسمح webhook للنهج الخاص بك بالطلبات أو يرفضها.

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

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

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

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

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

تعيين النهج

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

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

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

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

تعيين النهج

تعيين نهج يعين نهج واحد، مثل لا تسمح بالحاويات المميزة في نظام مجموعة Kubernetes.

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

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

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

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

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

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

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

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

معلمات النهج

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

على سبيل المثال، ضمان عدم تجاوز حدود وحدة المعالجة المركزية للحاوية ومورد الذاكرة الحدود المحددة في نهج نظام مجموعة Kubernetes يتطلب منك تعيين ثلاث معلمات:

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

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

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

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

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

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

معالجة النهج

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

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