OpenShift كإصدار مؤسسي من Kubernetes

"ما الفرق بين Kubernetes و OpenShift؟" - ينشأ هذا السؤال بثبات يحسد عليه. على الرغم من أنه في الواقع يشبه التساؤل عن كيفية اختلاف السيارة عن المحرك. إذا واصلنا القياس ، فإن السيارة هي منتج نهائي ، يمكنك استخدامه على الفور ، حرفيا: جلست وذهبت. من ناحية أخرى ، لكي يأخذك المحرك إلى مكان ما ، يجب أولاً أن يتم استكماله بمجموعة من الأشياء الأخرى من أجل الحصول على نفس السيارة في نهاية المطاف.



لذلك ، Kubernetes هو مثل هذا المحرك ، حيث يتم تجميع سيارة (منصة) من علامة OpenShift التجارية ، والتي تأخذك إلى الهدف.

في هذه المقالة ، نريد أن نستذكر ونحلل بمزيد من التفصيل النقاط الرئيسية التالية:

  • تقع Kubernetes في قلب منصة OpenShift وهي حاصلة على اعتماد 100٪ من Kubernetes ومفتوحة المصدر بالكامل وبدون أدنى قدر من الملاءمة. بالمختصر:
    • API OpenShift – Kubernetes.
    • Kubernetes, - OpenShift. .
  • OpenShift Kubernetes . , OpenShift , , , . OpenShift . , PaaS- , . Container-as-a-Service .

OpenShift – Kubernetes 100% CNCF


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

ربما سمعت عن أداة سطر الأوامر OpenShift المسماة OC. وهو متوافق تمامًا مع أوامر kubectl ، بالإضافة إلى أنه يوفر العديد من أدوات المساعدة المفيدة المفيدة عند تنفيذ عدد من المهام. ولكن أولاً ، المزيد عن التوافق مع OC و kubectl:

فرق Kubectlفرق OC
kubectl الحصول على القرونoc الحصول على القرون
kubectl الحصول على مساحات الأسماءoc الحصول على مساحات الأسماء
إنشاء kubectl -floyment.yamloc إنشاء -floyment.yaml

إليك ما تبدو عليه نتائج استخدام kubectl على OpenShift API:

• kubectl get pods - من المتوقع إرجاع pods.



• الحصول على kubectl للحصول على مساحات الأسماء - يُرجع بشكل متوقع تمامًا مساحات الأسماء.


ينشئ الأمر kubectl -f mydeployment.yaml موارد kubernetes تمامًا مثل أي منصة Kubernetes أخرى ، كما هو موضح في الفيديو أدناه:


بمعنى آخر ، يمكن الوصول إلى جميع واجهات برمجة تطبيقات Kubernetes بالكامل في OpenShift بتوافق 100٪. هذا هو السبب في أن OpenShift معترف بها من قبل مؤسسة الحوسبة السحابية الأصلية (CNCF) كمنصة Kubernetes معتمدة . 

OpenShift يدعم Kubernetes بميزات مفيدة


تتوفر واجهات برمجة التطبيقات الخاصة بـ Kubernetes بنسبة 100٪ في OpenShift ، ولكن الأداة المساعدة kubectl العادية من Kubernetes تفتقر بوضوح إلى الوظائف والراحة. لذلك ، أضافت Red Hat Kubernetes بميزات مفيدة وأدوات سطر الأوامر ، مثل OC (اختصار لـ OpenShift client) و ODO (OpenShift DO ، هذه الأداة مخصصة للمطورين).

1. فائدة OC - نسخة أكثر قوة وملاءمة من Kubectl


على سبيل المثال ، على عكس kubectl ، يسمح لك بإنشاء مساحات أسماء جديدة وتبديل السياقات بسهولة ، كما يوفر عددًا من الأوامر المفيدة للمطورين ، على سبيل المثال ، لبناء صور الحاوية ونشر التطبيقات مباشرة من شفرة المصدر أو الملفات الثنائية (المصدر إلى الصورة ، s2i).

