كوبيرنيتيس  كوبيرنيتيس (عادة تكتب k8s ) نظام تزامن حاويات مفتوح المصدر لأتمتة نشر التطبيقات، وتوسيع نطاقها وإدارتها. تم تصميمه في الأصل من قِبل جوجل، وتقوم الآن بإدارته مؤسسة Cloud Native Computing Foundation. يهدف إلى توفير «نظام أساسي لأتمتة نشر حاويات التطبيقات وتوسيع نطاقها وتشغيلها عبر مجموعات المضيفين». يعمل مع مجموعة من أدوات الحاوية، بما في ذلك Docker. العديد من الخدمات السحابية توفر منصة خدمية مبنية على كوبيرنيتيس أو بنية تحتية كخدمة والتي تمكن من نشر كوبيرنيتيس كمنصة توفير خدمة. كما يوفر العديد من البائعين أيضًا توزيعات كوبيرنيتيس الخاصة بهم.  تأسست كوبيرنيتيس (κυβερνήτης ، اليونانية لـ «حاكم»، " helmsman " أو «كابتن») على يد جو بيدا وبريندان بيرنز وكريج ماكلوكي، الذين انضموا بسرعة إلى المهندسين الآخرين في جوجل بما في ذلك بريان غرانت وتيم هوكين، وأعلن لأول مرة من قبل جوجل في منتصف عام 2014. يتأثر تطويره وتصميمه بشدة بنظام Borg من جوجل، والعديد من كبار المساهمين في المشروع الذين سبق لهم العمل في Borg. كان الاسم الأصلي لـ كوبيرنيتيس في جوجل هو Project Seven ، في إشارة إلى شخصية Star Trek Seven of Nine التي تعد Borg «صديقة». المتحدثون السبعة على عجلة شعار كوبيرنيتيس هم إشارة إلى هذا الاسم الرمزي. تمت كتابة مشروع Borg الأصلي بالكامل في C ++ ، لكن نظام كوبيرنيتيس المعاد كتابته تم تطبيقه في Go .  تم إصدار كوبيرنيتيس v1.0 في 21 يوليو 2015. إلى جانب إصدار كوبيرنيتيس v1.0، دخلت جوجل في شراكة مع Linux Foundation لتشكيل Cloud Native Computing Foundation (CNCF) وعرضت كوبيرنيتيس كتقنية أساسية. في 6 مارس، 2018، وصل كوبيرنيتيس Project إلى المركز التاسع في الدعاوى في جيثب، والمركز الثاني في المؤلفين وقضايا نواة لينكس.  يعرّف كوبيرنيتيس مجموعة من الكتل البرمجية الإنشائية («البدائية»)، والتي توفر مجتمعة الآليات التي تنشر وتحافظ على نطاق التطبيقات على أساس وحدة المعالجة المركزية والذاكرة أو المقاييس المخصصة. كوبيرنيتيس مقترن بشكل فضفاض وقابل للامتداد لتلبية أعباء العمل المختلفة. يتم توفير هذه القابلية للتوسعة في جزء كبير منها بواسطة كوبيرنيتيس API ، والذي يستخدم من قبل المكونات الداخلية وكذلك الامتدادات والحاويات التي تعمل على كوبيرنيتيس. يمارس النظام الأساسي سيطرته على موارد الحوسبة والتخزين عن طريق تحديد الموارد على أنها كائنات، والتي يمكن إدارتها على هذا النحو. الكائنات الرئيسية هي:  وحدة الجدولة الأساسية في كوبيرنيتيس هي "جراب" . ويضيف مستوى أعلى من التجريد من خلال تجميع المكونات في حاويات. يتكون الجراب من حاوية واحدة أو أكثر مضمونة أن تكون موجودة في الجهاز المضيف ويمكنها مشاركة الموارد.  يتم تعيين "عنوان Pod Pod" فريد لكل كتلة في كوبيرنيتيس داخل المجموعة، مما يسمح للتطبيقات باستخدام المنافذ دون التعرض لخطر التعارض. داخل الحاوية، يمكن لجميع الحاويات أن تشير إلى بعضها البعض على المضيف المحلي، ولكن الحاوية داخل الحافظة لا تملك أي وسيلة للتعامل مباشرة مع حاوية أخرى داخل حافظة أخرى؛ لذلك، يجب عليه استخدام عنوان IP Pod. يجب على مطور التطبيق ألا يستخدم عنوان بروتوكول الإنترنت (Pod IP) أبدًا للإشارة إلى / استدعاء قدرة في جراب آخر، لأن عناوين بروتوكول الإنترنت (بروتوكول الإنترنت) هي سريعة الزوال - قد يتم تعيين جراب معين يشيرون إليه إلى عنوان IP آخر لجهاز iPod عند إعادة التشغيل. بدلاً من ذلك، يجب عليهم استخدام إشارة إلى الخدمة، التي تحتوي على إشارة إلى جراب الهدف على عنوان IP Pod.  يمكن للقرنة تحديد وحدة تخزين، مثل دليل القرص المحلي أو قرص الشبكة، وتعريضها للحاويات الموجودة في الجراب. يمكن إدارة السنفات يدويًا من خلال كوبيرنيتيس API ، أو يمكن تفويض إدارتها إلى وحدة تحكم. تعد هذه المجلدات أيضًا أساسًا لميزات كوبيرنيتيس الخاصة بـ ConfigMaps (لتوفير الوصول إلى التكوين من خلال نظام الملفات المرئي للحاوية) والأسرار (لتوفير الوصول إلى بيانات الاعتماد اللازمة للوصول إلى الموارد البعيدة بشكل آمن، من خلال توفير بيانات الاعتماد هذه على نظام الملفات المرئي فقط إلى الحاويات المصرح بها).  خدمة كوبيرنيتيس هي مجموعة من القرون التي تعمل معًا، مثل طبقة واحدة من تطبيق متعدد المستويات. يتم تحديد مجموعة القرون التي تشكل خدمة بواسطة محدد التسمية. يوفر كوبيرنيتيس وضعين لاكتشاف الخدمة، باستخدام المتغيرات البيئية أو استخدام كوبيرنيتيس DNS. يعرّف اكتشاف الخدمة عنوان IP ثابتًا واسم DNS للخدمة، ويقوم بتحميل أرصدة الحركة بطريقة متقاربة إلى اتصالات الشبكة لعنوان IP هذا بين القرون التي تتطابق مع المحدد (حتى عندما تتسبب الأعطال في انتقال القرون من آلة إلى أخرى). بشكل افتراضي، يتم الكشف عن الخدمة داخل مجموعة (على سبيل المثال، قد يتم تجميع قرون النهاية الخلفية في خدمة، مع وجود طلبات من قرون الواجهة الأمامية متوازنة من بينها)، ولكن يمكن أيضًا كشف خدمة خارج كتلة (مثل للعملاء للوصول إلى القرون الواجهة الأمامية).  توفر أنظمة الملفات الموجودة في حاوية كوبيرنيتيس تخزينًا مؤقتًا بشكل افتراضي. هذا يعني أن إعادة تشغيل الحاوية ستؤدي إلى مسح أي بيانات على هذه الحاويات، وبالتالي فإن هذا النوع من التخزين يحد بشكل كبير من أي شيء باستثناء التطبيقات البسيطة. توفر وحدة تخزين كوبيرنيتيس تخزينًا ثابتًا طوال فترة تشغيل الجهاز نفسه. يمكن أيضًا استخدام وحدة التخزين هذه كمساحة مشتركة على القرص للحاويات الموجودة داخل الحافظة. يتم تثبيت وحدات التخزين في نقاط تحميل محددة داخل الحاوية، والتي يتم تعريفها من خلال تكوين pod ، ولا يمكن تركيبها على وحدات تخزين أخرى أو ارتباط بوحدات تخزين أخرى. يمكن تركيب نفس وحدة التخزين في نقاط مختلفة في شجرة نظام الملفات بواسطة حاويات مختلفة.  يوفر كوبيرنيتيس تقسيم الموارد التي يديرها إلى مجموعات غير متداخلة تسمى مساحات الأسماء. وهي مخصصة للاستخدام في البيئات التي ينتشر فيها العديد من المستخدمين عبر فرق أو مشاريع متعددة أو حتى تفصل بين البيئات مثل التطوير والاختبار والإنتاج.  يوفر كوبيرنيتيس بعض الآليات التي تسمح للمرء بإدارة كائناته أو تحديدها أو معالجتها.  يُمكّن كوبيرنيتيس العملاء (المستخدمين أو المكونات الداخلية) من إرفاق أزواج قيمة المفتاح تسمى «ملصقات» إلى أي كائن API في النظام، مثل القرون والعقد. في المقابل، «محددات التسمية» عبارة عن استعلامات مقابل التصنيفات التي تعمل على حل الكائنات المتطابقة. عندما يتم تعريف الخدمة، يمكن للمرء تحديد محددات الملصقات التي سيتم استخدامها من قبل جهاز توجيه / موازن التحميل لتحديد حالات pod التي سيتم توجيه حركة المرور إليها. وبالتالي، يمكن ببساطة تغيير بطاقات العنونة أو تغيير محددات الملصقات الموجودة على الخدمة للتحكم في أي من الرموز تحصل على حركة المرور وأيها لا يمكن استخدامها والتي يمكن استخدامها لدعم أنماط النشر المختلفة مثل عمليات النشر ذات اللون الأزرق والأخضر أو اختبار AB . توفر هذه القدرة على التحكم الديناميكي في كيفية استخدام الخدمات لموارد التنفيذ اقترانًا فضفاضًا داخل البنية التحتية.  على سبيل المثال، إذا كانت القرون الخاصة بالتطبيق تحتوي على تسميات codice_1 نظام (مع قيم مثل codice_2 codice_3 ، على سبيل المثال) و codice_4 (مع قيم مثل codice_5 codice_6 على سبيل المثال)، ثم عملية على الكل يمكن للعقد codice_3 codice_5 استخدام محدد التسمية، مثل: codice_9  تمامًا مثل التسميات، يتيح لك محددات الحقل أيضًا تحديد موارد كوبيرنيتيس. بخلاف التصنيفات، يعتمد التحديد على قيم السمة الملازمة للمورد الذي يتم تحديده، بدلاً من التصنيف الذي يحدده المستخدم. codice_10 و codice_11 هما محددات الحقول التي ستكون موجودة على جميع كائنات كوبيرنيتيس. تعتمد المحددات الأخرى التي يمكن استخدامها على نوع الكائن / المورد.  يتبع كوبيرنيتيس البنية الأساسية / النسخة المتماثلة. يمكن تقسيم مكونات كوبيرنيتيس إلى تلك التي تدير عقدة فردية وتلك التي تعد جزءًا من مستوى التحكم.  كوبيرنيتيس الأساسي هو وحدة التحكم الرئيسية في المجموعة، وإدارة عبء العمل وتوجيه الاتصالات عبر النظام. تتكون طائرة التحكم كوبيرنيتيس من مكونات مختلفة، كل عملية خاصة بها، يمكن تشغيلها على عقدة رئيسية واحدة أو على عدة انتخابات تمهيدية تدعم مجموعات توفر عالية. المكونات المختلفة لطائرة التحكم كوبيرنيتيس هي كما يلي:     تعد Node ، المعروفة أيضًا باسم Worker أو Minion ، عبارة عن آلة يتم نشر حاويات بها (أعباء العمل). كل عقدة في الكتلة يجب تشغيل حاوية وقت التشغيل مثل عامل الميناء، فضلا عن المكونات المذكورة أدناه، للتواصل مع الابتدائي لتكوين شبكة من هذه الحاويات.    تعمل الوظائف الإضافية تمامًا مثل أي تطبيق آخر يتم تشغيله داخل المجموعة: يتم تنفيذها من خلال أجهزة الكمبيوتر والخدمات، وهي تختلف فقط من حيث أنها تقوم بتنفيذ ميزات مجموعة كوبيرنيتيس. قد تتم إدارة القرون بواسطة عمليات النشر و ReplicationControllers وما إلى ذلك. هناك العديد من الوظائف الإضافية، والقائمة تنمو. بعض من أهم:   يستخدم كوبيرنيتيس بشكل شائع كوسيلة لاستضافة تطبيق قائم على الخدمات المصغرة، لأنه ونظامه الإيكولوجي المرتبط به من الأدوات يوفران جميع الإمكانيات اللازمة لمعالجة الشواغل الرئيسية لأي .