الهيكل المتقدم للخدمات المصغرة لخدمة Azure Kubernetes (AKS)

Azure Application Gateway
Azure Container Registry
Azure Kubernetes Service (AKS)
Azure Virtual Network

توضح بنية المرجع هذه العديد من التكوينات التي تجب مراعاتها عند تشغيل الخدمات الصغيرة على خدمات Azure Kubernetes. تشمل الموضوعات تكوين نُهج الشبكة، والتحكم التلقائي في البودات pod، والتتبع الموزَّع عبر تطبيق قائم على الخدمات الصغيرة.

تعتمد هذه البنية على بنية AKS Baseline، وهي نقطة البداية الموصى بها من Microsoft لبنية AKS الأساسية. تفاصيل خط أساس AKS ميزات البنية الأساسية مثل هوية حمل عمل Microsoft Entra وقيود الدخول والخروج وحدود الموارد وتكوينات البنية الأساسية الآمنة الأخرى ل AKS. لم يتم تناول تفاصيل البنية الأساسية هذه في هذا المستند. من المستحسن أن تكون على دراية بخط أساس AKS قبل متابعة محتوى الخدمات الصغيرة.

GitHub logo يتوفر تنفيذ مرجعي لهذه البنية على GitHub.

الهندسة

Network diagram showing the hub-spoke network with two peered virtual networks and the Azure resources this implementation uses.

قم بتنزيل ملف Visio لهذه البنية.

إذا كنت تفضل البدء بمثال أكثر أساسية عن الخدمات الصغيرة على AKS، فراجع بنية الخدمات الصغيرة على AKS.

Workflow

ينفذ تدفق الطلب هذا أنماط تصميم السحابة Publisher-Subscriberو تنافس المستهلكينو بوابة Routing. يستمر تدفق الرسائل على النحو التالي:

  1. يتم تقديم طلب HTTPS لجدولة التقاط طائرة دون طيار. تمر الطلبات عبر Azure Application بوابة إلى تطبيق الويب الخاص بالاستيعاب، والذي يعمل كخدمة مصغرة داخل المجموعة في AKS.

  2. يُنتج تطبيق الويب الخاص بالعرض رسالة ويرسلها إلى قائمة انتظار رسائل ناقل خدمة Microsoft Azure.

  3. يقوم نظام الواجهة الخلفية بتعيين طائرة دون طيار وإخطار المستخدم. يقوم سير العمل بما يأتي:

    • يستهلك معلومات الرسالة من قائمة انتظار رسائل ناقل خدمة Microsoft Azure.
    • يرسل طلب HTTPS إلى خدمة التسليم المصغرة، والتي تمرر البيانات إلى ذاكرة التخزين المؤقت Azure لتخزين البيانات الخارجية لـ Redis.
    • يرسل طلب HTTPS إلى الخدمة المصغرة لجدولة الطائرات دون طيار.
    • يرسل طلب HTTPS إلى Package microservice، والذي يمرر البيانات إلى وحدة تخزين البيانات الخارجية MongoDB.
  4. يتم استخدام طلب HTTPS GET لإرجاع حالة التسليم. يمر هذا الطلب عبر Application بوابة إلى خدمة التسليم المصغرة.

  5. تقرأ الخدمة المصغرة للتسليم البيانات من Azure Cache for Redis.

المكونات

تستخدم هذه البنية مكونات Azure التالية:

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

تشمل ميزات البنية الأساسية AKS المستخدمة في هذه البنية ما يلي:

شبكات Azure الظاهرية هي بيئات معزولة وآمنة للغاية لتشغيل الأجهزة الظاهرية (VMs) والتطبيقات. تستخدم هذه البنية المرجعية طوبولوجيا شبكة ظاهرية متحدثة المحور. تحتوي الشبكة الظاهرية للمحور على الشبكات الفرعية لجدار الحماية Azure وAzure Bastion. تحتوي الشبكة الظاهرية المتكلمة على نظام AKS والشبكات الفرعية لتجمع عقدة المستخدم والشبكة الفرعية Azure Application بوابة.

يخصصAzure Private Link عناوين IP خاصة محددة للوصول إلى Azure Container Registry Key Vault من نقاط النهاية الخاصة داخل نظام AKS والشبكة الفرعية لتجمع عقدة المستخدم.