دعونا نلقي نظرة على أمثلة لكيفية مساعدة المساعد المدمج والوظيفة المتقدمة لأداة OC المساعدة في تبسيط العمل اليومي.

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

لا تتذكر ما يسمى مساحة الاسم؟ لا توجد مشكلة ، فقط اكتب “oc get projects” لعرض قائمة كاملة. هل تتساءل متشككًا في كيفية عمل ذلك إذا كان لديك حق الوصول فقط إلى مجموعة فرعية محدودة من مساحات الأسماء في المجموعة؟ حسنًا ، لأن kubectl يفعل ذلك بشكل صحيح ، فقط إذا سمح لك RBAC برؤية جميع المساحات على الكتلة ، وفي التجمعات الكبيرة ، لا يمنح الجميع مثل هذه السلطة. لذا ، نجيب: بالنسبة لـ OC ، هذه ليست مشكلة على الإطلاق وستقدم بسهولة قائمة كاملة في مثل هذه الحالة. من مثل هذه التفاهات ، يتكون تركيز شركة Openshift وقابلية التوسع الجيدة لهذه المنصة من حيث المستخدمين والتطبيقات

2. ODO - نسخة محسنة من kubectl للمطورين


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

دعونا نرى كيف يجعل OC و ODO الحاوية و Kubernetes أسهل.

ما عليك سوى مقارنة بضع سير عمل عندما يتم بناؤها على أساس kubectl ، وعند استخدام OC أو ODO.

• نشر التعليمات البرمجية على OpenShift لأولئك الذين لا يتحدثون لغة YAML:

Kubernetes / kubectl$> git clone github.com/sclorg/nodejs-ex.git
1- Dockerfile,
————–
FROM node
WORKDIR /usr/src/app
COPY package*.json ./
COPY index.js ./
COPY ./app ./app
RUN npm install
EXPOSE 3000
CMD [ “npm”, “start” ]
————–
2-
$> podman build …
3-
podman login …
4-
podman push
5- yaml- (deployment.yaml, service.yaml, ingress.yaml) –
6- manifest-:
Kubectl apply -f .
OpenShift / oc$> oc new-app github.com/sclorg/nodejs-ex.git – __
OpenShift / odo$> git clone github.com/sclorg/nodejs-ex.git
$> odo create component nodejs myapp
$> odo push

• : .

Kubernetes / kubectl1- kubeconfig “myproject”
2- kubectl set-context …
OpenShift / ococ project “myproject”

: « , -. ?»


تخيل أنك جالس في سيارة سباق ويقولون: "لقد وضعنا نوعًا جديدًا من المكابح هنا ، وبصراحة ، ليسوا على ما يرام مع الموثوقية حتى الآن ... ولكن لا تقلق ، سنقوم بتحسينها بشكل فعال خلال البطولة". كيف تحب هذا الاحتمال؟ نحن في ريد هات لسنا بطريقة أو بأخرى. :)

لذلك ، نحاول الامتناع عن إصدارات ألفا حتى تنضج بما يكفي ، ولا نجري اختبارات قتالية شاملة ونشعر أنه يمكن استخدامها بأمان. عادة ، يمر كل شيء أولاً من خلال مرحلة Dev Preview ، ثم من خلال Tech Preview ، ثم يأتي فقط في شكل إصدار عام للتوافر العام (GA) ، وهو مستقر بالفعل بما يكفي ليكون مناسبًا للإنتاج.

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

تقوم Red Hat بإصدار إصدارات OpenShift المتكررة عن عمد وتحديث نسختها من Kubernetes. على سبيل المثال ، في وقت كتابة هذا المقال ، يشتمل إصدار GA لـ OpenShift 4.3 على Kubernetes 1.16 ، وهي وحدة واحدة فقط وراء الإصدار الأولي من Kubernetes 1.17. وبالتالي ، فإننا نحاول إعطاء عميل Kubernetes من فئة المؤسسات وتوفير تحكم إضافي في الجودة في عملية إطلاق إصدارات جديدة من OpenShift.

