كوبيرنيتس
تحتوي هذه المقالة على العديد من المشكلات. يُرجى المساعدة في تحسينها أو مناقشة هذه المشكلات على صفحة المناقشة . ( تعرف على كيفية ومتى يمكنك إزالة هذه الرسائل )
|
| المؤلف(ون) الأصلي(ون) | جوجل |
|---|---|
| المطور(ون) | مؤسسة الحوسبة السحابية الأصلية |
| الإصدار الأولي | 0.2 [1] / 9 سبتمبر 2014 |
| إصدار مستقر | 1.31.1 [2]
/ 12 سبتمبر 2024 |
| مستودع |
|
| مكتوب في | يذهب |
| يكتب | برنامج إدارة المجموعات |
| رخصة | رخصة أباتشي 2.0 |
| موقع إلكتروني | كوبيرنيتيس.يو |
Kubernetes ( / ˌk ( j ) uːbərˈnɛtɪs , -ˈneɪtɪs , -ˈneɪtiːz , -ˈnɛtiːz / , K8s ) [ 3] هو نظام تنسيق حاويات مفتوح المصدر لأتمتة نشر البرامج وتوسيع نطاقها وإدارتها . [ 4] [ 5 ] تم تصميم المشروع في الأصل بواسطة Google ، ويتم صيانته الآن بواسطة مجتمع عالمي من المساهمين ، والعلامة التجارية مملوكة لمؤسسة Cloud Native Computing Foundation .
يعود أصل اسم Kubernetes إلى الكلمة اليونانية κυβερνήτης (kubernḗtēs)، والتي تعني الحاكم أو " قائد السفينة " أو "الطيار". غالبًا ما يتم اختصار Kubernetes إلى K8s ، مع حساب الأحرف الثمانية بين حرف K وحرف s ( اسم رقمي ). [6]
يقوم Kubernetes بتجميع جهاز كمبيوتر واحد أو أكثر، إما آلات افتراضية أو أجهزة عادية ، في مجموعة يمكنها تشغيل أحمال العمل في حاويات. إنه يعمل مع أوقات تشغيل حاويات مختلفة، مثل Containerd و CRI-O . [7] أدت ملاءمته لتشغيل وإدارة أحمال العمل بجميع الأحجام والأنماط إلى اعتماده على نطاق واسع في السحابات ومراكز البيانات. هناك توزيعات متعددة لهذه المنصة - من بائعي البرامج المستقلين (ISVs) بالإضافة إلى العروض المستضافة على السحابة من جميع بائعي السحابة العامة الرئيسيين. [8]
يعد Kubernetes أحد أنظمة البرمجيات الأكثر انتشارًا في العالم [9] حيث يتم استخدامه عبر الشركات بما في ذلك Google و Microsoft و Amazon و Apple و Meta و Nvidia و Reddit و Pinterest .
تاريخ

أعلنت شركة جوجل عن كوبرنيتس ( باليونانية القديمة : κυβερνήτης ، وبالرومانية : kubernḗtēs ، وتعني " قائد التوجيه " أو "الملاح " أو " الدليل " ، والجذر اللغوي لكلمة سيبرنيتيكا ) [5] في 6 يونيو 2014. [10] وقد تصور المشروع وأنشأه موظفو جوجل جو بيدا وبريندان بيرنز وكريج ماكلوكي. وسرعان ما انضم آخرون في جوجل للمساعدة في بناء المشروع بما في ذلك فيلي أيكاس وداون تشين وبريان جرانت وتيم هوكين ودانييل سميث. [11] [12] وانضمت شركات أخرى مثل ريد هات وكور أو إس إلى الجهود بعد فترة وجيزة، مع مساهمين بارزين مثل كلايتون كولمان وكيلسي هايتاور . [10]
استوحى تصميم وتطوير Kubernetes من مدير مجموعة Borg من Google واستند إلى نظرية الوعد . [13] [14] عمل العديد من كبار المساهمين سابقًا على Borg؛ [15] [16] أطلقوا على Kubernetes الاسم الرمزي " Project 7 " بعد شخصية Borg السابقة في Star Trek Seven of Nine [17] وأعطوا شعارها عجلة سفينة ذات سبعة قضبان (صممها تيم هوكين). على عكس Borg، الذي تمت كتابته بلغة C++ ، [15] تمت كتابة Kubernetes بلغة Go .
تم الإعلان عن Kubernetes في يونيو 2014 وتم إصدار الإصدار 1.0 في 21 يوليو 2015. [18] عملت Google مع مؤسسة Linux لتشكيل مؤسسة الحوسبة السحابية الأصلية (CNCF) [19] وعرضت Kubernetes كتكنولوجيا أساسية.
كانت Google تقدم بالفعل خدمة Kubernetes المُدارة، GKE ، وكانت Red Hat تدعم Kubernetes كجزء من OpenShift منذ إنشاء مشروع Kubernetes في عام 2014. [20] في عام 2017، اجتمع المنافسون الرئيسيون حول Kubernetes وأعلنوا عن إضافة دعم أصلي له:
- VMware (داعم Pivotal Cloud Foundry ) [21] في أغسطس،
- Mesosphere, Inc. (مؤيد لماراثون وميسوس ) [ 22] في سبتمبر،
- Docker, Inc. (مؤيد Docker ) [23] في أكتوبر،
- Microsoft Azure [24] أيضًا في أكتوبر،
- أعلنت AWS عن دعمها لـ Kubernetes عبر خدمة Elastic Kubernetes (EKS) [25] في نوفمبر.
في 6 مارس 2018، وصل مشروع Kubernetes إلى المركز التاسع في قائمة مشاريع GitHub من حيث عدد الالتزامات ، والمركز الثاني من حيث المؤلفين والإصدارات، بعد نواة Linux . [26]
حتى الإصدار 1.18، اتبعت Kubernetes سياسة دعم N-2، مما يعني أن الإصدارات الثلاثة الأحدث تتلقى تحديثات أمنية وإصلاحات للأخطاء. [27] بدءًا من الإصدار 1.19، تتبع Kubernetes سياسة دعم N-3. [28]
المفاهيم