تعرضبوابة تطبيق Azure مع جدار حماية تطبيق الويب (WAF) مسارات HTTP(S) إلى نظام مجموعة AKS وتوازن التحميل حركة مرور الويب إلى تطبيق الويب. تستخدم هذه البنية Azure Application بوابة Ingress Controller (AGIC) كوحدة تحكم دخول Kubernetes.

Azure Bastion بروتوكول سطح المكتب البعيد الآمن (RDP) والوصول الآمن إلى shell (SSH) إلى الأجهزة الظاهرية في الشبكات الظاهرية باستخدام طبقة مأخذ توصيل آمنة (SSL)، دون الحاجة إلى كشف الأجهزة الظاهرية من خلال عناوين IP العامة.

Azure Firewall هو خدمة أمان شبكة تعتمد على السحابة تحمي موارد Azure Virtual Network. جدار الحماية يسمح فقط للخدمات المعتمدة وأسماء المجال المؤهلة بالكامل (FQDNs) كحركة خروج.

وحدة التخزين الخارجية والمكونات الأخرى:

Azure Key Vault مفاتيح الأمان لخدمات AKS ويديرها.

Azure Container Registry صور الحاوية الخاصة التي يمكن تشغيلها في نظام مجموعة AKS. يصادق AKS مع Container Registry باستخدام هويته المدارة من Microsoft Entra. يمكنك أيضاً استخدام سجلات الحاويات الأخرى مثل Docker Hub.

يخزن Azure Cosmos DB البيانات باستخدام Azure Cosmos DB مفتوح المصدر ل MongoDB. عادة ما تكون الخدمات المصغرة عديمة الحالة وتكتب حالتها في مخازن البيانات الخارجية. Azure Cosmos DB هي قاعدة بيانات NoSQL مع واجهات برمجة تطبيقات مفتوحة المصدر لـMongoDB وCassandra.

ناقل خدمة Microsoft Azure مراسلة سحابية موثوقة كخدمة وتكامل مختلط بسيط. يدعم ناقل خدمة Microsoft Azure أنماط المراسلة غير المتزامنة الشائعة مع تطبيقات الخدمات المصغرة.

ذاكرة تخزين مؤقت Azure طبقة تخزين مؤقت إلى بنية التطبيق لتحسين السرعة والأداء للأحمال الثقيلة لنسبة استخدام الشبكة.

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

مكونات نظام دعم العمليات الأخرى (OSS):

Helm، مدير الحزم لـ Kubernetes الذي يجمع عناصر Kubernetes في وحدة واحدة يمكنك نشرها وتوزيعها وإصدارها وتحديثها.

مزود خدمة Azure Key Vault Secret Store CSI، ويحصل على البيانات السرية المخزنة في Azure Key Vault ويستخدم برنامج تشغيل CSI الخاص بالمخزن السري واجهة لتركيبها في حاضنات Kubernetes.

Flux، حل تسليم مستمر مفتوح وقابل للتوسيع لـ Kubernetes، يتم تشغيله بواسطة مجموعة أدوات GitOps.

تفاصيل السيناريو

ينفذ المثال تطبيق شحن Fabrikam Drone Delivery Shipping الموضح في الرسم البياني السابق المكونات والممارسات البنيوية التي تمت مناقشتها في هذه المقالة. في هذا المثال، تدير شركة Fabrikam، Inc.، وهي شركة وهمية، أسطولاً من الطائرات دون طيار. تسجل الشركات في الخدمة، ويمكن للمستخدمين طلب طائرة بدون طيار لاستلام البضائع لتوصيلها. عندما يقوم العميل بجدولة الاستلام، يقوم النظام الخلفي بتعيين طائرة دون طيار وإخطار المستخدم بوقت التسليم المقدر. أثناء عملية التسليم، يمكن للعميل تتبع موقع الطائرة دون طيار باستخدام ETA محدث باستمرار.

حالات الاستخدام المحتملة

يعد هذا الحل مثاليا للصناعات الجوية والطائرة والطيران.

التوصيات

قم بتنفيذ هذه التوصيات عند توزيع بنيات الخدمات الصغيرة المتقدمة لـ AKS.

وحدة التحكم في الدخول لبوابة التطبيق (AGIC)

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

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

  • تجميع طلبات متعددة في طلب واحد لتقليل الثرثرة بين العميل والخلفية.
  • وظيفة إلغاء التحميل مثل إنهاء SSL والمصادقة وقيود IP وتقييد معدل العميل أو تقييده من خدمات الواجهة الخلفية.