إصلاحات البرامج: "كانت هناك فجوة في هذا الإصدار من Kubernetes التي لدينا في الإنتاج. ويمكنك إغلاقه فقط عن طريق تحديث ثلاثة إصدارات. أم أن هناك خيارات؟ "


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

تفخر Red Hat بحق بإصدار إصلاحات حرجة في وقت أبكر من غيرها وتقديم الدعم لفترة أطول. خذ ، على سبيل المثال ، ثغرة تصعيد امتياز Kubernetes ( CVE-2018-1002105 ): تم اكتشافه في Kubernetes 1.11 ، وتم إصدار تصحيحات للإصدارات السابقة فقط إلى الإصدار 1.10.11 ، تاركًا هذه الثغرة في جميع إصدارات Kubernetes السابقة ، من 1 .x إلى 1.9.

بدوره ، قامت Red Hat بتصحيح OpenShift مرة أخرى إلى الإصدار 3.2(Kubernetes 1.2 يقف هناك) ، يلتقط تسعة إصدارات OpenShift ويظهر خدمة العملاء (مزيد من المعلومات هنا ).

كيف تحرك OpenShift و Red Hat Kubernetes إلى الأمام


تحتل Red Hat المرتبة الثانية من حيث مساهمات البرامج في Kubernetes مفتوحة المصدر ، والثانية فقط لـ Google ، حيث يعمل 3 من أصل 5 مطورين غزير في Red Hat. حقيقة أخرى غير معروفة: ظهرت العديد من الوظائف الهامة في Kubernetes على وجه التحديد بمبادرة من Red Hat ، على وجه الخصوص ، مثل:

  • RBAC. Kubernetes RBAC (ClusterRole, ClusterRoleBinding) , Red Hat , OpenShift. Red Hat Kubernetes? , Red Hat , Open Core. , , , , – .
  • سياسات الأمن للقرون (سياسات الأمن Pod). في البداية ، تم تنفيذ هذا المفهوم الخاص بالتطبيق الآمن داخل الكبسولات في OpenShift تحت اسم SCC (قيود سياق الأمان). وكما هو الحال في المثال السابق ، قررت Red Hat إدخال هذه التطورات في مشروع Kubernetes مفتوح المصدر حتى يتمكن الجميع من استخدامها.

يمكن متابعة هذه السلسلة من الأمثلة ، لكننا أردنا فقط إظهار أن Red Hat تسعى حقًا لتطوير Kubernetes وجعلها أفضل للجميع.

من الواضح أن OpenShift هو Kubernetes. وما هي الاختلافات؟ :)


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

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


OpenShift هي منصة Kubernetes الذكية ،

ألق نظرة على الصورة أعلاه: كل ما هو خارج مستطيل Kubernetes هو المنطقة التي تضيف فيها Red Hat وظائف لا تمتلكها Kubernetes ، والتي تسمى بالتصميم الثانوي. والآن سننظر في أهم هذه المجالات.

1. نظام تشغيل موثوق به كأساس: RHEL CoreOS أو RHEL


لأكثر من 20 عامًا ، كانت Red Hat مقدمًا رائدًا لتوزيعات Linux لتطبيقات الأعمال المهمة. تتيح لنا الخبرة المكتسبة والمحدثة باستمرار في هذا المجال تقديم أساس موثوق به وموثوق به حقًا للتشغيل الصناعي للحاويات. يستخدم RHEL CoreOS نفس النواة التي تستخدمها RHEL ، ولكن تم تحسينه في المقام الأول لمهام مثل تشغيل الحاويات والعمل في مجموعات Kubernetes: يعمل الحجم المنخفض والثبات على تبسيط تثبيت المجموعة ، والتعديل التلقائي ، ونشر التصحيحات ، إلخ. كل هذه الميزات تجعله أساسًا مثاليًا لاكتساب نفس تجربة المستخدم عند العمل مع OpenShift في مجموعة متنوعة من بيئات الحوسبة ، من المعدن العاري إلى السحب الخاصة والعامة.

