تخطَّ إلى المحتوى
نسخة تجريبية

مرجع Kubernetes

حقائق ترجع إليها بعد أن تعمل المجموعة: إصدارها، وعُقدها العاملة، وحدودها، وما تفحصه حين لا يعمل شيء. ولإنشاء مجموعة واستخدامها، ابدأ بـ Kubernetes.

الإصدارات

تعمل المجموعات الجديدة بـ Kubernetes 1.36، وهو الإصدار الذي يعرضه معالج الإنشاء ويضع عليه علامة موصى به. ولا يعرض المعالج إلا الإصدارات المتاحة للمجموعات الجديدة.

تبقى المجموعة على الإصدار الذي أُنشئت به: فلا يمكن اليوم ترقية مجموعة موجودة ولا نقلها إلى إصدار آخر. واسمها وشبكتها والتوافر العالي فيها ثابتة منذ الإنشاء أيضًا. وتعرض صفحة المجموعة إصدارها بالشكل Kubernetes 1.36، ويعرض قسم العُقد فيها الإصدار الدقيق لكل عقدة عاملة، مثل v1.36.4.

الإصدارنهاية الدعم
Kubernetes 1.3628 يونيو 2027

نهاية الدعم هي اليوم الذي يتوقف فيه مشروع Kubernetes عن إصدار تحديثات لإصدار ما، ومنها الإصلاحات الأمنية. ويُبلَّغ مالكو مساحة العمل ومديروها بالبريد الإلكتروني قبلها بـ 30 يومًا و7 أيام عن كل مجموعة تعمل بذلك الإصدار، وتعرضها النظرة العامة للمجموعة: انظر ما الذي نخبرك به.

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

حجم العقدة العاملةvCPUالذاكرةالقرص
Free24 GB20 GB
Small22 GB20 GB
Medium24 GB40 GB
Large48 GB80 GB
  • العُقد العاملة أجهزة x86 بنظام 64 بت، لذا يجب أن تتضمن صورك linux/amd64.
  • شبكة العقدة العاملة المجانية محدودة بـ 10 Mbit/s، ويتشارك معالجاها وقت معالجة نواة واحدة.
  • لا ذاكرة تبديل (swap) في العقدة العاملة. ويحمل قرصها نظامها الخاص، والصور التي تسحبها، والتخزين المؤقت لـ Pods الخاصة بك، مثل وحدات emptyDir.
  • يمكن إرفاق حتى 24 وحدة تخزين بعقدة عاملة واحدة.
  • تستخدم كل مجموعة النطاقات الداخلية نفسها: الـ Pods في 10.244.0.0/16، والخدمات في 10.96.0.0/12، ونطاق DNS ‏cluster.local.

تسرد صفحة مجمّعات عُقد Kubernetes التسميات التي تحملها كل عقدة عاملة.

ما يتبقى لـ Pods الخاصة بك

تحتفظ كل عقدة عاملة بجزء من معالجها وذاكرتها لنظامها، فلا تستطيع Pods الخاصة بك أن تطلب إلا ما يبقى متاحًا لها: وتعرض صفحة ما تحتفظ به العقدة العاملة لنفسها الأرقام لكل حجم. وتعمل خدمات المجموعة نفسها أيضًا على العُقد العاملة على هيئة Pods، في kube-system وفي مساحات أسماء البوابة المُدارة: DNS، وواجهة المقاييس، وشبكة الـ Pods وسياسات الشبكة، ووكيل الخدمات، والصلة بمستوى التحكم، والبوابة المُدارة حين تكون مفعّلة. وهي تستخدم جزءًا مما هو متاح.

لمعرفة ما تبقّى، اقرأ Allocatable وAllocated resources للعقدة العاملة:

bash
kubectl describe node <worker>
kubectl top nodes

ويعرض قسم العُقد في المجموعة الاستهلاك الحالي نفسه مقابل ما يمكن للـ Pods استخدامه. اضبط طلبات الموارد لـ Pods الخاصة بك لتتسع، واترك مكانًا لـ Pods النظام، ولا سيما على عقدة عاملة بذاكرة 2 GB.

ما هو مضمّن

  • kubectl top وواجهة المقاييس، فيستطيع HorizontalPodAutoscaler التوسع بحسب المعالج.
  • تُطبَّق NetworkPolicy. ولا تُنشأ أي سياسة لك، فيستطيع كل Pod الوصول إلى غيره حتى تضيف سياسة.
  • يرفض أمان الـ Pods الـ Pods ذات الامتيازات: تفرض كل مساحات الأسماء عدا مساحات النظام المعيار baseline وتحذّر وفق restricted. وتستمر المجموعات التي أُنشئت قبل هذه الإعدادات الافتراضية في العمل دونها.
  • لا توسيع تلقائي للعُقد: غيّر عدد العُقد العاملة في المجمّع بنفسك.

