مقدمة عن موارد Kubernetes – CloudSavvy IT
تشتهر Kubernetes بإمكانية الوصول إليها. لإتقان Kubernetes ، عليك أن تفهم كيف تتوافق تجريداتها معًا. يأتي Kubernetes بالعشرات من أنواع الموارد التي يمكنك استخدامها في تطبيقك. دعنا نلقي نظرة على أدوار الموارد الأكثر استخدامًا.
جراب
إذا كان هناك مصطلح Kubernetes يجب تعلمه ، فهو “Pod”. Pod هي وحدة الحوسبة الأساسية التي تستخدمها Kubernetes. يستضيفون الحاوية التي تقوم بتشغيلها. لذلك ، عادةً ما تتم مقارنة Pod بمثيل حاوية Docker.
هذا التشابه ليس دقيقًا ، لأنه قد يكون هناك عدة حاويات تعمل في حاوية Kubernetes واحدة. من الأفضل التفكير في Pod على أنه “مجموعة” من الحاويات ذات سياق تنفيذ مشترك. بيئة الحاوية معزولة ؛ بيئات الحاويات المختلفة فيها معزولة أكثر.
قم دائمًا بجدولة الحاويات الموجودة في Pod لنفس عقدة Kubernetes. سيتم تشغيلهم على نفس الكمبيوتر الفعلي ويمكنهم مشاركة موارد التخزين والشبكة.
apiVersion: v1 form: Pod metadata: identify: my-pod spec: containers: - title: my-container impression: my-graphic:hottest
القائمة أعلاه ستنشئ قرصًا يدويًا. سوف تستخدم جراب my-picture:most recent
صورة.
أنت عادة لا تدير Pods مباشرة في Kubernetes. يتم إنشاء السنفات كنتيجة لإضافة موارد أخرى (على سبيل المثال ، النشر) (انظر أدناه). يجب أن تفكر في البودات كوحدات قصيرة العمر. يتحكم Kubernetes في Pod ، وإذا كانت موارد المجموعة مقيدة ، فيمكنها إعادة جدولتها إلى عقدة أخرى.
مجموعة النسخ المتماثلة
مجموعة النسخ المتماثل (عادةً ما تكون مكتوبة بتنسيق ReplicaSets
، بلا مسافات) هي طبقة تجريد أخرى أعلى الجراب. تضمن ReplicaSets تشغيل عدد معين من Pods المماثلة في أي وقت.
عند استخدام ReplicaSets ، يمكنك فرض حد أدنى من Pods لتطبيقك. أنت تحدد عدد البودات التي يجب تشغيلها في نفس الوقت. بعد ذلك ، تخطط Kubernetes لما يكفي من Pods لتلبية الحد الأدنى من التوافر الذي تحدده. ضع في اعتبارك أن كل قرص قد يحتوي على عدة حاويات قيد التشغيل ، اعتمادًا على كيفية تكوين التطبيق الخاص بك.
عندما يتم إنشاء Pod بواسطة ReplicaSet ، سيقوم Kubernetes بتحديث Pod of the Pod metadata.ownerReferences
يحتوي الحقل على هوية مجموعة النسخ المتماثلة. بعد ذلك ، يمكن لـ ReplicaSet إنشاء Pod الذي يتحكم فيه ، بحيث يعرف ما إذا كان قد وصل إلى الحد الأدنى من هدف الإتاحة.
تحتوي مجموعة النسخ المتماثلة على ملف replicas
حقل يحدد عدد السنفات المراد تشغيلها. قم بتغيير هذه القيمة وقم بتطبيق قائمة ReplicaSet المحدثة على نظام المجموعة الخاص بك لجعل Kubernetes تعيد جدولة Pod لمطابقة العدد الجديد من النسخ المتماثلة.
تسلط هذه التفاصيل الضوء على نقطة مهمة حول مجموعات النسخ المتماثلة: يضمن Kubernetes فقط أن عدد Pods قيد التشغيل سيكون أخيرا تطابق عدد النسخ التي تحددها. إذا قمت بتغيير عدد النسخ ، فقد يكون عدد Pods قيد التشغيل في فترة زمنية أقل من الرقم المشار إليه في القائمة. ستقوم ReplicaSet بإنشاء أو حذف Pods حتى يتوفر الرقم المطلوب.
apiVersion: apps/v1 sort: ReplicaSet metadata: identify: my-replicaset labels: my-label: my-value spec: replicas: 3 selector: matchLabels: my-label: my-value template: metadata: labels: my-label: my-value spec: containers: - identify: application-container graphic: my-impression:most current
سيتم تشغيل ثلاث نسخ من القائمة أعلاه my-picture:newest
تستخدم صورة الحاوية مجموعة النسخ المتماثلة. يمكنك تغيير عدد النُسخ عن طريق تحديث القيمة في البيان وإعادة تطبيقه (kubectl utilize -f my-manifest.yml
).
نشر
على الرغم من أن مجموعات النسخ المتماثلة تجعل من السهل استخدام البودات ، إلا أنه نادرًا ما يتم استخدامها بشكل مباشر. نشر إنه تجريد أعلى مجموعات النسخ المتماثلة. عادةً ، يتم إنشاء عملية نشر عند إضافة حمل عمل جديد إلى نظام المجموعة.
تتيح موارد النشر التحديثات التصريحية لـ Pods و ReplicaSets. إنها تسمح لك بإجراء تحديثات متجددة لمجموعات ReplicaSets ، حيث يتم إعادة جدولة Pod دون أي توقف للخدمة. يتم استبدال Pod و ReplicaSets بشكل منفصل ، مما يسمح للإصدارات القديمة والجديدة بالتعايش لفترة وجيزة.
خلقت طريقة Kubernetes لنسخ المحفوظات حاجة للنشر. تطورت مجموعات النسخ المتماثلة من وحدات تحكم النسخ المتماثل. تشبه الوظائف التي توفرها وحدة التحكم في النسخ مجموعات النسخ المتماثلة ، ولكن مع دعم موسع مدمج.
ومع ذلك ، لا توفر وحدة تحكم النسخ المتماثل ملحقات تعريفية.عليك أن تستخدم يدويا kubectl rolling-update
قم بتوسيع النسخة دون توقف. هذا غير متوافق مع النهج التصريحي المستند إلى البيان لموارد Kubernetes الأخرى.
بالمقارنة مع مجموعات النسخ المتماثلة ، تتمثل الميزة الرئيسية لعمليات النشر في أنها تدعم التحديثات المستمرة. لا يضمن تغيير عدد النسخ المتماثلة في ReplicaSet بقاء أي عدد من Pods في أي حالة معينة خلال فترة الطرح. من خلال النشر ، يمكنك التأكد من أن التطبيق سيستمر في معالجة حركة المرور حتى إذا لم يكتمل النشر.
اليوم ، توصي Kubernetes باستخدام “النشر” لتمثيل عبء العمل لديك. سيتم تشغيل عملية النشر تلقائيًا وتوسيع مجموعة النسخ المتماثلة ؛ وستقوم مجموعة النسخ المتماثلة بإدارة Pods بدورها. يمكنك إجراء تحديثات متجددة لعملية النشر الخاصة بك بالطرق التالية: replicas
الحقول في القائمة. بعد ذلك ، سيضمن Kubernetes أن يظل تطبيقك متاحًا طوال فترة التغيير ، حتى تتعايش أجهزة Pods القديمة والجديدة بشكل مؤقت.
apiVersion: apps/v1 form: Deployment metadata: title: my-deployment labels: my-label: my-price spec: replicas: 3 selector: matchLabels: my-label: my-price template: metadata: labels: my-label: my-worth spec: containers: - title: application-container graphic: my-picture:newest
القائمة أعلاه ستنشئ نشرًا بثلاث نسخ ، كل منها يعمل my-picture:most recent
صورة الحاوية.يتغيرون replicas
ستطلق القيمة تحديثًا متجددًا لمجموعات النسخ المتماثلة والبودات الأساسية.
أنواع أخرى من الموارد
الموارد الثلاثة التي درسناها هي العناصر الأكثر شيوعًا التي تمت مواجهتها عند استخدام Kubernetes. يتم استخدامها لتكوين حمل عمل التطبيق وإدارة الحاوية.
عند العمل مع Kubernetes ، ستحتاج إلى استخدام أنواع أخرى من أنواع الموارد. تسمح لك ConfigMap and Techniques بإدخال التكوين في Pods ، وبالتالي تمكينها من الوصول إلى القيم الخارجية. توفر الأحجام والأحجام الثابتة Pod مع نظام ملفات مشترك قابل للكتابة يمكن استخدامه لتخزين البيانات بدلاً من التخزين المؤقت الافتراضي الذي يتم فقده عند خروج Pod.
تساعد مجموعة أخرى من الموارد في إدارة خيارات الشبكة الخاصة بحجم العمل. تتيح لك الخدمات عرض مجموعة من البودات كخدمة شبكة واحدة بعنوان IP واحد. تتيح لك البوابة عرض الخدمة خارجيًا. يقومون بتوجيه حركة المرور إلى مجموعتك بناءً على سمات مثل اسم المضيف والمنفذ ومسار عنوان URL والوصول إلى الخدمة المستهدفة.
أخيرًا ، هناك موارد تعريفية تصف مجموعتك. تُستخدم مساحات الأسماء لعزل أحمال العمل الفردية لمنع تعارض الأسماء. بشكل عام ، يجب عليك إنشاء مساحة اسم جديدة لكل حمل عمل مستقل. العقدة هي مورد يمثل آلة مادية تقوم بتشغيل Pod. عادة ما تستضيف كل عقدة العديد من البودات. طورت Kubernetes طريقة لجدولة أعباء العمل بناءً على توفر كل عقدة والقيود التي تفرضها.
يمكنك عرض قائمة الموارد الكاملة للكتلة عن طريق تشغيل الأمر التالي kubectl api-assets
. بالإضافة إلى الموارد المضمنة ، يمكن لحمل العمل أيضًا إضافة تعريف المورد المخصص (CRD) ، مما يسمح لك بإنشاء كائنات جديدة. يوفر Kubernetes تلقائيًا نقاط نهاية API لتعريفات الموارد المخصصة.
ختاما
يعني تعلم Kubernetes التعرف على المفاهيم والمصطلحات المجردة الجديدة. على الرغم من أن هذا يجعل مساحة سطح API كبيرة ، إلا أن كل كائن Kubernetes له غرض ضيق نسبيًا.
يمكنك عادةً الالتزام بالتجريدات عالية المستوى ، مثل عمليات النشر. ما لم تكن لديك متطلبات معقدة لا يمكن حلها عن طريق النشر ومجموعات النسخ المتماثلة وحدها ، فلن تحتاج إلى إدارة أنواع الموارد الأساسية مثل Pods.