تتم ترجمة حالة مجموعة AKS إلى التكوين الخاص بـ Application بوابة ويتم تطبيقها عبر Azure Resource Manager.

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

تحتوي بوابة Application على إمكانات قياس تلقائي مضمنة، على عكس وحدات التحكم في الدخول داخل المجموعة التي يجب توسيع نطاقها إذا كانت تستهلك قدراً غير مرغوب فيه من موارد الحوسبة. يمكن لبوابة Application تنفيذ توجيه الطبقة 7 وإنهاء SSL ولديها بروتوكول أمان طبقة النقل (TLS) متكامل مع جدار حماية لتطبيق الويب (WAF)مضمن.

بالنسبة لخيار الدخول AGIC، يجب تمكين شبكة CNI عند تكوين مجموعة AKS لأنه يتم توزيع Application بوابة في شبكة فرعية من شبكة AKS الظاهرية. قد تتطلب أحمال العمل متعددة المستأجرين، أو مجموعة واحدة تدعم بيئات التطوير والاختبار، المزيد من وحدات التحكم في الدخول.

نُهج شبكة الثقة الصفرية

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

تتمثل إحدى الإستراتيجيات في تنفيذ نهج عدم الثقة في إنشاء نهج شبكة ترفض جميع حركات الدخول والخروج لجميع البودات داخل مساحة الاسم الهدف. يُظهر المثال التالي "نهج رفض الكل" التي من شأنها أن تنطبق على جميع البودات الموجودة في مساحة اسم backend-dev.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: backend-dev
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

بمجرد وضع نهج تقييدية، ابدأ في تحديد قواعد شبكة معينة للسماح بنسبة استخدام الشبكة داخل وخارج كل pod في الخدمة المصغرة. في المثال التالي، يتم تطبيق نهج الشبكة على أي بود في مساحة اسم مطور الواجهة الخلفية مع تصنيف يطابق app.kubernetes.io/component: backend. ترفض النهج أي حركة مرور ما لم يتم الحصول عليها من حجرة تحمل تصنيفاً يطابق app.kubernetes.io/part-of: dronedelivery.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: package-v010-dev-np-allow-ingress-traffic
  namespace: backend-dev
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/component: backend
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app.kubernetes.io/part-of: dronedelivery
    ports:
    - port: 80
      protocol: TCP

لمزيد من المعلومات حول نُهج شبكة Kubernetes والأمثلة الإضافية للنُهج الافتراضية المحتملة، راجع نُهج الشبكة في وثائق Kubernetes.

الحصص النسبية للموارد

حصص الموارد هي طريقة للمسؤولين لحجز الموارد وتقييدها عبر فريق تطوير أو مشروع. يمكنك تعيين حصص الموارد على مساحة اسم واستخدامها لتعيين حدود على:

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

بمجرد أن يتجاوز الإجمالي التراكمي لطلبات أو حدود الموارد الحصة المخصصة، لن تنجح أي عمليات توزيع أخرى.

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

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

يُظهر المثال التالي مواصفات الحجرة التي تحدد طلبات حصة الموارد وحدودها:

requests:
  cpu: 100m
  memory: 350Mi
limits:
  cpu: 200m
  memory: 500Mi

لمزيد من المعلومات حول حصص الموارد، راجع:

التحجيم التلقائي

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

التحجيم التلقائي للكتلة

يقيس مقياس نظام المجموعة التلقائي (CA) عدد العقد. لنفترض أن البودات لا يمكن جدولتها بسبب قيود الموارد؛ يوفر مقياس نظام المجموعة التلقائي المزيد من العقد. أنت تحدد الحد الأدنى لعدد العقد للحفاظ على مجموعة AKS وأحمال العمل الخاصة بك قيد التشغيل والحد الأقصى لعدد العقد لنسبة استخدام الشبكة الكثيفة. يتحقق المرجع المصدق (CA) كل بضع ثوانٍ من البودات المعلقة أو العقد الفارغة ويقيس كتلة AKS بشكل مناسب.

يوضح المثال التالي تكوين CA من قالب ARM:

"autoScalerProfile": {
    "scan-interval": "10s",
    "scale-down-delay-after-add": "10m",
    "scale-down-delay-after-delete": "20s",
    "scale-down-delay-after-failure": "3m",
    "scale-down-unneeded-time": "10m",
    "scale-down-unready-time": "20m",
    "scale-down-utilization-threshold": "0.5",
    "max-graceful-termination-sec": "600",
    "balance-similar-node-groups": "false",
    "expander": "random",
    "skip-nodes-with-local-storage": "true",
    "skip-nodes-with-system-pods": "true",
    "max-empty-bulk-delete": "10",
    "max-total-unready-percentage": "45",
    "ok-total-unready-count": "3"
},

تحدد الأسطر التالية في قالب ARM مثالاً على الحد الأدنى والحد الأقصى للعقد لـ CA:

"minCount": 2,
"maxCount": 5,

قياس القرنة تلقائياً

يقيس مقياس الضغط التلقائي الأفقي (HPA) حجم البودات بناءً على وحدة المعالجة المركزية أو الذاكرة أو القياسات المخصصة التي تمت ملاحظتها. لتكوين مقياس حجرة التخزين الأفقي، يمكنك تحديد القياسات المستهدفة والحد الأدنى والحد الأقصى لعدد النسخ المتماثلة في مواصفات حجرة توزيع Kubernetes. قم باختبار تحميل خدماتك لتحديد هذه الأرقام.

يعمل كل من CA وHPA معاً بشكل جيد، لذا قم بتمكين خياري جهاز التحجيم التلقائي في مجموعة AKS الخاصة بك. تقوم HPA بتوسيع نطاق التطبيق، بينما تقوم CA بتوسيع نطاق البنية الأساسية.

يعيّن المثال التالي قياسات الموارد لـ HPA:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: delivery-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: delivery
  minReplicas: 2
  maxReplicas: 5
  metrics:
    - type: Resource
      resource:
        name: cpu
        targetAverageUtilization: 60

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

تحقيقات الصحة

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

في Kubernetes، يمكن للحجرة الكشف عن نوعين من المسبار الصحي:

  • يخبر اختبار الحياة Kubernetes ما إذا كانت الكبسولة قد بدأت بنجاح وأنها سليمة.
  • يخبر اختبار الجاهزية Kubernetes ما إذا كانت المجموعة جاهزة لقبول الطلبات.

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

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

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

مراقبة‬

في تطبيق الخدمات الصغيرة، تعد مراقبة إدارة أداء التطبيق (APM) أمراً بالغ الأهمية لاكتشاف الحالات الشاذة وتشخيص المشكلات وفهم التبعيات بين الخدمات بسرعة. Application Insights متوفرة، والتي تعد جزءاً من Azure Monitor، مراقبة APM للتطبيقات الحية المكتوبة بلغات .NET Core وNode.js وJava والعديد من لغات التطبيق الأخرى.

Application Insights:

  • يسجل طلبات HTTP، بما في ذلك وقت الاستجابة والتعليمة البرمجية الناتجة.
  • تمكن التتبع الموزع بشكل افتراضي.
  • يتضمن معرف العملية في عمليات التتبع، بحيث يمكنك مطابقة كل عمليات التتبع لعملية معينة.
  • غالباً ما يتضمن معلومات سياقية إضافية في التتبع.

لمواءمة القياس عن بُعد للخدمات مع عالم Kubernetes، قم بدمج القياس عن بُعد لـ Azure Monitor مع AKS لتجميع القياسات من وحدات التحكم والعقد والحاويات، بالإضافة إلى سجلات الحاوية والعقد. إذا كنت تستخدم .NET، فإن مكتبة Application Insights for Kubernetes تثري معلومات التطبيق عن بُعد باستخدام معلومات الصورة والحاوية والعقدة والجزء والتسمية ومجموعة النسخ المتماثلة.

يُظهر الرسم التخطيطي التالي مثالاً لخريطة تبعية التطبيق التي ينشئها Application Insights لتتبع القياس عن بُعد للخدمات المصغرة لـ AKS:

Example of an Application Insights dependency map for an AKS microservices application.

لمزيد من المعلومات حول خيارات أدوات اللغات الشائعة لتكامل نتائج تحليلات التطبيق، راجع مراقبة التطبيق لـ Kubernetes.

الاعتبارات

تنفذ هذه الاعتبارات ركائز Azure Well-Architected Framework، وهو عبارة عن مجموعة من المبادئ التوجيهية التي يمكن استخدامها لتحسين جودة حمل العمل. لمزيد من المعلومات، يرجى مراجعةMicrosoft Azure Well-Architected Framework.