الحدود

لكل خطة

الخطة المجانيةالخطط المدفوعة
المجموعات في كل مساحة عمل15
العُقد العاملة في كل مجموعة، عبر مجمّعات العُقد فيها120
أحجام العُقد العاملةFreeSmall وMedium وLarge
التوافر العالي—نعم
وحدات التخزين في كل مجموعة250
أكبر وحدة تخزين10 GiB1,000 GiB
أسماء المضيفين على البوابة المُدارة لكل مجموعة: نطاقاتك الخاصة والنطاقات المربوطة والأسماء الإضافية معًا20100

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

لكل مجموعة

مجمّعات العُقد عند إنشاء المجموعةحتى 10
العُقد العاملة في كل مجمّعمن 1 إلى 20
التسميات والقيود في كل مجمّع20 تسمية، و10 قيود
وحدات التخزين المرفقة بعقدة عاملة واحدة24
وحدات التخزين المحتفظ بها في كل مساحة عملضعف عدد وحدات التخزين لكل مجموعة في الخطة
موزّعات الحملواحد لكل خدمة من نوع LoadBalancer، من موزّعات الحمل في مساحة العمل: 1 في Free، و5 في Pro، و20 في Scale
المنافذ لكل خدمة LoadBalancer5؛ والمنفذ المفتوح على TCP وUDP معًا يُحتسب مرتين
منفذ العقدة المحجوز30080، تستخدمه البوابة المُدارة
الشبكات المصرّح لها بالوصول إلى الـ API20
ملفات kubeconfigشهادة صالحة 12 ساعة، أو ملف ذاتي التجديد يجلب اعتمادًا صالحًا ساعة واحدة بمفتاح صالح لعام

حدود الطلبات

الحد
تنزيل ملفات kubeconfig10 كل 10 دقائق، لكل شخص
تجديد اعتماد ملف kubeconfig ذاتي التجديد120 في الدقيقة، لكل ملف kubeconfig
القراءات في لوحة المجموعة240 في الدقيقة لكل شخص، و600 في الدقيقة لكل مجموعة
سجلات الحاويات30 في الدقيقة، لكل شخص
تكبير وحدات التخزين20 كل 10 دقائق، لكل شخص
تغييرات البوابة المُدارة30 في الدقيقة، لكل مجموعة
تغييرات الوصول إلى الـ API20 في الدقيقة، لكل مجموعة
منح الوصول30 في الدقيقة، لكل شخص
تغييرات الإعدادات (حماية الحذف، أمان الـ Pods)20 في الدقيقة، لكل مجموعة
إعدادات موزّع الحمل من الخدمات30 في الدقيقة، لكل مجموعة

بعد تجاوز الحد تعرض لوحة التحكم طلبات كثيرة جدًا. يرجى الانتظار قبل إعادة المحاولة.، وتُطبَّق إعدادات الخدمة بعد ثوانٍ.

استكشاف الأخطاء وإصلاحها

حالة المجموعة

الحالةالمعنىما العمل
في الانتظارتنتظر البدءانتظر
قيد الإنشاءتُبنى: حجز العناوين، وتشغيل مستوى التحكم، وضمّ العقد العاملةانتظر
جاهزةكل العُقد جاهزة وخدمات المجموعة نفسها تعمل
قيد التحديثيجري تغيير في العُقد العاملة أو مجمّعات العُقد، أو تُستبدل عقدة عاملة توقفت عن العمل، أو يُعاد تشغيل مستوى التحكم بأمان الـ Pods؛ وتستمر المجموعة في الخدمةانتظر
متدهورةلم يكتمل تغيير في العُقد العاملة أو استبدال عقدة عاملة في الوقت المحدد، أو تعذّر تفعيل أمان الـ Pods؛ وتبقى العُقد العاملة الأخرى تعملغيّر مجمّع العُقد مجددًا، أو فعّل أمان الـ Pods من جديد، أو تواصل مع الدعم. وعبر الـ API أو MCP، يستأنف ضبطُ العدد الحالي للعُقد العاملة في المجمّع تغييرًا لم يكتمل
فشلتفشل إعداد المجموعةاحذفها وأنشئها من جديد، أو تواصل مع الدعم
قيد الحذفتُحذفانتظر

وأثناء إنشاء المجموعة أو تغييرها، قد تعرض صفحة نظرة عامة أيضًا بانتظار توفر سعة لوضع عُقد المجموعة. أو واجه إعداد المجموعة مشكلة، وتجري إعادة المحاولة.: وتواصل المنصّة المحاولة وحدها. أما توقفت إحدى العُقد العاملة عن الاستجابة ويجري استبدالها. فتعني أن المنصّة تستبدل عقدة عاملة: انظر حين تتوقف عقدة عاملة عن العمل.

