ما المقصود بشبكات Kubernetes؟

رجل يتنزه بمفرده في جبال الألب

المؤلفون

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

ما المقصود بشبكات Kubernetes؟

توفر شبكات Kubernetes البنية التحتية للشبكات التي تُمكِّن الاتصال وقابلية التوسّع وتعزيز الأمان وإتاحة الوصول الخارجي إلى التطبيقات المُشغَّلة في حاويات.

وتتسم هذه الشبكة بالتعقيد، إذ تتضمّن اتصالات بين جميع المكوّنات الرئيسية داخل العنقود، مثل الحجيرات، والعُقد، والحاويات، والخدمات، وكذلك مع العناصر الخارجية مثل حركة البيانات الخارجية إلى مجموعة Kubernetes ومنه.

تعتمد هذه العناصر على أربع أساليب مميزة للشبكات لأغراض التواصل:

1. الاتصال الشبكي بين الحاويات.

2. الاتصال الشبكي بين الحجيرات.

3. الاتصال الشبكي بين الحجيرات والخدمات.

4. الاتصال الشبكي بين الخدمات والجهات الخارجية.

منظر جوي للطرق السريعة

كن مطلعًا على آخر أخبار السحابة


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

ما المقصود بمنصة Kubernetes؟

يرجع أصل اسم Kubernetes إلى اللغة اليونانية، ويعني الربّان أو قائد الدفّة. وبالاستناد إلى Borg، وهي منصة Google الداخلية لتنظيم الحاويات، قُدِّمت Kubernetes إلى الجمهور عام 2014 كأداة مفتوحة المصدر.

في العام نفسه، قدّمت جوجل مشروع Kubernetes إلى مؤسسة Cloud Native Computing Foundation، وهي جهة مفتوحة المصدر ومحايدة من حيث المزوّدين في مجال الحوسبة السحابية الأصلية. منذ ذلك الحين، أصبحت Kubernetes أداة تنسيق الحاويات الأكثر استخدامًا على نطاق واسع لتشغيل أحمال التشغيل المستندة إلى الحاويات في جميع أنحاء العالم.

وقد صُمِّم Kubernetes (ويُشار إليه أيضًا باسم k8s أو kube) صراحةً لأتمتة إدارة الحاويات، وهي الوحدة القياسية للبرامج التي تجمع التعليمات البرمجية وكلّ تبعياتها في حزمة واحدة. وتحظى هذه الأداة الخاصة بالتنسيق بقيمة عالية لقدرتها على العمل بسرعة وموثوقية في أي بيئة بنية تحتية، سواء كانت محليًا، أو في سحابة خاصة، أو سحابة عامة، أو سحابة هجينة.

وعلى عكس الأجهزة الافتراضية (VMs) التي تنفّذ المُحاكاة الافتراضية للأجهزة الفعلية، تُجري الحاويات المُحاكاة الافتراضية لنظام التشغيل نفسه، مثل Linux أو Windows. وتحتوي كل حاوية فقط على مكتبات التطبيق واعتمادياته. ونظرًا لأن الحاويات تشترك مع الجهاز المضيف في نواة نظام التشغيل نفسها، فإنها تُعَدّ خفيفة الوزن وسريعة وقابلة للنقل.

وأصبح Kubernetes ونظامه البنائي من الخدمات والدعم والأدوات بمثابة الأساس للبنية التحتية السحابية الحديثة وجهود تحديث التطبيقات. ويُدمج جميع مزوّدي السحابة الرئيسيين، بما في ذلك خدمات Amazon Web Services (AWS)، وGoogle، وMicrosoft، وIBM وRed Hat، Kubernetes ضمن منصاتهم السحابية لتعزيز قدرات المنصة كخدمة (PaaS) والبنية التحتية كخدمة (IaaS).

NS1 Connect

IBM NS1 Connect

عزِّز مرونة شبكتك باستخدام IBM NS1 Connect. في هذا الفيديو، نناقش قيمة IBM NS1 Connect لمرونة التطبيقات والأداء.

بنية Kubernetes

