أفضل الممارسات لمطوري التطبيقات لإدارة الموارد في Azure Kubernetes Service (AKS)

أثناء تطوير التطبيقات وتشغيلها في Azure Kubernetes Service (AKS)، هناك بعض المساحات الرئيسية التي يجب وضعها في الاعتبار. يمكن أن تؤثر الطريقة التي تدير بها عمليات نشر التطبيق سلبا على تجربة المستخدم النهائي للخدمات التي تقدمها.

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

تتناول هذه المقالة المواضيع التالية:

  • طلبات الموارد والحدود المتعلقة بـ Pod.
  • طرق تطوير التطبيقات وتصحيحها ونشرها باستخدام Bridge إلى Kubernetes وVisual Studio Code.

تعريف طلبات موارد وحدود الجراب

إرشادات أفضل الممارسات

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

استخدم طلبات وحدود الجراب لإدارة موارد الحوسبة داخل نظام مجموعة AKS. تبلغ طلبات وحدود الجراب مجدول Kubernetes بموارد الحوسبة لتعيينها إلى جراب.

جراب CPU/طلبات الذاكرة

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

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

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

حدود وحدة المعالجة المركزية/الذاكرة الخاصة بالجراب

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

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

تجنب تعيين أعلى حد ممكن من الجراب تدعمه العقد. تحتفظ كل عقدة AKS بمجموعة محددة من CPU والذاكرة لمكونات الذاكرة الأساسية Kubernetes. قد يحاول التطبيق استهلاك عدد كبير جدًّا من الموارد الموجودة على العقدة لتشغيل الجرابات الأخرى بنجاح.

مراقبة أداء التطبيق في أوقات مختلفة خلال اليوم أو الأسبوع. حدد أوقات ذروة الطلب وقم بمواءمة حدود الجراب مع الموارد المطلوبة لتلبية الاحتياجات القصوى.

هام

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

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

عند تعريف طلب أو حد CPU، يتم قياس القيمة في وحدات CPU.

  • 1.0تعادل CPU واحدة من ذاكرة CPU الأساسية الافتراضية الفعلية على العقدة.
    • ويستخدم نفس القياس لـ GPUS.
  • يمكنك تعريف الوظائف التي تقاس بالمللي كورز. على سبيل المثال، 100 متر هو 0.1 من نواة وحدة المعالجة المركزية الظاهرية الأساسية.

في المثال الأساسي التالي لجراب NGINX واحد، تطلب الجراب 100 متر من وقت وحدة المعالجة المركزية و128Mi من الذاكرة. يتم تعيين حدود الموارد للحجيرة على 250 m CPU وذاكرة 256Mi .

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi

لمزيد من المعلومات حول قياسات الموارد والتعيينات، انظرإدارة موارد حساب الحاويات.

تطوير وتتبع أخطاء التطبيقات مقابل مجموعة أجهزة كمبيوتر AKS

إرشادات أفضل الممارسات

يجب توزيع فرق التطوير وتتبع الأخطاء ضد مجموعة أجهزة كمبيوتر AKS باستخدام Bridge إلى Kubernetes.

باستخدام Bridge إلى Kubernetes، يمكنك تطوير وتتبع الأخطاء واختبار التطبيقات مباشرةً ضد مجموعة أجهزة كمبيوتر AKS. يتعاون المطورون داخل فريق للتحويل برمجيًّا والاختبار طوال دورة حياة التطبيق. يمكنك الاستمرار في استخدام الأدوات الموجودة مثل Visual Studio أو رمز Visual Studio مع ملحق Bridge إلى Kubernetes.

يؤدي استخدام عملية التطوير والاختبار المتكاملة مع Bridge إلى Kubernetes لتقليل الحاجة إلى بيئات الاختبار المحلية مثلminikube. بدلا من ذلك، يمكنك التطوير والاختبار مقابل نظام مجموعة AKS، حتى في مجموعات آمنة ومعزولة.

إشعار

الجسر إلى Kubernetes مخصص للاستخدام مع التطبيقات التي تعمل على pods Linux والعقد.

استخدام ملحق التعليمة البرمجية Visual Studio (VS Code) لـ Kubernetes

إرشادات أفضل الممارسات

تركيب واستخدام ملحق التعليمة البرمجية VS لـ Kubernetes يظهر عند كتابة YAML. يمكنك أيضًا استخدام الملحق لحل التوزيع المتكامل، والذي قد يساعد مالكي التطبيق الذين يتفاعلون بشكل غير متكرر مع مجموعة أجهزة كمبيوتر AKS.

يساعدملحق رمز Visual Studio لـ Kubernetesعلى تطوير التطبيقات واستخدامها في AKS. يوفر الملحق الميزات التالية:

  • استخبارات موارد Kubernetes والرسوم البيانية هيلم، والقوالب.

  • القدرة على استعراض قدرات موارد Kubernetes ونشرها وتحريرها من داخل VS Code.

  • يتحقق Intellisense من طلبات الموارد أو الحدود التي يتم تعيينها في مواصفات الجراب:

    VS Code extension for Kubernetes warning about missing memory limits

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

ركزت هذه المقالة على كيفية تشغيل مجموعة أجهزة الكمبيوتر وأحمال العمل من منظور عامل تشغيل نظام المجموعة. للحصول على معلومات بشأن أفضل الممارسات الإدارية، انظرأفضل ممارسات مشغل مجموعة أجهزة الكمبيوتر للعزل وإدارة المورد في Azure Kubernetes Service (AKS).

لتنفيذ بعض من أفضل هذه الممارسات، راجع التطوير باستخدام Bridge إلى Kubernetes.