قابلية التوسع

ضع في اعتبارك النقاط التالية عند التخطيط لقابلية التوسع.

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

  • من الآثار الجانبية للقياس التلقائي للبدن أنه يمكن إنشاء القرون أو طردها بشكل متكرر، مع حدوث أحداث التدرج والتوسيع. للتخفيف من هذه التأثيرات:

    • استخدم تحقيقات الجاهزية لإعلام Kubernetes عندما تكون الحجرة الجديدة جاهزة لقبول نسبة استخدام الشبكة.
    • استخدم ميزانيات تعطيل البودات للحد من عدد الكبسولات التي يمكن طردها من الخدمة في المرة الواحدة.
  • لا يمكنك تغيير حجم الجهاز الظاهري بعد إنشاء نظام المجموعة، لذلك قم بتخطيط السعة الأولية لاختيار حجم VM مناسب لعقد العامل عند إنشاء نظام المجموعة.

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

قَابلية الإدارة

ضع في اعتبارك النقاط التالية عند التخطيط للإدارة.

  • إدارة البنية الأساسية لمجموعة AKS عبر تدفق توزيع آلي. يوفر التنفيذ المرجعي لهذه البنية سير عمل GitHub Actions الذي يمكنك الرجوع إليه عند إنشاء خط التدفق الخاص بك.

  • ينشر ملف سير العمل البنية الأساسية فقط، وليس حمل العمل، في الشبكة الظاهرية الموجودة بالفعل وتكوين Microsoft Entra. يتيح لك توزيع البنية الأساسية وحِمل العمل بشكل منفصل معالجة مخاوف التشغيل ودورة الحياة المميزة.

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

الأمان

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

ضع في اعتبارك النقاط التالية عند التخطيط للأمن.

  • يصادق جراب AKS نفسه باستخدام هوية حمل العمل المخزنة في معرف Microsoft Entra. استخدام هوية حمل العمل هو الأفضل لأنه لا يتطلب سر العميل.

  • باستخدام الهويات المُدارة، يمكن لعملية التنفيذ الحصول بسرعة على رموز Azure Resource Manager OAuth 2.0 المميزة؛ ليست هناك حاجة لكلمات المرور أو سلاسل الاتصال. في AKS، يمكنك تعيين هويات إلى وحدات الجراب الفردية باستخدام هوية حمل عمل Microsoft Entra.

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

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

  • لا تدعم جميع خدمات Azure مصادقة مستوى البيانات باستخدام معرف Microsoft Entra. لتخزين معلومات تسجيل الدخول أو بيانات سرية التطبيق لتلك الخدمات أو لخدمات الجهات الخارجية أو لمفاتيح واجهة برمجة التطبيقات، استخدم Azure Key Vault. يوفر Azure Key Vault إدارة مركزية، والتحكم في الوصول، والتشفير في حالة الثبات، ومراجعة جميع المفاتيح والأسرار.

  • في AKS، يمكنك تحميل واحد أو أكثر من الأسرار من Key Vault كحجم. يمكن للـpod بعد ذلك قراءة بيانات سرية Key Vault تماماً مثل وحدة التخزين العادية. لمزيد من المعلومات، راجع مشروع secrets-store-csi-driver-Provider-azure على GitHub.

تحسين التكلفة

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

  • يصف قسم التكلفة في Microsoft Azure Well-Architected Framework اعتبارات التكلفة. استخدم حاسبة أسعار Azure لتقدير التكاليف للسيناريو المحدد الخاص بك.

  • لا تتحمل AKS أي تكاليف مرتبطة بالتوزيع والإدارة والعمليات الخاصة بمجموعة Kubernetes. أنت تدفع فقط مقابل مثيلات VM والتخزين وموارد الشبكات التي يستهلكها نظام المجموعة. يمكن أن يؤدي التحجيم التلقائي للمجموعة إلى تقليل تكلفة نظام المجموعة بشكل كبير عن طريق إزالة العقد الفارغة أو غير المستخدمة.

  • لتقدير تكلفة الموارد المطلوبة، راجع حاسبة خدمات الحاوية.

  • ضع في اعتبارك تمكين تحليل تكلفة AKS لتخصيص تكلفة البنية الأساسية لنظام المجموعة متعدد المستويات بواسطة بنيات Kubernetes المحددة.

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