يحدد Kubernetes مجموعة من الكتل الأساسية ("العناصر الأساسية") التي توفر بشكل جماعي آليات لنشر التطبيقات وصيانتها وتوسيع نطاقها استنادًا إلى وحدة المعالجة المركزية أو الذاكرة [29] أو المقاييس المخصصة. [30] Kubernetes مقترن بشكل فضفاض وقابل للتوسيع لتلبية احتياجات أحمال العمل المختلفة. تعتمد المكونات الداخلية بالإضافة إلى الامتدادات والحاويات التي تعمل على Kubernetes على واجهة برمجة تطبيقات Kubernetes. [31] تمارس المنصة سيطرتها على موارد الحوسبة والتخزين من خلال تعريف الموارد ككائنات، والتي يمكن إدارتها على هذا النحو.
يتبع Kubernetes بنية النسخة الأساسية/النسخة المتماثلة . يمكن تقسيم مكونات Kubernetes إلى تلك التي تدير عقدة فردية وتلك التي تشكل جزءًا من مستوى التحكم. [31] [32]
طائرة التحكم
تتولى عقدة Kubernetes الرئيسية التعامل مع مستوى تحكم Kubernetes للمجموعة، وإدارة عبء العمل الخاص بها وتوجيه الاتصالات عبر النظام. يتكون مستوى تحكم Kubernetes من مكونات مختلفة مثل تشفير TLS و RBAC وطريقة مصادقة قوية وفصل الشبكة، ولكل منها عملية خاصة بها، والتي يمكن تشغيلها على عقدة رئيسية واحدة أو على عدة عقد رئيسية تدعم مجموعات عالية التوفر . [32] المكونات المختلفة لمستوى تحكم Kubernetes هي كما يلي. [33]
الخ
Etcd [34] عبارة عن مخزن بيانات ثابت وخفيف الوزن وموزع وقيم أساسية (تم تطويره في الأصل لنظام Linux Container ). يخزن بشكل موثوق بيانات تكوين المجموعة، ويمثل الحالة العامة للمجموعة في أي نقطة زمنية معينة. يفضل etcd الاتساق على التوافر في حالة تقسيم الشبكة (انظر نظرية CAP ). الاتساق أمر بالغ الأهمية لجدولة الخدمات وتشغيلها بشكل صحيح.
خادم API
يخدم خادم API واجهة برمجة تطبيقات Kubernetes باستخدام JSON عبر HTTP ، والذي يوفر كلًا من الواجهة الداخلية والخارجية لـ Kubernetes. [31] [35] يعالج خادم API طلبات REST ويتحقق من صحتها ويقوم بتحديث حالة كائنات API في etcd، مما يسمح للعملاء بتكوين أحمال العمل والحاويات عبر عقد العمال. [36] يستخدم خادم API واجهة برمجة تطبيقات المراقبة الخاصة بـ etcd لمراقبة المجموعة، أو طرح تغييرات التكوين الحرجة، أو استعادة أي اختلافات في حالة المجموعة إلى الحالة المطلوبة كما هو معلن في etcd.
على سبيل المثال، قد يحدد مشغل بشري أن هناك حاجة إلى تشغيل ثلاث نسخ من "جراب" معين (انظر أدناه)، ويقوم برنامج etcd بتخزين هذه الحقيقة. إذا وجد متحكم النشر أن نسختين فقط قيد التشغيل (متعارضة مع إعلان etcd)، [37] فإنه يقوم بجدولة إنشاء نسخة إضافية من هذا الجراب. [32]
المجدول
المجدول هو مكون قابل للتوسيع يختار العقدة التي يتم تشغيل جراب غير مجدول (الوحدة الأساسية لأحمال العمل المراد جدولتها)، بناءً على توفر الموارد والقيود الأخرى. يتتبع المجدول تخصيص الموارد على كل عقدة للتأكد من عدم جدولة عبء العمل بما يتجاوز الموارد المتاحة. لهذا الغرض، يجب أن يعرف المجدول متطلبات الموارد وتوافر الموارد والقيود الأخرى التي يوفرها المستخدم أو التوجيهات السياسية مثل جودة الخدمة ومتطلبات التقارب/عدم التقارب وموقع البيانات. يتمثل دور المجدول في مطابقة "عرض" الموارد مع "طلب" عبء العمل. [38]
يسمح Kubernetes بتشغيل العديد من المجدولين داخل مجموعة واحدة. وبالتالي، يمكن تطوير مكونات إضافية للمجدول وتثبيتها كملحقات أثناء العملية للمجدول الأصلي من خلال تشغيله كمجدول منفصل، طالما أنها تتوافق مع إطار عمل جدولة Kubernetes. [39] يسمح هذا لمسؤولي المجموعة بتوسيع أو تعديل سلوك المجدول الافتراضي في Kubernetes وفقًا لاحتياجاتهم.
وحدات التحكم
المتحكم هو حلقة توفيق تعمل على دفع حالة المجموعة الفعلية نحو الحالة المطلوبة، والتواصل مع خادم واجهة برمجة التطبيقات لإنشاء وتحديث وحذف الموارد التي يديرها (على سبيل المثال، وحدات التخزين أو نقاط نهاية الخدمة). [ 40] [35]
من أمثلة وحدات التحكم وحدة تحكم ReplicaSet، التي تتعامل مع النسخ المتماثل والتوسع من خلال تشغيل عدد محدد من نسخ جراب عبر المجموعة. كما تتعامل وحدة التحكم مع إنشاء جرابات بديلة إذا فشلت العقدة الأساسية. [40] تتضمن وحدات التحكم الأخرى التي تعد جزءًا من نظام Kubernetes الأساسي وحدة تحكم DaemonSet لتشغيل جراب واحد بالضبط على كل جهاز (أو بعض مجموعات الأجهزة الفرعية)، ووحدة تحكم Job لتشغيل جرابات تعمل حتى اكتمالها (على سبيل المثال كجزء من مهمة دفعة). [41] غالبًا ما تشكل محددات العلامات جزءًا من تعريف وحدة التحكم التي تحدد مجموعة الجرابات التي تديرها وحدة التحكم. [42]
مدير وحدة التحكم هو عملية واحدة تدير العديد من وحدات التحكم الأساسية في Kubernetes (بما في ذلك الأمثلة الموضحة أعلاه)، ويتم توزيعها كجزء من تثبيت Kubernetes القياسي والاستجابة لفقدان العقد. [33]
يمكن أيضًا تثبيت وحدات تحكم مخصصة في المجموعة، مما يسمح بتوسيع سلوك واجهة برمجة التطبيقات الخاصة بـ Kubernetes عند استخدامها مع الموارد المخصصة (انظر الموارد المخصصة ووحدات التحكم والمشغلات أدناه).
العقد
العقدة، المعروفة أيضًا باسم العامل أو التابع، هي جهاز يتم فيه نشر الحاويات (أحمال العمل). يجب أن تقوم كل عقدة في المجموعة بتشغيل وقت تشغيل الحاوية ، بالإضافة إلى المكونات المذكورة أدناه، للتواصل مع تكوين الشبكة الأساسي لهذه الحاويات.
كوبيليت
يعد kubelet مسؤولاً عن حالة التشغيل لكل عقدة، مما يضمن أن جميع الحاويات الموجودة على العقدة سليمة. فهو يتولى بدء تشغيل حاويات التطبيقات وإيقافها وصيانتها المنظمة في حاويات وفقًا لتوجيهات مستوى التحكم. [31] [43] يراقب kubelet حالة الحاوية، وإذا لم تكن في الحالة المرغوبة، يتم إعادة نشر الحاوية على نفس العقدة. يتم نقل حالة العقدة كل بضع ثوانٍ عبر رسائل نبضات القلب إلى خادم واجهة برمجة التطبيقات. بمجرد اكتشاف مستوى التحكم لفشل العقدة، من المتوقع أن يلاحظ وحدة تحكم ذات مستوى أعلى هذا التغيير في الحالة ويطلق الحاويات على عقدة سليمة أخرى. [44]
وقت تشغيل الحاوية
وقت تشغيل الحاوية مسؤول عن دورة حياة الحاويات، بما في ذلك تشغيل الحاويات ومطابقتها وقتلها. يتفاعل kubelet مع وقت تشغيل الحاوية عبر واجهة وقت تشغيل الحاوية (CRI)، [45] [46] والتي تفصل صيانة Kubernetes الأساسية عن تنفيذ CRI الفعلي.
في الأصل، كان kubelet يتفاعل حصريًا مع وقت تشغيل Docker [47] من خلال "dockershim". ومع ذلك، من نوفمبر 2020 [48] حتى أبريل 2022، أوقف Kubernetes استخدام shim لصالح التفاعل المباشر مع الحاوية من خلال Containerd، أو استبدال Docker بوقت تشغيل متوافق مع واجهة وقت تشغيل الحاوية (CRI). [49] [45] [50] مع إصدار v1.24 في مايو 2022، تمت إزالة "dockershim" بالكامل. [51]
تتضمن أمثلة بيئات تشغيل الحاويات الشائعة المتوافقة مع kubelet كلًا من Containerd (المدعوم مبدئيًا عبر Docker)، و rkt [52] و CRI-O .
كيوب بروكسي
kube-proxy هو تنفيذ لوكيل شبكة وموازن تحميل ، وهو يدعم تجريد الخدمة جنبًا إلى جنب مع عمليات الشبكات الأخرى. [31] وهو مسؤول عن توجيه حركة المرور إلى الحاوية المناسبة بناءً على عنوان IP ورقم المنفذ للطلب الوارد.
المساحات الاسمية
في Kubernetes، يتم استخدام المساحات الاسمية لفصل الموارد التي تتعامل معها إلى مجموعات مميزة وغير متقاطعة. [53] وهي مخصصة للاستخدام في البيئات التي بها العديد من المستخدمين المنتشرين عبر فرق أو مشاريع متعددة، أو حتى فصل البيئات مثل التطوير والاختبار والإنتاج.
قرون
وحدة الجدولة الأساسية في Kubernetes هي جراب ، [54] يتكون من حاوية واحدة أو أكثر مضمونة التواجد في نفس العقدة. [31] يتم تعيين عنوان IP فريد لكل جراب في Kubernetes داخل المجموعة، مما يسمح للتطبيقات باستخدام المنافذ دون خطر الصراع. [55] داخل الجراب، يمكن لجميع الحاويات الرجوع إلى بعضها البعض.
توجد الحاوية داخل جراب. الحاوية هي المستوى الأدنى من الخدمة المصغرة، والتي تحتوي على التطبيق الجاري تشغيله والمكتبات وتبعياتها.
أحمال العمل
يدعم Kubernetes العديد من التجريدات لأحمال العمل التي تكون على مستوى أعلى من الكبسولات البسيطة. وهذا يسمح للمستخدمين بتعريف وإدارة هذه التجريدات عالية المستوى بشكل معلن، بدلاً من الاضطرار إلى إدارة الكبسولات الفردية بأنفسهم. يتم وصف العديد من هذه التجريدات، المدعومة بتثبيت قياسي من Kubernetes، أدناه.
مجموعات النسخ المتماثلة ووحدات التحكم في النسخ المتماثل والنشر
الغرض من ReplicaSet هو الحفاظ على مجموعة مستقرة من وحدات النسخ المتماثلة قيد التشغيل في أي وقت معين. وعلى هذا النحو، غالبًا ما يتم استخدامها لضمان توفر عدد محدد من وحدات النسخ المتماثلة. [56] يمكن أيضًا القول إن ReplicaSet هي آلية تجميع تتيح لـ Kubernetes الحفاظ على عدد الحالات التي تم إعلانها لوحدة نسخ متماثلة معينة. يستخدم تعريف ReplicaSet محددًا، والذي سيؤدي تقييمه إلى تحديد جميع وحدات النسخ المتماثلة المرتبطة به.
يخدم ReplicationController ، المشابه لـ ReplicaSet، نفس الغرض ويتصرف بشكل مشابه لـ ReplicaSet، وهو التأكد من وجود عدد محدد دائمًا من نسخ البود كما هو مطلوب. كان عبء عمل ReplicationController هو السلف لـ ReplicaSet، ولكن تم التخلي عنه في النهاية لصالح ReplicaSet للاستفادة من محددات العلامات المستندة إلى المجموعة. [56]
تعد عمليات النشر آلية إدارة ذات مستوى أعلى لمجموعات النسخ المتماثلة. وبينما تدير وحدة التحكم في مجموعة النسخ المتماثلة مقياس مجموعة النسخ المتماثلة، تدير وحدة التحكم في النشر ما يحدث لمجموعة النسخ المتماثلة - سواء كان يجب طرح تحديث أو التراجع عنه، وما إلى ذلك. وعندما يتم توسيع نطاق عمليات النشر أو تقليصه، يؤدي هذا إلى تغيير إعلان مجموعة النسخ المتماثلة، ويتم إدارة هذا التغيير في الحالة المعلنة بواسطة وحدة التحكم في مجموعة النسخ المتماثلة. [37]
مجموعات الحالة
تعد StatefulSets وحدات تحكم تفرض خصائص التفرد والترتيب بين مثيلات جراب، ويمكن استخدامها لتشغيل تطبيقات ذات حالة . [57] في حين أن توسيع نطاق التطبيقات عديمة الحالة لا يعدو كونه مجرد إضافة المزيد من جرابات التشغيل، فإن القيام بذلك لأحمال العمل ذات الحالة أصعب، لأن الحالة تحتاج إلى الحفاظ عليها إذا أعيد تشغيل جراب. إذا تم توسيع نطاق التطبيق أو تقليصه، فقد يلزم إعادة توزيع الحالة.
تُعد قواعد البيانات مثالاً على أحمال العمل التي تخضع لحالة معينة. فعند تشغيلها في وضع التوفر العالي، تأتي العديد من قواعد البيانات مع مفهوم المثيل الأساسي والمثيلات الثانوية. وفي هذه الحالة، يكون مفهوم ترتيب المثيلات مهمًا. توزع تطبيقات أخرى مثل Apache Kafka البيانات بين وسطاءها؛ وبالتالي، لا يكون أحد الوسطاء مثل الآخر. وفي هذه الحالة، يكون مفهوم تفرد المثيل مهمًا.
مجموعات الشياطين
DaemonSets مسؤولة عن ضمان إنشاء جراب على كل عقدة في المجموعة. [58] بشكل عام، يتم توسيع نطاق معظم أحمال العمل استجابة لعدد النسخ المتماثلة المطلوب، اعتمادًا على متطلبات التوفر والأداء حسب الحاجة من قبل التطبيق. ومع ذلك، في سيناريوهات أخرى، قد يكون من الضروري نشر جراب على كل عقدة في المجموعة، وزيادة عدد الجرابات الإجمالية مع إضافة العقد وجمع القمامة عند إزالتها. هذا مفيد بشكل خاص لحالات الاستخدام حيث يكون لحمل العمل بعض الاعتماد على العقدة الفعلية أو جهاز المضيف، مثل جمع السجلات ووحدات التحكم في الدخول وخدمات التخزين.
خدمات

