إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
هام
في 31 مارس 2028، سيتم إيقاف شبكات كوبينيت ل خدمة Azure Kubernetes (AKS).
لتجنب انقطاعات الخدمة، ستحتاج إلىالترقية إلى طبقة واجهة شبكة الحاويات (CNI) Azureقبل ذلك التاريخ، عندما لا يتم دعم أحمال العمل التي تعمل على kubenet ل AKS بعد الآن.
أثناء إنشاء وإدارة المجموعات في خدمة Azure Kubernetes (AKS)، فإنك توفر اتصالا بالشبكة لعقدك وتطبيقاتك. تتضمن موارد الشبكة هذه نطاقات عناوين بروتوكول الإنترنت وموازنات التحميل ووحدات التحكم في الدخول.
تركز هذه المقالة على أفضل الممارسات لاتصال الشبكة والأمان لعوامل تشغيل نظام مجموعة. في هذه المقالة، ستتعرف على كيفية:
- شرح وضع شبكة واجهة شبكة الحاويات Azure (CNI) في AKS.
- خطط عنوان بروتوكول الإنترنت المطلوبة والاتصال.
- وزع نسبة استخدام الشبكة وموازنات التحميل ووحدات التحكم في الخروج أو حدود أمان الباب لتطبيق الويب
- الاتصال بعقدة نظام المجموعة بشكل آمن
اختر نموذج الشبكة المناسب.
إرشادات أفضل الممارسات
استخدم شبكات Azure CNI في AKS للتكامل مع الشبكات الافتراضية الحالية أو الشبكات المحلية. يسمح نموذج الشبكة هذا بفصل الموارد وعناصر التحكم في بيئة المؤسسة بشكل أكبر.
توفر الشبكات الافتراضية الاتصال الأساسي لعقد AKS والعملاء للوصول إلى تطبيقاتك. هناك طريقتان مختلفتان لتوزيع نظام مجموعات AKS في الشبكات الافتراضية:
- Azure شبكات CNI: يتم نشرها في شبكة افتراضية وتستخدم إضافة Kubernetes Azure CNI الإضافية. تستلم كائنات Pod برامج عنوان بروتوكول الإنترنت الفردية التي يمكن أن توجهك إلى خدمات الشبكة الأخرى أو الموارد المحلية.
Azure CNI خيار صالح لنشر الإنتاج.
شبكات CNI
Azure CNI هو بروتوكول محايد للبائع يسمح لتشغيل الحاوية بتقديم طلبات إلى مزود الشبكة. يقوم بتعيين عناوين IP للوحدات والعقد، ويوفر ميزات إدارة عناوين IP (IPAM) أثناء اتصالك بشبكات Azure الافتراضية الحالية. كل عقدة ومورد وحدة يحصل على عنوان IP في شبكة Azure الافتراضية. ليست هناك حاجة لتوجيه إضافي للاتصال بالموارد أو الخدمات الأخرى.
ومن الجدير بالذكر أن شبكات Azure CNI للإنتاج تسمح بفصل التحكم وإدارة الموارد. فمن ناحية الأمان، قد تحتاج غالبًا إلى فرق مختلفة لإدارة هذه الموارد وتأمينها. مع شبكة Azure CNI، تتصل مباشرة بموارد Azure الحالية، أو الموارد المحلية، أو خدمات أخرى مباشرة عبر عناوين IP المخصصة لكل كبسولة.
عندما تستخدم شبكة Azure CNI، يكون مورد الشبكة الافتراضية في مجموعة موارد منفصلة عن عنقود AKS. منح الأذونات لهوية نظام مجموعة AKS للوصول إلى هذه الموارد وإدارتها. يجب أن تمتلك هوية نظام المجموعة المستخدمة من جانب نظام مجموعة AKS على أذوناتمساهم شبكة الاتصالعلى الأقل على الشبكة الفرعية داخل الشبكة الظاهرية.
إذا رغبت في تعريفدور مخصص بدلاً من استخدام دور "مساهم الشبكة" المدمج، تكون الأذونات التالية مطلوبة:
Microsoft.Network/virtualNetworks/subnets/join/actionMicrosoft.Network/virtualNetworks/subnets/read
يستخدم AKS بشكل افتراضي هوية مُدارة لتحديد هوية نظام مجموعة ومع ذلك، يمكنك استخدام كيان الخدمة بدلا من ذلك.
- لمزيد من المعلومات حول تفويض الرئيسيين في خدمة AKS، راجع Delegate Access إلى موارد Azure أخرى.
- لمزيد من المعلومات حول الهويات المدارة، راجع استخدام الهويات المدارة.
نظرًا لاستلام كل عقدة وكائن Pod عنوان بروتوكول الإنترنت المخصص، تُخطط نطاقات العنوان لشبكات AKS الفرعية. ضع المعايير التالية في الاعتبار:
- يجب أن تكون الشبكة الفرعية كبيرة بما يكفي لتوفير عناوين IP لكل عقدة وجراب ومورد شبكة تقوم بنشره.
- مع شبكات Azure CNI، لكل عقدة تعمل حدود افتراضية لعدد البودات.
- تجنب استخدام نطاقات عناوين بروتوكول الإنترنت التي تتداخل مع موارد الشبكة الموجودة.
- من الضروري السماح بالاتصال بالشبكات المحلية أو المتشابهة في Azure.
- للتعامل مع أحداث التوسع أو ترقيات العنقود، تحتاج إلى عناوين IP إضافية متاحة في الشبكة الفرعية المخصصة.
- هذه المساحة الإضافية للعناوين مهمة بشكل خاص إذا كنت تستخدم حاويات Windows Server، حيث تتطلب مجموعات العقد ترقية لتطبيق أحدث تصحيحات الأمان. لمزيد من المعلومات حول Windows Server العقد، راجع ترقية مجموعة العقد في AKS.
لحساب عنوان IP المطلوب، راجع تكوين شبكة CNI Azure في AKS.
عند إنشاء عنقود باستخدام شبكة Azure CNI، تحدد نطاقات عناوين أخرى للعنابد، مثل عنوان جسر Docker، وعنوان IP خدمة DNS، ونطاق عناوين الخدمة. بشكل عام، تأكد من أن نطاقات العناوين هذه لا تتداخل مع بعضها البعض أو أي شبكات مرتبطة بالمجموعة، بما في ذلك أي شبكات ظاهرية وشبكات فرعية وشبكات محلية وشبكات نظيرة.
للتفاصيل المحددة حول الحدود والحجم لهذه النطاقات العنونية، انظر تكوين شبكات CNI Azure في AKS.
توزيع نسبة استخدام الشبكة عند الدخول
إرشادات أفضل الممارسات
لتوزيع بروتوكول نقل نص تشعبي أو نسبة استخدام الشبكة لبروتوكول نقل نص تشعبي إلى تطبيقاتك، استخدم موارد الدخول ووحدات التحكم. مقارنة بموازن التحميل Azure، توفر وحدات التحكم في Inress ميزات إضافية ويمكن إدارتها كموارد Kubernetes الأصلية.
بينما يمكن لموازن التحميل Azure توزيع حركة العملاء إلى التطبيقات في عنقود AKS الخاص بك، إلا أن فهمه محدود لتلك الحركة. يعمل مورد موازن التحميل في الطبقة 4 ويوزع نسبة استخدام الشبكة استنادا إلى البروتوكول أو المنافذ.
يجب أن تستخدم معظم تطبيقات الويب التي تستخدم HTTP أو HTTPS موارد ووحدات تحكم دخول Kubernetes، والتي تعمل في الطبقة 7. يمكن توزيع نسبة استخدام الشبكة استنادًا إلى عنوان محدد مواقع ويب للتطبيق ومعالجة إنهاء TLS/SSL. يقلل الدخول عدد عناوين بروتوكول الإنترنت التي تعرضها والمخطط.
عند استخدام موازن تحميل، يحتاج كل تطبيق عادة عنوان بروتوكول إنترنت عام معين وتعيينه إلى الخدمة في نظام المجموعة AKS. يمكن، باستخدام مورد الدخول، أن يقوم عنوان بروتوكول الإنترنت الواحد بتوزيع نسبة استخدام الشبكة إلى التطبيقات المتعددة.
يوجد نوعان من المكونات للدخول:
- مورد دخول
- وحدة التحكم في الدخول
مورد الدخول
يمثل مورد الدخول بيان YAML المقدم منkind: Ingress . حيث يعرف المضيف والشهادات وقواعد توجيه نسبة استخدام الشبكة إلى الخدمات التي تعمل في نظام مجموعة AKS.
يوزع بيان YAML المثال التالي نسبة استخدام الشبكة myapp.com إلى إحدى خدمتين، خدمة المدونة أو خدمة المتجر، ويوجه العميل إلى خدمة واحدة أو أخرى استنادا إلى عنوان URL الذي يصل إليه.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myapp-ingress
spec:
ingressClassName: PublicIngress
tls:
- hosts:
- myapp.com
secretName: myapp-secret
rules:
- host: myapp.com
http:
paths:
- path: /blog
backend:
service:
name: blogservice
port: 80
- path: /store
backend:
service:
name: storeservice
port: 80
جهاز التحكم في الدخول
تعتبروحدة التحكم في الدخول العنصر الخفي الذي يعمل على تشغيل عقدة AKS ومراقبة الطلبات الواردة. ثم يتم توزيع نسبة استخدام الشبكة استنادًا إلى القواعد المحددة في موارد الدخول. بالرغم من اعتماد وحدة التحكم في الدخول إلى NGINX، فلن يقيدك AKS بوحدة تحكم محددة. يمكنك استخدام Application Gateway لحاويات مثل ContourوHAProxyوTraefik وغيرها.
تتم جدولة وحدة التحكم في الدخول على عقدة Linux. الإشارة إلى ضرورة تشغيل المورد على العقدة المستندة إلى Linux باستخدام محدد عقدة في بيان YAML أو توزيع مخطط Helm. للمزيد من المعلومات، راجع استخدام محددات العقدة للتحكم في مكان جدولة كائنات Pod في AKS.
الدخول باستخدام ملحق توجيه التطبيق
ملحق توجيه التطبيق هو الطريقة الموصى بها لتكوين وحدة تحكم الدخول في AKS. إضافة توجيه التطبيقات هي وحدة تحكم إدخال مدارة بالكامل لخدمة خدمة Azure Kubernetes (AKS) توفر الميزات التالية:
تكوين سهل لوحدات تحكم دخول NGINX المدارة استنادا إلى وحدة تحكم دخول Kubernetes NGINX.
التكامل مع Azure DNS لإدارة المناطق العامة والخاصة.
إنهاء SSL مع الشهادات المخزنة في Azure Key Vault.
لمزيد من المعلومات حول الوظيفة الإضافية لتوجيه التطبيق، راجع دخول NGINX المدار مع الوظيفة الإضافية لتوجيه التطبيق.
تقييد نسبة استخدام شبكة الويب باستخدام حدود أمان البوابة لتطبيق ويب
إرشادات أفضل الممارسات
لمسح حركة المرور الواردة بحثا عن هجمات محتملة، استخدم جدار حماية لتطبيقات الويب (WAF) مثل Barracuda WAF ل Azure أو Azure Application Gateway ل Containers. يمكن لموارد الشبكة الأكثر تقدمًا توجيه نسبة استخدام الشبكة إلى ما يتجاوز بروتوكول نقل نص تشعبي وتوصيلات بروتوكول نقل نص تشعبي أو إنهاء بروتوكول أمان طبقة النقل الأساسي.
في الغالب، تمثل وحدة التحكم في دخول مورد Kubernetes في نظام مجموعة AKS الذي يوزع نسبة استخدام الشبكة إلى الخدمات والتطبيقات. تعمل وحدة التحكم كنظام خفي في عقدة AKS وتستهلك بعض موارد العقدة مثل CPU والذاكرة وعرض النطاق الترددي للشبكة. في البيئات الأكبر، قد تحتاج إلى مراعاة ما يلي:
- إلغاء تحميل جزء من توجيه نسبة استخدام الشبكة أو إنهاء بروتوكول أمان طبقة النقل إلى مورد شبكة اتصال خارج نظام مجموعة AKS.
- فحص نسبة استخدام الشبكة الواردة بحثًا عن الهجمات المحتملة.
يقوم حدود أمان بوابة تطبيق الويب بتصفية نسبة استخدام الشبكة الواردة بغرض تحقيق الطبقة الإضافية من الأمان. مع مجموعة من القواعد، يراقب Project أمن تطبيقات الويب المفتوحة (OWASP) هجمات مثل البرمجة عبر المواقع أو تسمم ملفات تعريف الارتباط. Azure Application Gateway للحاويات هو WAF يتكامل مع عناقيد AKS، حيث يقفل هذه الميزات الأمنية قبل وصول حركة المرور إلى عنقود AKS وتطبيقاتك.
يمكنك الاستمرار في استخدام الاستثمارات أو الخبرات الموجودة في منتجك المفضل حيث تضطلع الحلول الأخرى لجهات خارجية أيضًا بهذه المهام.
يعمل موازن التحميل أو موارد الدخول باستمرار في نظام مجموعة AKS الخاص بك ويُحسن توزيع نسبة استخدام الشبكة. يمكن إدارة Azure Application Gateway للحاويات مركزيا كمتحكم في الدخول مع تعريف مورد. للبدء، أنشئ بوابة تطبيقات للحاويات.
تأمين نسبة استخدام الشبكة باستخدام نُهج الشبكة
إرشادات أفضل الممارسات
استخدم نهج الشبكة للسماح بتحديد نسبة استخدام الشبكة في كائنات Pods أو رفضها. يُسمح افتراضيًا بتحديد نسبة استخدام الشبكة بين كائنات Pods داخل نظام المجموعة. لتحسين الأمان، حدد القواعد التي تحد من اتصال كائنات Pod.
تعد نهج الشبكة ميزة Kubernetes متوفرة في AKS تمكنك من التحكم في تدفق نسبة الاستخدام بين الحاويات. يمكنك السماح بنسبة استخدام إلى الحاوية أو رفضها استنادًا إلى إعدادات مثل التسميات المعينة أو مساحة الاسم أو منفذ نسبة الاستخدام. تُعد نُهج الشبكة بمثابة طريقة سحابة أصلية للتحكم في تدفق نسبة استخدام الشبكة في كائنات pods. وكما يتم إنشاء الحاويات ديناميكيًا في نظام مجموعة AKS، يمكن تطبيق نُهُج الشبكة المطلوبة تلقائيًا.
لاستخدام نهج الشبكة في AKS، يمكن تمكين الميزة إما أثناء إنشاء نظام المجموعة أو على مجموعة AKS موجودة. إذا كنت تخطط لاستخدام نهج الشبكة، فتأكد من تمكين الميزة على نظام مجموعة AKS.
إشعار
يمكن استخدام سياسات الشبكة للعقد والوحدات المبنية على لينكس أو Windows في AKS.
تُنشئ نهج شبكة كمورد Kubernetes باستخدام بيان YAML. تُطبق السياسات على كائنات Pod المحددة من خلال استخدام قواعد الدخول أو الخروج التي تحدد تدفق نسبة استخدام الشبكة.
يطبق المثال التالي نهج شبكة على كائنات pod باستخدام تطبيق: وتُطبق تسمية الخلفيةعليها. تسمح قاعدة الدخول فقط بنسبة استخدام الشبكة من pods مع التطبيق: تسمية الواجهة الأمامية .
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: backend-policy
spec:
podSelector:
matchLabels:
app: backend
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
للبدء في السياسات، راجع Secure traffic بين الوحدات باستخدام سياسات الشبكة في خدمة Azure Kubernetes (AKS).
تحسين دقة DNS باستخدام LocalDNS
إرشادات أفضل الممارسات
قم بتمكين LocalDNS على مجموعات عقد AKS الخاصة بك لتحسين أداء DNS وموثوقيته وتقليل الحمل على وحدات CoreDNS المركزية.
تعد دقة DNS ضرورية للتواصل بين الخدمة. افتراضيا، ترسل جميع استفسارات DNS من البودات إلى وحدات CoreDNS المركزية، مما قد يصبح عنق زجاجة على نطاق واسع. تقدم AKS نظام LocalDNS، الذي ينشر وكيل DNS كخدمة systemd على كل عقدة. يتعامل هذا الوكيل مع استعلامات DNS محليا، مما يقلل من القفزات بين الشبكات وكمون الحل.
كما يلغي conntrack LocalDNS إدخالات الجداول لحركة مرور DNS، مما يمنع conntrack استنفاد الجداول وظروف السباق التي قد تسبب انقطاع الاتصالات. يتم ترقية الاتصالات من ذاكرة التخزين المؤقت المحلية إلى CoreDNS إلى TCP، مما يتيح إعادة توازن الاتصال وتنظيف أسرع لمدخلات التتبع.
بالنسبة لأحمال العمل التي تتطلب توافرا عاليا ل DNS، يدعم LocalDNS تقديم ردود مخزنة قديمة لمدة قابلة للتكوين عندما لا يكون DNS في التيار الأصلي متاحا. تساعد هذه القدرة في الحفاظ على اتصال البودات وموثوقية الخدمة أثناء انقطاعات DNS المؤقتة.
لمزيد من المعلومات حول بنية وقدرات LocalDNS، راجع دقة DNS في AKS. للحصول على تعليمات التكوين، راجع تكوين LocalDNS.
الاتصال بأمان بالعقد من خلال مضيف محمي
إرشادات أفضل الممارسات
لا تعرض الاتصال عن بُعد إلى عقد AKS. إنشاء مضيف محمي أو مربع الانتقال في شبكة الإدارة الافتراضية. استخدم المضيف المحمي لتوجيه نسبة استخدام الشبكة بأمان إلى مجموعة AKS الخاصة بك ونقلها إلى مهام الإدارة عن بُعد.
يمكنك إكمال معظم العمليات في AKS باستخدام أدوات إدارة Azure أو من خلال خادم Kubernetes API. تُتاح عقد AKS فقط على الشبكة الخاصة ولا ترتبط بالإنترنت العام. للاتصال بالعقد وتوفير الصيانة والدعم، وجه اتصالاتك عبر مضيف محمي أومربع الانتقال. تحقق من أن هذا المضيف يعيش في شبكة ظاهرية إدارة منفصلة ومتناظرة بشكل آمن إلى الشبكة الظاهرية لمجموعة AKS.
يجب عليك أيضا تأمين شبكة الإدارة لمضيف bastion. استخدم بوابة
الخطوات التالية
ركزت هذه المقالة على اتصال الشبكة والأمان. لمزيد من المعلومات حول أساسيات الشبكة في Kubernetes، راجع مفاهيم الشبكة للتطبيقات في خدمة Azure Kubernetes (AKS)