2. أتمتة عمليات تكنولوجيا المعلومات


أتمتة عمليات التثبيت وعمليات اليوم الثاني (أي التشغيل اليومي) هي فرس مرئي OpenShift يسهل بشكل كبير إدارة وتحديث وصيانة منصة الحاويات على أعلى مستوى. يتم تحقيق ذلك من خلال دعم مشغلي Kubernetes على المستوى الأساسي لـ OpenShift 4.

OpenShift 4 هو أيضًا نظام بيئي متكامل من الحلول القائمة على مشغلي Kubernetes التي طورها كل من Red Hat وشركاء الطرف الثالث (انظر دليل مشغل Red Hat أو متجر المشغل operatorhub.io ، التي أنشأتها Red Hat لمطوري الجهات الخارجية).


يتضمن دليل OpenShift 4 المتكامل أكثر من 180 مشغل Kubernetes

3. أدوات المطور


منذ عام 2011 ، أصبح OpenShift متاحًا كنظام أساسي PaaS (Platform-as-a-Service) ، والذي يبسط إلى حد كبير حياة المطورين ، ويساعدهم على التركيز على إنشاء التعليمات البرمجية ويقدم دعمًا مدمجًا للغات البرمجة مثل Java ، Node.js ، PHP ، Ruby و Python و Go ، بالإضافة إلى خدمات التكامل والتسليم المستمرة CI / CD وقواعد البيانات وما إلى ذلك. يقدم OpenShift 4 كتالوجًا شاملاً يتضمن أكثر من 100 خدمة استنادًا إلى مشغلي Kubernetes التي طورتها Red Hat وشركاؤنا.

على عكس Kubernetes ، يحتوي OpenShift 4 على واجهة رسومية خاصة ( Developer Console) ، مما يساعد المطورين على نشر التطبيقات بسهولة في مساحات الأسماء الخاصة بهم من مصادر مختلفة (البوابة ، والسجلات الخارجية ، وملف Dockerfile ، وما إلى ذلك) وتصور الروابط بين مكونات التطبيق بشكل مرئي.


تعمل Developer Console على تصور مكونات التطبيق وتبسيط العمل مع Kubernetes.

بالإضافة إلى ذلك ، تقدم OpenShift مجموعة من أدوات تطوير Codeready ، والتي تتضمن Codeready Workspaces ، وهي بيئة تطوير متكاملة مستندة إلى الويب في حاوية يتم تشغيلها مباشرة فوق OpenShift وتطبق النهج الشبيه بـ IDE الخدمات". من ناحية أخرى ، بالنسبة لأولئك الذين يرغبون في العمل بشكل صارم في الوضع المحلي ، هناك حاويات Codeready - نسخة وظيفية بالكامل من OpenShift 4 يمكن نشرها على جهاز كمبيوتر محمول.


المتكاملة "IDE كخدمة" للتطوير الفعال على منصة Kubernetes / OpenShift.

مباشرة من الصندوق ، تقدم OpenShift نظام CI / CD كامل ، إما استنادًا إلى Jenkins الحاوية والمكوّن الإضافي DSL لخطوط الأنابيب ، أو نظام Tekton القائم على Kubernetes CI / CD (في الوقت الحالي) في إصدار المعاينة الفنية). تم دمج كل من هذه الحلول بشكل كامل مع وحدة تحكم OpenShift ، مما يسمح لك بتشغيل مشغلات خطوط الأنابيب ، وعرض عمليات النشر ، والسجلات ، وما إلى ذلك.

4. أدوات للتطبيقات