تتكون بنية Kubernetes من العناصر الأساسية التالية:

المجموعة

مموعة Kubernetes هو مجموعة من الأجهزة الفعلية أو الأجهزة الافتراضية (العُقد) التي تعمل معًا لتشغيل تطبيقات قائمة على الحاويات. وتشكل المجموعات الأساس الذي تُبنى عليه بنية Kubernetes.

العُقد الرئيسية

تمثِّل كلّ عقدة رئيسية مضيف حوسبة واحدًا، سواء كان جهازًا فعليًا أو جهازًا افتراضيًا. تستضيف العُقد الرئيسية مكوّنات مستوى التحكم في Kubernetes، وتتحمّل مسؤولية جدولة التطبيقات وتوسيع نطاقها.

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

العُقد العاملة

تتولّى العُقد العاملة تشغيل الحاويات وتنفيذ أي مهام تُسنِدها إليها العقدة الرئيسية. كما تستضيف حاويات التطبيقات التي تُنظَّم في مجموعات تُسمّى الحجيرات.

الحجيرات

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

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

ومن بين المكوّنات الأخرى في Kubernetes:

النشر: يتولّى النشر في Kubernetes إدارة مجموعة من الحجيرات لتشغيل حمل تشغيل لتطبيق معيّن. يحدد النشر عدد النسخ المتماثلة للحجيرات التي يجب تشغيلها على المجموعة. وإذا تعطّلت حجيرة ما، يقوم النشر بإنشاء حجيرة جديدة بديلة.

وتساعد هذه الميزة بالغة الأهمية في توسيع عدد الحجيرات المتماثلة، وتمرير تحديثات التعليمات البرمجية بسلاسة، والحفاظ على مستوى التوفّر. وتُنفَّذ عمليات النشر باستخدام kubectl، وهي أداة سطر الأوامر المخصّصة لنظام Kubernetes.

خدمة Kubernetes هي طبقة تجريدية تُعرِّف مجموعة منطقية من الحجيرات (Pods) وكيفية الوصول إليها. وتُتيح هذه الخدمة تطبيقًا شبكيًا يعمل على حجيرة واحدة أو أكثر داخل مجموعة معينة، كما توفّر طريقة تجريدية لموازنة التحميل بين الحجيرات.

خادم واجهة برمجة التطبيقات (API server): خادم واجهة برمجة التطبيقات في Kubernetes يوفّر واجهة Kubernetes API، وهي الواجهة المستخدمة لإدارة مجموعات Kubernetes وإنشائها وتكوينها، ويعمل بوصفه نقطة الدخول لجميع الأوامر والاستعلامات.

مصطلحات ومفاهيم في شبكات الكمبيوتر

شبكات الكمبيوتر الأساسية تقوم على توصيل جهازين أو أكثر لتبادل البيانات ومشاركة الموارد، إمّا عبر كابلات سلكية أو من خلال شبكات Wi-Fi.

في الشبكات المادية، تُوصَل الخوادم الفعلية بمعدات شبكة فعلية مثل المحوِّلات (Switches)، وأجهزة التوجيه (Routers)، وكابلات Ethernet للاتصال بالإنترنت.

في الشبكات الافتراضية، تُستخدَم الشبكات المعرَّفة بالبرمجيات، حيث تُثبَّت مكوّنات مثل أجهزة Ethernet الافتراضية والواجهات الافتراضية على خوادم تعمل بدون نظام تشغيل أو على أجهزة افتراضية (VMs) للاتصال بالإنترنت. يعتمد نشر Kubernetes على شبكات SDN لتكوين الاتصال الشبكي وإدارته عبر المجموعات.

قبل التعمق أكثر في شبكات Kubernetes، من المفيد مراجعة مصطلحات الشبكات الأساسية:

مضيف الشبكة
: مضيف الشبكة هو أي أي كمبيوتر متصل بشبكة ويقدّم معلومات أو تطبيقات أو خدمات لمضيفين أو عُقد أخرى على الشبكة.