خدمة LoadBalancer بلا عنوان IP خارجي

اقرأ أحداث الخدمة:

bash
kubectl describe service <name>
الحدثالإصلاح
LoadBalancerFailed: …no load balancer left in its planاحذف موزّع حمل لم تعد مساحة العمل تستخدمه، أو تواصل مع الدعم
LoadBalancerFailed: …more ports than a load balancer of its tier allowsاستخدم 5 منافذ أو أقل
LoadBalancerPending: …opens once the Service's allowed and denied sources are valid…أصلح المصادر: انظر اضبط خدمة من نوع LoadBalancer
LoadBalancerPending: The previous load balancer is still being removed.انتظر
LoadBalancerPending: The load balancer is being set up.انتظر

لا تحصل الخدمة التي تضبط allocateLoadBalancerNodePorts: false على موزّع حمل أبدًا: احذف هذا الحقل. وحين تحصل على واحد، يتصل العملاء على المنفذ العام المذكور في تعليقها التوضيحي service.sahabti.com/public-ports، وتعرضه صفحة موزّعات الحمل أيضًا.

مطالبة التخزين تبقى Pending

  • تنتظر أول Pod لها: تُنشأ وحدة التخزين على العقدة العاملة التي يُجدوَل عليها Pod يستخدم المطالبة.
  • لا تتوفر إلا الفئتان sahabti-delete وsahabti-retain، ووحدات نظام الملفات، والوصول ReadWriteOnce أو ReadWriteOncePod، ولا يمكن إنشاء وحدة تخزين من لقطة أو من مطالبة أخرى.
  • ويذكر الحدث ProvisioningFailed أي سبب آخر، مثل حجم يتجاوز أكبر وحدة تخزين في خطتك أو نفاد حصة القرص:
bash
kubectl describe pvc <claim>

Pod يبقى Pending

يعرض kubectl describe pod <pod> سبب عجز المجدول عن وضعه:

  • لا يكفي المعالج أو الذاكرة: قلّل طلباته، أو أضف عُقدًا عاملة، أو أضف مجمّعًا بحجم أكبر.
  • قيود لا يتحملها: أضف له سماحًا (toleration)، أو جدوِله على مجمّع آخر. وتُبقي المنصّة دائمًا مجمّعًا واحدًا بلا قيود NoSchedule أو NoExecute لخدمات المجموعة نفسها.
  • وحدة تخزين في منطقة أخرى: لا يعمل Pod له وحدة تخزين موجودة إلا على عقدة عاملة في منطقة تلك الوحدة، وما دامت تلك العقدة مرفقًا بها أقل من 24 وحدة تخزين.

اسم مضيف لا يُخدَم

  • يعني الحدث HostnameNotRouted على مسار أو Ingress أن المجموعة لا تحمل اسم المضيف ذاك بعد: وجّه سجل CNAME الخاص به إلى المجموعة، أو اربطه عبر نطاق موثَّق، أو استخدم اسمًا إضافيًا. انظر أسماء المضيفين.
  • ويعني خطأ في البوابة المُدارة يذكر Port 30080 أن إحدى خدماتك أخذت منفذ العقدة ذاك: امنحها منفذًا آخر.
  • والحدث TLSAtEdge على Ingress متوقع: يُخدَم HTTPS على حافة المنصّة، ولا يُستخدم قسم tls في الـ Ingress.

لا يستطيع kubectl الاتصال

  • ينتهي الاتصال بانقضاء المهلة: لا تجيب الـ API إلا العناوين التي يسمح بها إعداد الوصول إليها. افحص الوصول إلى الـ API في قسم الوصول للمجموعة، أو اتصل من داخل شبكة مساحة عملك إن كانت المجموعة خاصة.
  • انتهت صلاحية الشهادة: يتوقف ملف kubeconfig الصالح 12 ساعة عن العمل حين تنتهي شهادته. نزّل ملفًا جديدًا.
  • يفشل ملف kubeconfig ذاتي التجديد: يحتاج إلى sh وcurl بالإصدار 7.55 أو أحدث. ويتوقف خلال ساعة حين يُلغى مفتاحه أو تفقد دورك في المجموعة، وفورًا حين تُحذف المجموعة.
  • خطأ في اسم الشهادة: يطلب ملف kubeconfig من العملاء مطابقة شهادة الـ API مع الاسم kubernetes عبر tls-server-name. استخدم عميلًا يحترم ذلك، كما يفعل kubectl.

انظر الوصول إلى مجموعة Kubernetes لنوعي ملف kubeconfig وإعداد الوصول إلى الـ API.