خدمة Kubernetes هي مجموعة من البودات التي تعمل معًا، مثل طبقة واحدة من تطبيق متعدد الطبقات . يتم تعريف مجموعة البودات التي تشكل خدمة بواسطة محدد تسمية. [31] توفر Kubernetes طريقتين لاكتشاف الخدمة ، باستخدام متغيرات البيئة أو باستخدام Kubernetes DNS. [59] يعين اكتشاف الخدمة عنوان IP ثابتًا واسم DNS للخدمة، ويوازن التحميل حركة المرور بطريقة دائرية لاتصالات الشبكة لعنوان IP هذا بين البودات المطابقة للمحدد (حتى مع تسبب الأعطال في انتقال البودات من جهاز إلى آخر). [55] بشكل افتراضي، يتم عرض الخدمة داخل مجموعة (على سبيل المثال، قد يتم تجميع البودات الخلفية في خدمة، مع موازنة تحميل الطلبات من البودات الأمامية فيما بينها)، ولكن يمكن أيضًا عرض الخدمة خارج مجموعة (على سبيل المثال، للعملاء للوصول إلى البودات الأمامية). [60]
المجلدات
توفر أنظمة الملفات في حاوية Kubernetes تخزينًا مؤقتًا ، بشكل افتراضي. وهذا يعني أن إعادة تشغيل الجراب ستؤدي إلى مسح أي بيانات على هذه الحاويات، وبالتالي، فإن هذا الشكل من التخزين محدود للغاية في أي شيء باستثناء التطبيقات التافهة. يوفر مجلد Kubernetes [61] تخزينًا دائمًا موجودًا طوال عمر الجراب نفسه. يمكن أيضًا استخدام هذا التخزين كمساحة قرص مشتركة للحاويات داخل الجراب. يتم تثبيت المجلدات في نقاط تثبيت محددة داخل الحاوية، والتي يتم تحديدها بواسطة تكوين الجراب، ولا يمكن تثبيتها على مجلدات أخرى أو الارتباط بمجلدات أخرى. يمكن تثبيت نفس المجلد في نقاط مختلفة في شجرة نظام الملفات بواسطة حاويات مختلفة.
خرائط التكوين والأسرار
من التحديات الشائعة في التطبيقات تحديد مكان تخزين وإدارة معلومات التكوين، والتي قد تحتوي بعضها على بيانات حساسة. يمكن أن تكون بيانات التكوين أي شيء دقيق مثل الخصائص الفردية، أو معلومات غير دقيقة مثل ملفات التكوين الكاملة مثل مستندات JSON أو XML . يوفر Kubernetes آليتين وثيقتي الصلة للتعامل مع هذه الحاجة، والمعروفة باسم ConfigMaps و Secrets ، وكلاهما يسمح بإجراء تغييرات على التكوين دون الحاجة إلى إعادة بناء التطبيق.
ستكون البيانات من ConfigMaps وSecrets متاحة لكل مثيل فردي للتطبيق الذي تم ربط هذه الكائنات به عبر Deployment. يتم إرسال Secret و/أو ConfigMap إلى عقدة فقط إذا تطلب ذلك جراب على تلك العقدة، والذي سيتم تخزينه فقط في الذاكرة على العقدة. بمجرد حذف الجراب الذي يعتمد على Secret أو ConfigMap، يتم أيضًا حذف النسخة الموجودة في الذاكرة لجميع Secrets وConfigMaps المرتبطة.
يمكن الوصول إلى البيانات من ConfigMap أو Secret بواسطة الجراب من خلال إحدى الطرق التالية: [62]
- كمتغيرات بيئية ، والتي سيتم استهلاكها بواسطة kubelet من ConfigMap عند تشغيل الحاوية؛
- يتم تثبيته داخل وحدة تخزين يمكن الوصول إليها داخل نظام ملفات الحاوية، والذي يدعم إعادة التحميل التلقائي دون إعادة تشغيل الحاوية.
الفرق الأكبر بين Secret وConfigMap هو أن Secrets مصممة خصيصًا لاحتواء بيانات آمنة وسرية، على الرغم من أنها غير مشفرة بشكل افتراضي، وتتطلب إعدادًا إضافيًا من أجل تأمين استخدام Secrets بالكامل داخل المجموعة. [63] غالبًا ما تُستخدم Secrets لتخزين البيانات السرية أو الحساسة مثل الشهادات وبيانات الاعتماد للعمل مع سجلات الصور وكلمات المرور ومفاتيح SSH .
العلامات والمحددات
يتيح Kubernetes للعملاء (المستخدمين أو المكونات الداخلية) إرفاق مفاتيح تسمى العلامات بأي كائن API في النظام، مثل الأوعية والعقد. وفقًا لذلك، فإن محددات العلامات هي استعلامات ضد العلامات التي يتم حلها إلى كائنات مطابقة. [31] عندما يتم تعريف خدمة، يمكن للمرء تحديد محددات العلامات التي سيستخدمها موجه الخدمة/موازن التحميل لتحديد مثيلات الأوعية التي سيتم توجيه حركة المرور إليها. وبالتالي، يمكن استخدام تغيير تسميات الأوعية أو تغيير محددات العلامات في الخدمة للتحكم في الأوعية التي تحصل على حركة المرور والتي لا تحصل عليها، والتي يمكن استخدامها لدعم أنماط النشر المختلفة مثل عمليات النشر باللون الأزرق والأخضر أو اختبار A/B . توفر هذه القدرة على التحكم ديناميكيًا في كيفية استخدام الخدمات لموارد التنفيذ اقترانًا فضفاضًا داخل البنية التحتية.
على سبيل المثال، إذا كانت وحدات التطبيق تحتوي على تسميات لنظام tier(مع قيم مثل frontend، backend، على سبيل المثال) و release_track(مع قيم مثل canary، production، على سبيل المثال)، فيمكن لعملية على كل عقد backendو canaryاستخدام محدد تسمية، مثل: [42]
tier=backend AND release_track=canary
تمامًا مثل العلامات، تتيح لك محددات الحقول أيضًا تحديد موارد Kubernetes. وعلى عكس العلامات، يعتمد التحديد على قيم السمات المتأصلة في المورد الذي يتم تحديده، وليس التصنيف الذي يحدده المستخدم. metadata.nameوهما metadata.namespaceمحددان للحقول سيكونان موجودين في جميع كائنات Kubernetes. تعتمد المحددات الأخرى التي يمكن استخدامها على نوع الكائن/المورد.
الإضافات
الإضافات هي ميزات إضافية لمجموعة Kubernetes يتم تنفيذها كتطبيقات تعمل داخلها. يمكن إدارة الحاويات بواسطة عمليات النشر ووحدات التحكم في التكرار وما إلى ذلك. هناك العديد من الإضافات. ومن بين أهمها:
- نظام اسم النطاق
- Cluster DNS هو خادم DNS، بالإضافة إلى خوادم DNS الأخرى في البيئة، والذي يخدم سجلات DNS لخدمات Kubernetes. تقوم الحاويات التي يتم تشغيلها بواسطة Kubernetes تلقائيًا بتضمين خادم DNS هذا في عمليات البحث الخاصة بـ DNS.
- واجهة المستخدم على الويب
- هذه واجهة مستخدم عامة الغرض، قائمة على الويب، لمجموعات Kubernetes. وهي تسمح للمسؤولين بإدارة التطبيقات التي تعمل في المجموعة واستكشاف أخطائها وإصلاحها، فضلاً عن المجموعة نفسها.
- مراقبة الموارد
- يسجل مراقبة موارد الحاويات المقاييس المتعلقة بالحاويات في قاعدة بيانات مركزية، ويوفر واجهة مستخدم لاستعراض تلك البيانات.
- مراقبة التكاليف
- تسمح تطبيقات مراقبة تكاليف Kubernetes بتقسيم التكاليف حسب الأوعية والعقد ومساحات الأسماء والعلامات.
- التسجيل على مستوى المجموعة
- لمنع فقدان بيانات الحدث في حالة فشل العقدة أو البود، يمكن حفظ سجلات الحاوية في مخزن سجلات مركزي مع واجهة بحث/تصفح. لا يوفر Kubernetes تخزينًا أصليًا لبيانات السجل، ولكن يمكن للمرء دمج العديد من حلول التسجيل الموجودة في مجموعة Kubernetes.
تخزين
ظهرت الحاويات كوسيلة لجعل البرامج قابلة للنقل. تحتوي الحاوية على جميع الحزم اللازمة لتشغيل الخدمة. يجعل نظام الملفات المقدم الحاويات قابلة للنقل بشكل كبير وسهلة الاستخدام في التطوير. يمكن نقل الحاوية من التطوير إلى الاختبار أو الإنتاج بدون أي تغييرات في التكوين أو تغييرات قليلة نسبيًا.
تاريخيًا، كان Kubernetes مناسبًا فقط للخدمات عديمة الجنسية. ومع ذلك، تحتوي العديد من التطبيقات على قاعدة بيانات، وهو ما يتطلب استمرارية، مما يؤدي إلى إنشاء تخزين دائم لـ Kubernetes. يعد تنفيذ التخزين الدائم للحاويات أحد التحديات الرئيسية التي يواجهها مسؤولو Kubernetes وDevOps ومهندسو السحابة. قد تكون الحاويات مؤقتة، ولكن المزيد والمزيد من بياناتها ليست كذلك، لذلك يحتاج المرء إلى ضمان بقاء البيانات في حالة إنهاء الحاوية أو فشل الأجهزة. عند نشر الحاويات مع Kubernetes أو التطبيقات الحاوية، غالبًا ما تدرك المؤسسات أنها بحاجة إلى تخزين دائم. تحتاج إلى توفير تخزين سريع وموثوق به لقواعد البيانات والصور الجذرية والبيانات الأخرى التي تستخدمها الحاويات.
بالإضافة إلى المشهد، نشرت مؤسسة الحوسبة السحابية الأصلية (CNCF) معلومات أخرى حول التخزين الدائم في Kubernetes بما في ذلك مدونة تساعد في تحديد نمط التخزين المرفق بالحاوية. يمكن اعتبار هذا النمط نمطًا يستخدم Kubernetes نفسه كمكون لنظام التخزين أو الخدمة. [64]
يمكن العثور على مزيد من المعلومات حول الشعبية النسبية لهذه الأساليب وغيرها في مسح المناظر الطبيعية لـ CNCF أيضًا، والذي أظهر أن OpenEBS - منصة تخزين ثابتة ذات حالة من Datacore Software، [65] وRook - مشروع تنسيق التخزين - كانا المشروعين الأكثر احتمالية للتقييم اعتبارًا من خريف عام 2019. [66]
التخزين المرفق بالحاويات هو نوع من تخزين البيانات ظهر مع اكتساب Kubernetes شهرة. يعتمد نهج أو نمط التخزين المرفق بالحاويات على Kubernetes نفسه للحصول على قدرات معينة مع توفير الكتل والملفات والكائنات والواجهات بشكل أساسي لأحمال العمل التي تعمل على Kubernetes. [67]
تتضمن السمات المشتركة لتخزين الحاويات المرفقة استخدام ملحقات Kubernetes، مثل تعريفات الموارد المخصصة، واستخدام Kubernetes نفسه للوظائف التي قد يتم تطويرها ونشرها بشكل منفصل للتخزين أو إدارة البيانات. تتضمن أمثلة الوظائف التي توفرها تعريفات الموارد المخصصة أو Kubernetes نفسه منطق إعادة المحاولة، الذي توفره Kubernetes نفسها، وإنشاء وصيانة مخزون وسائط التخزين والمجلدات المتاحة، والتي يتم توفيرها عادةً عبر تعريف مورد مخصص. [68] [69]
واجهة تخزين الحاويات (CSI)
في إصدار Kubernetes 1.9، تم تقديم الإصدار الأولي Alpha لواجهة تخزين الحاويات (CSI). [70] في السابق، تم تضمين مكونات إضافية لحجم التخزين في توزيع Kubernetes. من خلال إنشاء واجهة تخزين الحاويات الموحدة، تم فصل الكود المطلوب للتفاعل مع أنظمة التخزين الخارجية عن قاعدة كود Kubernetes الأساسية. بعد عام واحد فقط، تم جعل ميزة CSI متاحة بشكل عام (GA) في Kubernetes. [71]
واجهة برمجة التطبيقات
أحد المكونات الرئيسية لمستوى التحكم في Kubernetes هو خادم API، والذي يعرض واجهة برمجة تطبيقات HTTP التي يمكن استدعاؤها بواسطة أجزاء أخرى من المجموعة بالإضافة إلى المستخدمين النهائيين والمكونات الخارجية. هذه الواجهة هي واجهة برمجة تطبيقات REST وهي ذات طبيعة إعلانية، وهي نفس الواجهة المعروضة لمستوى التحكم. [72] يتم دعم خادم API بواسطة etcd لتخزين جميع السجلات بشكل مستمر. [73]
كائنات API
في Kubernetes، تعمل جميع الكائنات كـ " سجل للنية " لحالة المجموعة، وتكون قادرة على تحديد الحالة المرغوبة التي يرغب كاتب الكائن في أن تكون المجموعة فيها. [74] وعلى هذا النحو، فإن معظم كائنات Kubernetes لها نفس مجموعة الحقول المتداخلة، على النحو التالي:
spec:يصف الحالة المطلوبة للمورد، والتي يمكن التحكم فيها بواسطة المستخدمين النهائيين أو وحدات التحكم الأخرى ذات المستوى الأعلى؛status:يصف الحالة الحالية للمورد، والتي يتم تحديثها بشكل نشط بواسطة وحدة التحكم في المورد.
تخضع جميع الكائنات في Kubernetes لنفس اتفاقيات واجهة برمجة التطبيقات. بعض هذه الاتفاقيات تشمل:
- يجب أن يكون لديك البيانات الوصفية التالية ضمن حقل الكائن المتداخل
metadata: [75]namespace: علامة يتم تقسيم الكائنات إليها؛name:سلسلة تحدد بشكل فريد الكائن داخل مساحة الأسماء المحددة؛uid: سلسلة فريدة قادرة على التمييز بين الكائنات التي تحمل نفس الاسم عبر المكان والزمان (حتى عبر الحذف وإعادة الإنشاء بنفس الاسم).
- يمكن إدارتها بواسطة وحدة تحكم أخرى، والتي يتم تعريفها في الحقل
metadata.ownerReferences: [76]- يجب ألا يقل عدد الكائنات الأخرى عن كائن واحد، وهو المتحكم الإداري في كائن المتحكم فيه، والذي يتم تعريفه بواسطة الحقل
controller.
- يجب ألا يقل عدد الكائنات الأخرى عن كائن واحد، وهو المتحكم الإداري في كائن المتحكم فيه، والذي يتم تعريفه بواسطة الحقل
- قد يتم جمع القمامة إذا تم حذف المالك: [77]
- عند حذف كائن، قد يتم أيضًا حذف جميع الكائنات التابعة له بطريقة متتالية.
الموارد المخصصة ووحدات التحكم والمشغلات
يمكن توسيع واجهة برمجة تطبيقات Kubernetes باستخدام الموارد المخصصة ، والتي تمثل الكائنات التي ليست جزءًا من تثبيت Kubernetes القياسي. يتم إعلان هذه الموارد المخصصة باستخدام تعريفات الموارد المخصصة (CRDs)، وهو نوع من الموارد التي يمكن تسجيلها وإلغاء تسجيلها ديناميكيًا دون إيقاف تشغيل أو إعادة تشغيل مجموعة قيد التشغيل حاليًا. [78]
تُعد وحدات التحكم المخصصة آلية توسعة أخرى تتفاعل مع واجهة برمجة تطبيقات Kubernetes، على غرار وحدات التحكم الافتراضية في مدير وحدات التحكم Kubernetes القياسي المثبت مسبقًا. قد تتفاعل وحدات التحكم هذه مع الموارد المخصصة للسماح بواجهة برمجة تطبيقات إعلانية: قد يعلن المستخدمون الحالة المطلوبة للنظام عبر الموارد المخصصة، وتقع على عاتق وحدة التحكم المخصصة مسؤولية ملاحظة التغيير وتوفيقه.
غالبًا ما يُشار إلى مجموعة الموارد المخصصة ووحدات التحكم المخصصة باسم مشغل Kubernetes . تتمثل حالة الاستخدام الرئيسية للمشغلين في التقاط هدف المشغل البشري الذي يدير خدمة أو مجموعة من الخدمات وتنفيذها باستخدام الأتمتة، ومع واجهة برمجة تطبيقات إعلانية تدعم هذه الأتمتة. يتمتع المشغلون البشريون الذين يعتنون بتطبيقات وخدمات محددة بمعرفة عميقة بكيفية تصرف النظام وكيفية نشره وكيفية التصرف في حالة وجود مشاكل.
تتضمن أمثلة المشكلات التي يحلها المشغلون أخذ نسخ احتياطية لحالة التطبيق واستعادتها، والتعامل مع ترقيات كود التطبيق جنبًا إلى جنب مع التغييرات ذات الصلة مثل مخططات قاعدة البيانات أو إعدادات التكوين الإضافية. تتبع العديد من المشاريع البارزة في إطار برنامج حضانة Cloud Native Computing Foundation نمط المشغل لتوسيع Kubernetes، بما في ذلك Argo وOpen Policy Agent وIstio. [79]
أمان واجهة برمجة التطبيقات
يحدد Kubernetes الاستراتيجيات التالية للتحكم في الوصول إلى واجهة برمجة التطبيقات الخاصة به. [80]
أمن النقل
يستمع خادم API الخاص بـ Kubernetes على منفذ TCP الذي يخدم حركة مرور HTTPS ، من أجل فرض أمان طبقة النقل (TLS) باستخدام شهادات CA. [ 33]
في الإصدارات الأقدم من Kubernetes، كان خادم واجهة برمجة التطبيقات يدعم الاستماع على كل من منفذي HTTP وHTTPS (مع عدم وجود أي أمان نقل لرقم منفذ HTTP على الإطلاق). تم إيقاف هذا في الإصدار 1.10 وفي النهاية تم إسقاط الدعم في الإصدار 1.20 من Kubernetes. [81]
المصادقة
من المتوقع أن يتم مصادقة جميع الطلبات المقدمة إلى خادم API الخاص بـ Kubernetes، ويدعم العديد من استراتيجيات المصادقة، والتي يتم سرد بعضها أدناه: [82]
- شهادات العميل X.509
- رموز حاملها
- رموز حساب الخدمة، المخصصة للوصول إلى واجهة برمجة التطبيقات البرمجية
من المتوقع عادةً أن يقوم المستخدمون بالإشارة إلى تفاصيل عنوان URL للمجموعة وتحديدها جنبًا إلى جنب مع بيانات الاعتماد اللازمة في ملف kubeconfig ، والتي تدعمها أدوات Kubernetes الأخرى مثل kubectl ومكتبات عملاء Kubernetes الرسمية. [83]
التفويض
تدعم واجهة برمجة تطبيقات Kubernetes أوضاع الترخيص التالية: [84]
- وضع تفويض العقدة : يمنح قائمة ثابتة من عمليات طلبات واجهة برمجة التطبيقات التي يُسمح لـ kubelets بأدائها، من أجل العمل بشكل صحيح.
- وضع التحكم في الوصول المستند إلى السمات (ABAC) : يمنح حقوق الوصول للمستخدمين من خلال استخدام سياسات التحكم في الوصول المحددة التي تجمع السمات معًا.
- وضع التحكم في الوصول المستند إلى الأدوار (RBAC) : يمنح حقوق الوصول للمستخدمين استنادًا إلى الأدوار الممنوحة للمستخدم، حيث يحدد كل دور قائمة بالإجراءات المسموح بها.
- وضع Webhook : يستفسر عن خدمة REST API لتحديد ما إذا كان المستخدم مخولاً لأداء إجراء معين. [33]
عملاء واجهة برمجة التطبيقات
يدعم Kubernetes العديد من عملاء API الرسميين:
- kubectl: سطر أوامر للتفاعل مع مستوى التحكم في Kubernetes [85]
- مكتبات العملاء الرسمية التي تديرها Kubernetes للغات C و .NET و Go و Haskell و Java و JavaScript و Perl و Python و Ruby [86]
مجموعة API
تم استخدام نفس مبادئ تصميم واجهة برمجة التطبيقات لتحديد واجهة برمجة تطبيقات لتسخير برنامج من أجل إنشاء مجموعات Kubernetes وتكوينها وإدارتها. وهذا ما يسمى واجهة برمجة تطبيقات المجموعة. [87] المفهوم الرئيسي المتجسد في واجهة برمجة التطبيقات هو استخدام البنية الأساسية كبرنامج ، أو فكرة أن البنية الأساسية لمجموعة Kubernetes هي في حد ذاتها مورد / كائن يمكن إدارته تمامًا مثل أي موارد Kubernetes أخرى. وبالمثل، يتم التعامل مع الأجهزة التي تشكل المجموعة أيضًا كمورد Kubernetes. تحتوي واجهة برمجة التطبيقات على جزأين - واجهة برمجة التطبيقات الأساسية وتنفيذ المزود. يتكون تنفيذ المزود من وظائف محددة لمزود السحابة تتيح لـ Kubernetes توفير واجهة برمجة تطبيقات المجموعة بطريقة متكاملة جيدًا مع خدمات وموارد مزود السحابة. [33]
الاستخدامات
يتم استخدام Kubernetes بشكل شائع كطريقة لاستضافة تنفيذ قائم على الخدمات المصغرة ، لأنه والنظام البيئي المرتبط به من الأدوات يوفران جميع الإمكانات اللازمة لمعالجة المخاوف الرئيسية لأي بنية خدمات مصغرة .
التوزيعات
تقدم العديد من البائعين منصات أو بنية تحتية تعتمد على Kubernetes كخدمة (IaaS) تنشر Kubernetes. [88] [89]
يتم تصنيف هذه التوزيعات عادةً وفقًا للتوزيعات مفتوحة المصدر أو التجارية أو المُدارة. فيما يلي قائمة بالعديد من التوزيعات البارزة: [90]
توزيعات مفتوحة المصدر
- أمازون EKS-D
- ك0س
- ك3س
- محرك SUSE Rancher Kubernetes (RKE)
- OKD.IO التوزيع المجتمعي لـ Kubernetes الذي يدعم Red Hat OpenShift
التوزيعات التجارية
- منصة D2iQ Kubernetes
- محرك Mirantis Kubernetes (المعروف سابقًا باسم Docker Enterprise)
- ريد هات أوبن شفت
- برنامج VMware Tanzu
التوزيعات المُدارة
- Alibaba Cloud ACK (خدمة الحاويات السحابية من Alibaba لـ Kubernetes)
- Amazon EKS (خدمة Kubernetes المرنة)
- Canonical MicroK8s وCharmed Kubernetes
- خدمة Kubernetes المُدارة من DigitalOcean
- Google GKE (محرك Google Kubernetes)
- محرك الحاويات السحابي Huawei CCE
- خدمات IBM Cloud Kubernetes
- Microsoft AKS (خدمات Azure Kubernetes)
- محرك Mirantis Kubernetes مع خدمات OpsCare Plus المُدارة
- محرك حاوية Oracle لـ Kubernetes
- منصة 9 لإدارة Kubernetes
- أنظمة ويند ريفر استوديو ويند ريفر
الجدول الزمني للإصدار
| إصدار | تاريخ الافراج عنه | تاريخ نهاية الحياة [91] | ملحوظات |
|---|---|---|---|
| 1.0 | 10 يوليو 2015 | الإصدار الأصلي | |
| 1.1 | 9 نوفمبر 2015 | [92] | |
| 1.2 | 16 مارس 2016 | 23 أكتوبر 2016 | [93] |
| 1.3 | 1 يوليو 2016 | 1 نوفمبر 2016 | [94] |
| 1.4 | 26 سبتمبر 2016 | 21 أبريل 2017 | [95] |
| 1.5 | 12 ديسمبر 2016 | 1 أكتوبر 2017 | [96] |
| 1.6 | 28 مارس 2017 | 23 نوفمبر 2017 | [97] |
| 1.7 | 30 يونيو 2017 | 4 أبريل 2018 | [98] |
| 1.8 | 28 أغسطس 2017 | 12 يوليو 2018 | [99] |
| 1.9 | 15 ديسمبر 2017 | 29 سبتمبر 2018 | [100] |
| 1.10 | 28 مارس 2018 | 13 فبراير 2019 | [101] |
| 1.11 | 3 يوليو 2018 | 1 مايو 2019 | [102] |
| 1.12 | 27 سبتمبر 2018 | 8 يوليو 2019 | [103] |
| 1.13 | 3 ديسمبر 2018 | 15 أكتوبر 2019 | [104] |
| 1.14 | 25 مارس 2019 | 11 ديسمبر 2019 | [105] |
| 1.15 | 20 يونيو 2019 | 6 مايو 2020 | [106] |
| 1.16 | 22 أكتوبر 2019 | 2 سبتمبر 2020 | [107] |
| 1.17 | 9 ديسمبر 2019 | 13 يناير 2021 | [108] |
| 1.18 | 25 مارس 2020 | 18 يونيو 2021 | [109] |
| 1.19 | 26 أغسطس 2020 [110] | 28 أكتوبر 2021 | بدءًا من إصدار Kubernetes 1.19، تم تمديد فترة الدعم إلى عام واحد من الدعم الكامل بالإضافة إلى شهرين من فترة وضع الصيانة. [28] [111] |
| 1.20 | 8 ديسمبر 2020 | 28 فبراير 2022 | [112] |
| 1.21 | 8 أبريل 2021 | 28 يونيو 2022 | [113] |
| 1.22 | 4 أغسطس 2021 | 28 أكتوبر 2022 | [114] |
| 1.23 | 7 ديسمبر 2021 | 28 فبراير 2023 | [115] |
| 1.24 | 3 مايو 2022 | 28 يوليو 2023 | [116] |
| 1.25 | 23 أغسطس 2022 | 27 أكتوبر 2023 | [117] |
| 1.26 | 9 ديسمبر 2022 | 24 فبراير 2024 | [118] |
| 1.27 | 11 أبريل 2023 | 28 يونيو 2024 | [119] |
| 1.28 | 15 أغسطس 2023 | 28 أكتوبر 2024 | [120] |
| 1.29 | 13 ديسمبر 2023 | 28 فبراير 2025 | [121] |
| 1.30 | 17 أبريل 2024 | 28 يونيو 2025 | [122] |
| 1.31 | 13 أغسطس 2024 | 28 أكتوبر 2025 | [123] |
أسطورة: النسخة القديمة، لم يتم صيانتها النسخة القديمة لا تزال محفوظة أحدث إصدار أحدث نسخة معاينة الإصدار المستقبلي | |||
دعم النوافذ
يوضح الرسم البياني أدناه الفترة التي تم فيها دعم كل إصدار [91]