عنوان بروتوكول الإنترنت (IP):
عنوان IP هو رقم فريد مخصص لكل جهاز متصل بشبكة تستخدم عنوان IP للاتصال. فهو يُحدِّد بتحديد شبكة المضيف التي ينتمي إليها الجهاز وموقعه داخل تلك الشبكة.

المضيف المحلي (Localhost): هو اسم مضيف افتراضي يعمل كعنوان IP خاص، ويشير مباشرة إلى الكمبيوتر أو الجهاز الذي يستخدمه الشخص نفسه.

المَنْفذ: المنفذ يعرِّف اتصالًا معيّنًا بين أجهزة الشبكة. لكل منفذ رقم خاص. وتستخدم أجهزة الكمبيوتر أرقام المنافذ لتحديد التطبيق أو الخدمة أو العملية التي ينبغي أن تستقبل رسالة معيّنة.

ترجمة عناوين الشبكة (NAT):
تقوم تقنية NAT بتحويل العناوين الداخلية أو الخاصة إلى عناوين IP عامة أو قابلة للتوجيه عالميًا، بما يتيح اتصالًا آمنًا بالإنترنت. كما تُمكِّن NAT من استخدام عنوان IP واحد فريد لتمثيل مجموعة كاملة من أجهزة الكمبيوتر.

وكلاء العقدة:
وكلاء العقدة هم وكلاء إداريون يراقبون خوادم التطبيقات على نظام المضيف، ويتولَّون توجيه الطلبات الإدارية إلى خوادم أخرى.

نطاق أسماء الشبكة:
مساحة أسماء الشبكة هي مجموعة من واجهات الشبكة وتعليمات جداول التوجيه، وتوفِّر طبقة من العزل بين أجهزة الشبكة.

الوكيل أو خادم الوكيل:
يعمل خادم الوكيل كبوابة بين المستخدمين والإنترنت.

كيف تعمل شبكات Kubernetes؟

تم إنشاء Kubernetes لتشغيل أنظمة موزَّعة مع طبقة شبكة ممتدة عبر مجموعة من الأجهزة. وإضافةً إلى توفير الترابط بين المكوِّنات، تُنشئ شبكات مجموعة Kubernetes بيئة سلسة يمكن للبيانات فيها أن تتحرك بحرية وكفاءة عبر الشبكات المعرَّفة بالبرمجيات (SDN).

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

بوجه عام، تُخفي شبكات Kubernetes جانبًا كبيرًا من التعقيد، مما يتيح للمطورين والمشغّلين التركيز على بناء التطبيقات وصيانتها بدلًا من الانشغال بتكوينات الشبكات المعقّدة.

نموذج شبكات Kubernetes

يوفّر Kubernetes نموذجًا للشبكات يساعد في معالجة التحديات المرتبطة بتنسيق التطبيقات المُغلَّفة في حاويات عبر بيئات موزَّعة. تتولى بيئة تشغيل الحاويات على كل عُقدة تنفيذ نموذج الشبكات والالتزام بالقواعد التالية:

لكل حجيرة عنوان IP خاص بها يمكن توجيهه داخل المجموعة. وتُغني هذه الميزة عن إنشاء روابط خاصة بين الحجيرات أو إجراء عمليات تعيين معقّدة للمنافذ.

وبما أنّ لكل حجيرة عنوان IP مستقلًا، فلا حاجة لاستخدام آلية ترجمة عناوين الشبكة (NAT). وبالتالي يمكن لجميع الحجيرات في المجموعة التواصل مباشرةً مع جميع الحجيرات الأخرى من دون استخدام NAT.

يمكن للوكلاء الموجودين على العُقدة، مثل Kubelet (وكيل العُقدة الأساسي الذي يعمل على كل عُقدة)، التواصل مع جميع الحجيرات الموجودة على تلك العُقدة بعينها.

ينطبق نموذج شبكات Kubernetes على أربعة أنماط أساسية من الاتصالات داخل بيئة Kubernetes:

1. الاتصال الشبكي بين الحاويات

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

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

2. الاتصال الشبكي بين الحجيرات

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