يتيح لك OpenShift نشر كل من التطبيقات التقليدية ذات الحالة والحلول المستندة إلى السحابة استنادًا إلى الهياكل الجديدة ، مثل الخدمات المصغرة أو بدون خادم. يُعد حل OpenShift Service Mesh فورًا خارج الصندوق عاملاً أساسيًا في دعم أدوات الخدمات الصغيرة مثل Istio و Kiali و Jaeger. في المقابل ، لا يتضمن حل OpenShift Serverless فقط Knative ، ولكن أيضًا أدوات مثل Keda ، التي تم إنشاؤها كجزء من مبادرة مشتركة مع Microsoft ، لتوفير وظائف Azure على منصة OpenShift.


يُعد حل OpenShift ServiceMesh المدمج (Istio و Kiali و Jaeger) مفيدًا عند تطوير الخدمات المصغرة.

لتضييق الفجوة بين التطبيقات القديمة والحاويات ، يتيح OpenShift الآن ترحيل الأجهزة الافتراضية إلى منصة OpenShift باستخدام Virtual Native Virtualization (حاليًا في إصدار TechPreview) ، مما يؤدي إلى تحويل التطبيقات المختلطة إلى الواقع وتسهيل نقلها بين السحب المختلفة ، الخاصة والعامة.


الجهاز الظاهري لـ Windows 2019 الذي يعمل على OpenShift من خلال Virtual Native Virtualization (حاليًا في إصدار المعاينة الفنية)

5. أدوات للمجموعات


يجب أن يكون لدى أي نظام أساسي على مستوى المؤسسة خدمات مراقبة وتسجيل مركزي وآليات أمان ومصادقة وتفويض وأدوات إدارة الشبكة. ويوفر OpenShift كل هذا خارج الصندوق ، وكل هذا مفتوح المصدر بنسبة 100٪ ، بما في ذلك حلول مثل ElasticSearch و Prometheus و Grafana. تأتي كل هذه الحلول مع لوحات المعلومات والمقاييس والتنبيهات التي تم تكوينها وتكوينها بالفعل استنادًا إلى تجربة المراقبة العنقودية الشاملة لمجموعة Red Hat ، والتي تتيح لك مراقبة وتتبع بيئة الإنتاج الخاصة بك بشكل فعال من الدقائق الأولى.

يحتوي OpenShift أيضًا على أشياء مهمة لعملاء الشركة مثل المصادقة مع موفر oauth المدمج ، والتكامل مع موفري بيانات الاعتماد ، بما في ذلك LDAP و ActiveDirectory و OpenID Connect والمزيد.


لوحة معلومات Grafana سابقة التكوين لمراقبة مجموعة OpenShift


أكثر من 150 مقياس وتنبيه مكوّن مسبقًا من بروميثيوس لمراقبة مجموعة OpenShift

يتبع


الوظائف الغنية للحل والخبرة الواسعة لـ Red Hat في مجال Kubernetes هي بالضبط لهذه الأسباب التي اتخذت OpenShift موقعًا مهيمنًا في السوق ، كما هو موضح في الشكل أدناه (مزيد من التفاصيل هنا ).


"في الوقت الحاضر ، تقود Red Hat السوق بحصة 44٪.
تجني الشركة فوائد استراتيجية المبيعات الخاصة بها من خلال المشاركة النشطة في شؤون العملاء ، حيث تقوم أولاً بتقديم المشورة وتدريب مطوري الشركات ، ثم تنتقل إلى تحقيق الدخل حيث تبدأ الشركة في إدخال الحاويات في الإنتاج.


(المصدر: www.lightreading.com/nfv/containers/ihs-red-hat-container-strategy-is-paying-off/d/d-id/753863 )

نأمل أن تكون قد استمتعت بهذا المقال. في المنشورات التالية في هذه السلسلة ، سنلقي نظرة فاحصة على مزايا OpenShift مقارنة بـ Kubernetes في كل فئة من الفئات التي نوقشت هنا.

All Articles