انظر أيضا
مراجع
- ^ “الإصدار 0.2”. جيثب.كوم . 09/09/2014.
- ^ "الإصدار 1.31.1". 12 سبتمبر 2024. تم الاسترجاع 22 سبتمبر 2024 .
- ^ "مستودع Kubernetes على GitHub". GitHub . 22 يناير 2021.
- ^ "kubernetes/kubernetes". GitHub . مؤرشف من الأصل في 2017-04-21 . تم الاسترجاع في 2017-03-28 .
- ^ ab "ما هو Kubernetes؟". Kubernetes . تم الاسترجاع في 2017-03-31 .
- ^ "نظرة عامة على Kubernetes". Kubernetes . مؤرشف من الأصل في 2023-01-08 . تم الاسترجاع 2022-01-04 .
- ^ "أوقات تشغيل الحاويات". Kubernetes . تم الاسترجاع في 2021-11-14 .
- ^ "حلول سحابية جاهزة". وثائق Kubernetes . تم الاسترجاع في 25 يوليو 2023 .
- ^ "الاستطلاع السنوي لـ CNCF لعام 2022". CNCF . 31 يناير 2023.
- ^ ab Metz, Cade. "Google Open Sources Its Secret Weapon in Cloud Computing". Wired . مؤرشف من الأصل في 10 سبتمبر 2015 . تم الاسترجاع في 24 سبتمبر 2015 .
- ^ ميتز، كيد. "جوجل جعلت مخططها السري متاحًا للعامة لتعزيز السحابة الخاصة بها". Wired . مؤرشف من الأصل في 2016-07-01 . تم الاسترجاع في 2016-06-27 .
- ^ بيرنز، بريندان (20 يوليو 2018)، تاريخ Kubernetes والمجتمع الذي يقف وراءه، مؤرشف من الأصل في 2022-02-27
- ^ Kubernetes: الفيلم الوثائقي [الجزء الأول] ، تم الاسترجاع في 2023-12-14
- ^ "https://twitter.com/kelseyhightower/status/1527333243845873664". X (سابقًا Twitter) . تم الاسترجاع في 2023-12-14 .
{{cite web}}: رابط خارجي في( المساعدة )|title= - ^ abhishek Verma; Luis Pedrosa; Madhukar R. Korupolu; David Oppenheimer; Eric Tune; John Wilkes (April 21–24, 2015). "إدارة المجموعات واسعة النطاق في Google مع Borg". وقائع المؤتمر الأوروبي لأنظمة الكمبيوتر (EuroSys) . مؤرشف من الأصل في 2017-07-27.
- ^ "Borg, Omega, and Kubernetes - ACM Queue". queue.acm.org . مؤرشف من الأصل في 2016-07-09 . تم الاسترجاع في 2016-06-27 .
- ^ "شركة ناشئة في مرحلة مبكرة تدعى Heptio تهدف إلى جعل Kubernetes صديقة" . تم الاسترجاع في 2016-12-06 .
- ^ "مع وصول Kubernetes إلى الإصدار 1.0، تتبرع Google بالتكنولوجيا لمؤسسة الحوسبة السحابية الأصلية التي تم تشكيلها حديثًا". TechCrunch . 21 يوليو 2015. مؤرشف من الأصل في 23 سبتمبر 2015. تم الاسترجاع في 24 سبتمبر 2015 .
- ^ "Cloud Native Computing Foundation". مؤرشف من الأصل في 2017-07-03.
- ^ "Red Hat وGoogle تتعاونان على Kubernetes لإدارة حاويات Docker على نطاق واسع". 2014-07-10 . تم الاسترجاع في 2022-08-06 .
- ^ "VMware وPivotal تطلقان خدمة Pivotal Container Service (PKS) وتتعاونان مع Google Cloud لجلب Kubernetes إلى عملاء المؤسسات". 2017-08-29 . تم الاسترجاع في 2022-08-06 .
- ^ Lardinois, Frederic (2017-09-06). "Mesosphere تضيف دعم Kubernetes إلى نظام تشغيل مركز البيانات الخاص بها" . تم الاسترجاع في 2022-08-06 .
- ^ "Docker تعلن عن تحسينات لمنصة Docker لتبسيط وتطوير إدارة Kubernetes لتكنولوجيا المعلومات المؤسسية". 2017-10-17. مؤرشف من الأصل في 2020-09-26.
- ^ مونروي، جابي (2017-10-24). "تقديم تحسينات AKS (Kubernetes المُدارة) وAzure Container Registry" . تم الاسترجاع في 2022-08-06 .
- ^ "تقديم خدمة Amazon Elastic Container لـ Kubernetes (معاينة)". 2017-11-29 . تم الاسترجاع 2022-08-06 .
- ^ كونواي، سارة (6 مارس 2018). "Kubernetes هو أول مشروع CNCF يتخرج". مؤسسة الحوسبة السحابية الأصلية . مؤرشف من الأصل في 29 أكتوبر 2018. تم الاسترجاع في 3 ديسمبر 2018. بالمقارنة مع 1.5 مليون مشروع على GitHub ،
فإن Kubernetes هو رقم 9 من حيث الالتزامات ورقم 2 من حيث المؤلفين/القضايا، في المرتبة الثانية بعد Linux.
- ^ "سياسة دعم إصدار Kubernetes وانحراف الإصدار". Kubernetes . تم الاسترجاع في 2020-03-03 .
- ^ "إعلان إصدار Kubernetes 1.19 > زيادة فترة دعم Kubernetes إلى عام واحد". Kubernetes . 26 أغسطس 2020 . تم الاسترجاع في 2020-08-28 .
- ^ شارما، بريانكا (13 أبريل 2017). "التوسع التلقائي استنادًا إلى وحدة المعالجة المركزية/الذاكرة في Kubernetes—الجزء الثاني". مدونة Powerupcloud Tech . Medium. مؤرشف من الأصل في 17 أكتوبر 2019. تم الاسترجاع في 27 ديسمبر 2018 .
- ^ "تكوين التوسع التلقائي في Kubernetes باستخدام مقاييس مخصصة". Bitnami . BitRock. 15 نوفمبر 2018. مؤرشف من الأصل في 27 مارس 2019 . تم الاسترجاع 27 ديسمبر 2018 .
- ^ abcdefgh "مقدمة إلى Kubernetes". DigitalOcean . مؤرشف من الأصل في 1 أكتوبر 2015 . تم الاسترجاع في 24 سبتمبر 2015 .
- ^ abc "بنية Kubernetes التحتية". وثائق مجتمع OpenShift . OpenShift. مؤرشف من الأصل في 6 يوليو 2015. تم الاسترجاع في 24 سبتمبر 2015 .
- ^ "دليل تقوية Kubernetes" (PDF) . وزارة الدفاع الأمريكية . تم الاسترجاع في 26 يناير 2024 .
- ^ حاوية Linux بواسطة CoreOS: البنية الأساسية للمجموعة
- ^ ab Marhubi, Kamal (2015-09-26). "Kubernetes from the ground up: API server". kamalmarhubi.com. مؤرشف من الأصل في 2015-10-29 . تم الاسترجاع في 2015-11-02 .
- ^ Ellingwood, Justin (2 May 2018). "مقدمة إلى Kubernetes". DigitalOcean . مؤرشف من الأصل في 5 يوليو 2018 . تم الاسترجاع 20 يوليو 2018 .
أحد أهم الخدمات الأساسية هو خادم واجهة برمجة التطبيقات. هذه هي نقطة الإدارة الرئيسية للمجموعة بأكملها لأنها تسمح للمستخدم بتكوين أحمال عمل Kubernetes والوحدات التنظيمية. وهي مسؤولة أيضًا عن التأكد من أن مخزن etcd وتفاصيل الخدمة للحاويات المنشورة متفقان. تعمل كجسر بين المكونات المختلفة للحفاظ على صحة المجموعة ونشر المعلومات والأوامر.
- ^ ab "Deployments". Kubernetes . تم الاسترجاع في 2022-02-27 .
- ^ "الركائز الثلاث لتنسيق حاويات Kubernetes - Rancher Labs". rancher.com . 18 مايو 2017. مؤرشف من الأصل في 24 يونيو 2017 . تم الاسترجاع 22 مايو 2017 .
- ^ "إطار عمل الجدولة". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "نظرة عامة على وحدة التحكم في التكرار". توثيق . CoreOS . مؤرشف من الأصل في 2015-09-22 . تم الاسترجاع في 2015-11-02 .
- ^ ساندرز، جيك (2015-10-02). "Kubernetes: ميزات تجريبية مثيرة". Livewyer . مؤرشف من الأصل في 2015-10-20 . تم الاسترجاع في 2015-11-02 .
- ^ "مقدمة: تدريب Docker وKubernetes - اليوم الثاني". Red Hat . 2015-10-20. مؤرشف من الأصل في 2015-10-29 . تم الاسترجاع في 2015-11-02 .
- ^ Marhubi, Kamal (2015-08-27). "ما هو [..] Kubelet؟". kamalmarhubi.com. مؤرشف من الأصل في 2015-11-13 . تم الاسترجاع 2015-11-02 .
- ^ "Kubernetes Security | Issues and Best Practices | Snyk". snyk.io . 26 يوليو 2020 . تم الاسترجاع في 2021-05-16 .
- ^ "مقدمة عن واجهة وقت تشغيل الحاوية (CRI) في Kubernetes". Kubernetes . 2016-12-19 . تم الاسترجاع في 2021-05-16 .
- ^ "واجهة وقت تشغيل الحاوية (CRI)". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "Kubernetes v1.12: تقديم RuntimeClass". kubernetes.io . 10 أكتوبر 2018.
- ^ "إلغاء Dockershim - مستودع Kubernetes على Github - PR 94624". Github.com .
- ^ "لا داعي للذعر: Kubernetes وDocker". مدونة Kubernetes . 2 ديسمبر 2020 . تم الاسترجاع في 2020-12-22 .
- ^ "kubernetes/community". GitHub . تم الاسترجاع في 2021-05-16 .
- ^ "تم التحديث: الأسئلة الشائعة حول إزالة Dockershim". مدونة Kubernetes . 17 فبراير 2022.
- ^ "rktnetes تجلب محرك الحاويات rkt إلى Kubernetes". kubernetes.io . 11 يوليو 2016.
- ^ "المساحات الاسمية". kubernetes.io .
- ^ "Pods". kubernetes.io .
- ^ أب لانجيماك ، جون (11/02/2015). “Kubernetes 101 – الشبكات”. داس بلينكن ليشتن . مؤرشف من الأصل بتاريخ 25-10-2015 . تم الاسترجاع 2015/11/02 .
- ^ ab "ReplicaSet". kubernetes.io . تم الاسترجاع في 2020-03-03 .
- ^ "StatefulSets". kubernetes.io .
- ^ "DaemonSet". kubernetes.io .
- ^ "الخدمة". kubernetes.io .
- ^ لانجماك ، جون (15/02/2015). “Kubernetes 101 – الوصول الخارجي إلى المجموعة”. داس بلينكن ليشتن . مؤرشفة من الأصلي بتاريخ 26-10-2015 . تم الاسترجاع 2015/11/02 .
- ^ "المجلدات". kubernetes.io .
- ^ "ConfigMaps". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "الأسرار". Kubernetes . تم الاسترجاع في 2023-07-23 .
- ^ "التخزين المرفق بالحاويات: مقدمة". مؤسسة الحوسبة السحابية الأصلية . 2018-04-19 . تم الاسترجاع في 2021-05-16 .
- ^ "استحوذت Dataore على المطور الأصلي لـ OpenEBS من MayaData". datacore.com . 18 نوفمبر 2021.
- ^ "CNCF SURVEY 2019" (PDF) . cncf.io .
- ^ "التخزين المرفق بالحاويات: مقدمة". مؤسسة الحوسبة السحابية الأصلية . 2018-04-19 . تم الاسترجاع في 2020-10-09 .
- ^ "التخزين المرفق بالحاويات | SNIA". www.snia.org . تم الاسترجاع في 2020-10-09 .
- ^ "قائمة التحقق للتطبيقات السحابية الأصلية: التخزين السحابي الأصلي". www.replex.io . تم الاسترجاع في 2020-10-09 .
- ^ "مقدمة واجهة تخزين الحاويات (CSI) Alpha لـ Kubernetes". kubernetes.io . 10 يناير 2018.
- ^ "واجهة تخزين الحاويات (CSI) لـ Kubernetes GA". kubernetes.io . 15 يناير 2019.
- ^ Marinescu, Dan C. (2018-01-01), Marinescu, Dan C. (ed.)، “الفصل 8 – الأجهزة والبرامج السحابية”، الحوسبة السحابية (الإصدار الثاني) ، مورجان كوفمان، الصفحات من 281 إلى 319، دوى :10.1016/b978-0-12-812810-7.00011-x، ISBN 978-0-12-812810-7تم الاسترجاع بتاريخ 2023-11-08
- ^ "تشغيل مجموعات etcd لـ Kubernetes". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "الكائنات في Kubernetes". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "اتفاقيات واجهة برمجة التطبيقات". GitHub . Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "المالكون والمعتمدون". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "جمع القمامة". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "الموارد المخصصة". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "Cloud Native Landscape". Cloud Native Computing Foundation . تم الاسترجاع في 24 يوليو 2023 .
- ^ "التحكم في الوصول إلى واجهة برمجة تطبيقات Kubernetes". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "إزالة منفذ apiserver غير الآمن · المشكلة رقم 91506 · kubernetes/kubernetes". GitHub .
- ^ "التفويض". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "تنظيم الوصول إلى المجموعة باستخدام ملفات kubeconfig". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "نظرة عامة على التفويض". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "أداة سطر الأوامر (kubectl)". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "مكتبات العميل". وثائق Kubernetes . تم الاسترجاع في 24 يوليو 2023 .
- ^ "مقدمة - كتاب API Cluster". cluster-api.sigs.k8s.io .
- ^ "أكثر 7 توزيعات Kubernetes شيوعًا" . تم الاسترجاع في 2021-12-28 .
- ^ MSV, Janakiram. "لماذا يحتاج نظام Kubernetes Developer Ecosystem إلى PaaS". Forbes . تم الاسترجاع في 2021-05-16 .
- ^ "5 اتجاهات سحابية أصلية يجب الانتباه لها في عام 2022". The New Stack . 2022-01-03 . تم الاسترجاع في 2022-02-03 .
- ^ "إصدارات تصحيح Kubernetes". GitHub . 4 مايو 2022 . تم الاسترجاع في 2022-05-09 .
- ^ "ترقيات أداء Kubernetes 1.1، وأدوات محسّنة ومجتمع متنامٍ". kubernetes.io . 9 نوفمبر 2015.
- ^ "Kubernetes 1.2: المزيد من ترقيات الأداء، بالإضافة إلى نشر وإدارة التطبيقات بشكل أسهل". kubernetes.io . 17 مارس 2016.
- ^ "Kubernetes 1.3: ربط أحمال العمل السحابية الأصلية والمؤسسية". kubernetes.io . 6 يوليو 2016.
- ^ "Kubernetes 1.4: تسهيل التشغيل على Kubernetes في أي مكان". kubernetes.io . 26 سبتمبر 2016.
- ^ "Kubernetes 1.5: دعم أحمال العمل الإنتاجية". kubernetes.io . 13 ديسمبر 2016.
- ^ "Kubernetes 1.6: متعدد المستخدمين، متعدد أحمال العمل على نطاق واسع". kubernetes.io . 28 مارس 2017.
- ^ "Kubernetes 1.7: تعزيز الأمان وتحديثات التطبيقات ذات الحالة وقابلية التوسع". kubernetes.io . 30 يونيو 2017.
- ^ "Kubernetes 1.8: الأمان وأحمال العمل وعمق الميزات". kubernetes.io . 29 سبتمبر 2017.
- ^ "Kubernetes 1.9: Apps Workloads GA and Expanded Ecosystem". kubernetes.io . 15 ديسمبر 2017.
- ^ "Kubernetes 1.10: استقرار التخزين والأمان والشبكات". kubernetes.io . 26 مارس 2018.
- ^ "Kubernetes 1.11: موازنة التحميل داخل المجموعة ومكون CoreDNS الإضافي ينتقلان إلى التوفر العام". kubernetes.io . 27 يونيو 2018.
- ^ "Kubernetes 1.12: Kubelet TLS Bootstrap وAzure Virtual Machine Scale Sets (VMSS) Move to General Availability". kubernetes.io . 27 سبتمبر 2018.
- ^ "Kubernetes 1.13: إدارة مبسطة للعناقيد باستخدام Kubeadm وواجهة تخزين الحاويات (CSI) وCoreDNS كـ DNS افتراضي متاحة الآن بشكل عام". kubernetes.io . 3 ديسمبر 2018.
- ^ "Kubernetes 1.14: دعم مستوى الإنتاج لعقد Windows وتحديثات Kubectl وPersistent Local Volumes GA". kubernetes.io . 25 مارس 2019.
- ^ "Kubernetes 1.15: قابلية التوسع والتحسين المستمر". kubernetes.io . 19 يونيو 2019.
- ^ "Kubernetes 1.16: الموارد المخصصة والمقاييس المعدلة وإضافات الحجم". kubernetes.io . 18 سبتمبر 2019.
- ^ "Kubernetes 1.17: الاستقرار". kubernetes.io . 9 ديسمبر 2019.
- ^ "Kubernetes 1.18: Fit & Finish". kubernetes.io . 25 مارس 2020.
- ^ "إعلان عن إصدار Kubernetes 1.19". Kubernetes . 26 أغسطس 2020 . تم الاسترجاع في 2020-08-28 .
- ^ "Kubernetes 1.19: Accentuate the Paw-sitive". Kubernetes . 2020-08-26 . تم الاسترجاع في 2024-01-13 .
- ^ "Kubernetes 1.20: الإصدار الأكثر روعة". kubernetes.io . 8 ديسمبر 2020.
- ^ "Kubernetes 1.21: قوة للمجتمع". kubernetes.io . 8 أبريل 2021.
- ^ "Kubernetes 1.22: الوصول إلى قمم جديدة". kubernetes.io . 4 أغسطس 2021.
- ^ "Kubernetes 1.23: The Next Frontier". kubernetes.io . 7 ديسمبر 2021.
- ^ “Kubernetes 1.24: مراقب النجوم”. kubernetes.io . 3 مايو 2022.
- ^ "Kubernetes v1.25: Combiner". kubernetes.io . 23 أغسطس (آب) 2022.
- ^ "Kubernetes v1.26: Electrifying". kubernetes.io . 9 ديسمبر 2022.
- ^ "Kubernetes v1.27: Chill Vibes". kubernetes.io . 11 أبريل 2023.
- ^ "Kubernetes v1.28: Planternetes". kubernetes.io . 15 أغسطس (آب) 2023.
- ^ "Kubernetes v1.29: Mandala". kubernetes.io . 13 ديسمبر 2023.
- ^ "Kubernetes v1.30: Uwubernetes". kubernetes.io . 17 أبريل 2024.
- ^ “Kubernetes v1.31: إيلي”. kubernetes.io . 13 أغسطس 2024.
روابط خارجية
- الموقع الرسمي
- Kubernetes على GitHub