علاوة على ذلك، توفّر كل مجموعة Kubernetes تلقائيًا خدمة نظام أسماء النطاقات (DNS service) إلى جانب عناوين IP الخاصة بالحجيرات. تتولى خدمة DNS Services إسناد أسماء للحجيرات والخدمات، مما يوفّر للمسؤولين أسماء واضحة وسهلة القراءة وآلية خفيفة لاكتشاف الخدمات.

3. الاتصال الشبكي بين الحجيرات والخدمات

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

ووفقًا لنموذج شبكات Kubernetes، فإن عناوين IP الخاصة بالحجيرات مؤقتة وقابلة للتغيّر. لذلك، إذا تعطّلت حجيرة أو حُذِفَت واستُبدلت بها حجيرة جديدة، فمن المرجّح أن تحصل الحجيرة الجديدة على عنوان IP مختلف.

في الاتصال بين الحجيرات والخدمة، يُعَدّ ClusterIP نوعًا من الخدمات يوفّر عنوان IP افتراضيًا ثابتًا لمجموعة من الحجيرات. ولا يمكن الوصول إلى هذا العنوان الداخلي إلا داخل المجموعة، ويُستخدَم في الاتصالات الداخلية بين الحجيرات والخدمات.

يعمل kube-proxy، المثبَّت على كل عقدة في المجموعة، على إدارة قواعد الشبكة على المضيف ومراقبة أي تغيّرات تطرأ على الخدمات والحجيرات. ومع إنشاء الحجيرات أو حذفها، يقوم kube-proxy بتحديث أداة iptables (وهي برنامج يستخدم لإعداد القواعد على جدار الحماية في نواة Linux لتوجيه حركة البيانات) بحيث تعكس هذه التغيّرات، وبذلك تُوجَّه حركة البيانات المرسلة إلى عنوان IP الخاص بالخدمة توجيهًا صحيحًا.

4. الاتصال الشبكي بين الخدمات والجهات الخارجية

ويُقصَد بالاتصالات من خارج المجموعة إلى الخدمة إتاحة الخدمات بحيث يمكن الوصول إليها من خارج مجموعة Kubernetes، مثل الوصول إلى خدمات خارجية أو قواعد بيانات.

يوفّر Kubernetes عدة أنواع من الخدمات لتسهيل دخول حركة البيانات الخارجية إلى المجموعة:

ClusterIP:
على الرغم من أن ClusterIP هو نوع الخدمة الافتراضي في Kubernetes المخصَّص للاتصالات الداخلية، فإنه يمكن لحركة المرور الخارجية الوصول إليه بشكل غير مباشر عبر kube-proxy. يمكن أن يكون ClusterIP مفيدًا عند الوصول إلى خدمة من كمبيوتر محمول أو عند تصحيح أخطاء خدمة معيّنة.

العقدة:
يوفّر NodePort منفذًا ثابتًا على عنوان IP لكل عقدة في المجموعة، بحيث تصبح الخدمة متاحة للوصول إليها من خارج المجموعة. يُعد NodePort أبسط آلية لتمكين الوصول الخارجي إلى الخدمات، وغالبًا ما يُستخدم لأغراض الاختبار، مثل التحقق من إمكانية الوصول العام إلى أحد التطبيقات.

LoadBalancer:
يُعد LoadBalancer المعيار الشائع للوصول الخارجي إلى الخدمات، إذ يستخدم موازن التحميل لدى مزوّد الخدمة السحابية لإتاحة الخدمة خارجيًا ومنحها عنوان IP عامًّا. بعد ذلك تُوجَّه حركة البيانات الواردة عبر موازن التحميل الخارجي إلى الحجيرات الخلفية.

ExternalName:
تتيح خدمة ExternalName الوصول إلى خدمة خارجية بالاعتماد على اسم DNS من دون تسجيل هذه الخدمة داخل نظام أسماء النطاقات (DNS) الخاص بالمجموعة. يساعد هذا النوع من الخدمات في توفير اسم DNS ثابت للخدمات الخارجية، مثل خدمات المراسلة غير المستضافة داخل المجموعة.

Ingress:
يشير Ingress في Kubernetes إلى مجموعة من قواعد التوجيه التي تنظّم كيفية وصول الطلبات الخارجية إلى الخدمات داخل المجموعة. يتولّى Ingress Controller دور موازن التحميل الذي يعمل كجسر شبكي بين خدمات Kubernetes والخدمات الخارجية.

سياسات شبكة Kubernetes

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

يتم تطبيق سياسات الشبكة من خلال واجهة برمجة التطبيقات Kubernetes Network Policies API، وتستند إلى المكوّنات الأساسية التالية:

Pod selector:
يحدِّد أي الحجيرات تُطبَّق عليها السياسة بناءً على التسميات (labels) والمحدِّدات.

Ingress:
يحدِّد القواعد المنظمة لحركة البيانات الواردة إلى الحجيرات.

Egress:
القواعد المنظمة لحركة البيانات الصادرة من الحجيرات.

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


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

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

واجهة شبكة الحاويات (CNI) والمكوّنات الإضافية للشبكة

تُعد واجهة شبكة الحاويات (CNI) من المكوّنات الأساسية الأخرى المرتبطة بشبكات Kubernetes. تم تطوير CNI وصيانتها من قِبل Cloud Native Computing Foundation، وتُستخدم مع Kubernetes ومع بيئات تشغيل الحاويات الأخرى، مثل Red Hat OpenShift وApache Mesos. وتمثّل CNI مواصفة قياسية ومجموعة من واجهات برمجة التطبيقات (APIs) التي تُحدِّد الكيفية التي ينبغي أن تُمكِّن بها المكوّنات الإضافية للشبكة من ربط الحاويات شبكيًا.

يمكن لمكوّنات CNI الإضافية تعيين عناوين IP، وإنشاء نطاقات أسماء الشبكة (network namespaces)، وإعداد مسارات الشبكة، وغير ذلك، لتمكين الاتصال من حجيرة إلى حجيرة، سواء داخل العقدة نفسها أو عبر عقد مختلفة في المجموعة.

ورغم أن Kubernetes يوفّر تنفيذًا افتراضيًا لواجهة CNI، فإن هناك العديد من المكوّنات الإضافية من جهات خارجية، مثل Calico وFlannel وWeave، صُمِّمت خصيصًا للتعامل مع إعدادات التكوين ومتطلبات الأمان في بيئات الشبكات المعتمدة على الحاويات.

على الرغم من أن لكلٍّ منها خصائصه المميّزة وأساليبه المختلفة في التعامل مع الشبكات، مثل الشبكات المتراكبة أو التوجيه المباشر، فإنها جميعًا تلتزم بمواصفات CNI المتوافقة مع Kubernetes.

دروس Kubernetes التعليمية

إذا كنت تريد البدء في العمل باستخدام Kubernetes أو تطوير مهاراتك الحالية في Kubernetes وأدوات نظامه البنائي، فجَرِّب أحد هذه الدروس التعليمية.

حلول ذات صلة
IBM Cloud Pak for Network Automation 

IBM Cloud Pak for Network Automation هي حزمة سحابية تتيح أتمتة عمليات البنية التحتية للشبكة وتنسيقها.

استكشف Cloud Pak Automation
حلول الشبكات

توفِّر حلول الشبكات السحابية من IBM اتصالًا عالي الأداء لتشغيل تطبيقاتك وعملك.

استكشف حلول الشبكات السحابية
خدمات دعم الشبكات

دمج دعم مركز البيانات مع خدمات IBM Technology Lifecycle Services للشبكات السحابية وغيرها.

خدمات الشبكات السحابية
اتخِذ الخطوة التالية

تمكَّن من زيادة إمكانيات عملك باستخدام الحلول المتطورة لإدارة أنظمة أسماء النطاقات (DNS) والشبكات السحابية. عزِّز موثوقية تطبيقاتك وحسِّن أداء الشبكة مع الخدمات الرائدة من IBM.

استكشف حلول الشبكات السحابية استكشف خدمات أنظمة أسماء النطاقات (DNS Services) المُدارة