مرجع Kubernetes
حقائق ترجع إليها بعد أن تعمل المجموعة: إصدارها، وعُقدها العاملة، وحدودها، وما تفحصه حين لا يعمل شيء. ولإنشاء مجموعة واستخدامها، ابدأ بـ Kubernetes.
الإصدارات
تعمل المجموعات الجديدة بـ Kubernetes 1.36، وهو الإصدار الذي يعرضه معالج الإنشاء ويضع عليه علامة موصى به. ولا يعرض المعالج إلا الإصدارات المتاحة للمجموعات الجديدة.
تبقى المجموعة على الإصدار الذي أُنشئت به: فلا يمكن اليوم ترقية مجموعة موجودة ولا نقلها إلى إصدار آخر. واسمها وشبكتها والتوافر العالي فيها ثابتة منذ الإنشاء أيضًا. وتعرض صفحة المجموعة إصدارها بالشكل Kubernetes 1.36، ويعرض قسم العُقد فيها الإصدار الدقيق لكل عقدة عاملة، مثل v1.36.4.
| الإصدار | نهاية الدعم |
|---|---|
| Kubernetes 1.36 | 28 يونيو 2027 |
نهاية الدعم هي اليوم الذي يتوقف فيه مشروع Kubernetes عن إصدار تحديثات لإصدار ما، ومنها الإصلاحات الأمنية. ويُبلَّغ مالكو مساحة العمل ومديروها بالبريد الإلكتروني قبلها بـ 30 يومًا و7 أيام عن كل مجموعة تعمل بذلك الإصدار، وتعرضها النظرة العامة للمجموعة: انظر ما الذي نخبرك به.
العُقد العاملة
| حجم العقدة العاملة | vCPU | الذاكرة | القرص |
|---|---|---|---|
| Free | 2 | 4 GB | 20 GB |
| Small | 2 | 2 GB | 20 GB |
| Medium | 2 | 4 GB | 40 GB |
| Large | 4 | 8 GB | 80 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 للعقدة العاملة:
kubectl describe node <worker>
kubectl top nodes
ويعرض قسم العُقد في المجموعة الاستهلاك الحالي نفسه مقابل ما يمكن للـ Pods استخدامه. اضبط طلبات الموارد لـ Pods الخاصة بك لتتسع، واترك مكانًا لـ Pods النظام، ولا سيما على عقدة عاملة بذاكرة 2 GB.
ما هو مضمّن
kubectl topوواجهة المقاييس، فيستطيع HorizontalPodAutoscaler التوسع بحسب المعالج.- تُطبَّق NetworkPolicy. ولا تُنشأ أي سياسة لك، فيستطيع كل Pod الوصول إلى غيره حتى تضيف سياسة.
- يرفض أمان الـ Pods الـ Pods ذات الامتيازات: تفرض كل مساحات الأسماء عدا مساحات النظام المعيار
baselineوتحذّر وفقrestricted. وتستمر المجموعات التي أُنشئت قبل هذه الإعدادات الافتراضية في العمل دونها. - لا توسيع تلقائي للعُقد: غيّر عدد العُقد العاملة في المجمّع بنفسك.
الحدود
لكل خطة
| الخطة المجانية | الخطط المدفوعة | |
|---|---|---|
| المجموعات في كل مساحة عمل | 1 | 5 |
| العُقد العاملة في كل مجموعة، عبر مجمّعات العُقد فيها | 1 | 20 |
| أحجام العُقد العاملة | Free | Small وMedium وLarge |
| التوافر العالي | — | نعم |
| وحدات التخزين في كل مجموعة | 2 | 50 |
| أكبر وحدة تخزين | 10 GiB | 1,000 GiB |
| أسماء المضيفين على البوابة المُدارة لكل مجموعة: نطاقاتك الخاصة والنطاقات المربوطة والأسماء الإضافية معًا | 20 | 100 |
تُحتسب المجموعة التي ما زالت قيد الحذف ضمن المجموعات في مساحة العمل، ويبقى اسمها محجوزًا حتى تزول. وتحدّد خطة مالك مساحة العمل العمود الذي ينطبق، وتستخدم العُقد العاملة ذات الحجم المدفوع حصتها أيضًا: انظر الخطط والحدود.
لكل مجموعة
| مجمّعات العُقد عند إنشاء المجموعة | حتى 10 |
| العُقد العاملة في كل مجمّع | من 1 إلى 20 |
| التسميات والقيود في كل مجمّع | 20 تسمية، و10 قيود |
| وحدات التخزين المرفقة بعقدة عاملة واحدة | 24 |
| وحدات التخزين المحتفظ بها في كل مساحة عمل | ضعف عدد وحدات التخزين لكل مجموعة في الخطة |
| موزّعات الحمل | واحد لكل خدمة من نوع LoadBalancer، من موزّعات الحمل في مساحة العمل: 1 في Free، و5 في Pro، و20 في Scale |
المنافذ لكل خدمة LoadBalancer | 5؛ والمنفذ المفتوح على TCP وUDP معًا يُحتسب مرتين |
| منفذ العقدة المحجوز | 30080، تستخدمه البوابة المُدارة |
| الشبكات المصرّح لها بالوصول إلى الـ API | 20 |
| ملفات kubeconfig | شهادة صالحة 12 ساعة، أو ملف ذاتي التجديد يجلب اعتمادًا صالحًا ساعة واحدة بمفتاح صالح لعام |
حدود الطلبات
| الحد | |
|---|---|
| تنزيل ملفات kubeconfig | 10 كل 10 دقائق، لكل شخص |
| تجديد اعتماد ملف kubeconfig ذاتي التجديد | 120 في الدقيقة، لكل ملف kubeconfig |
| القراءات في لوحة المجموعة | 240 في الدقيقة لكل شخص، و600 في الدقيقة لكل مجموعة |
| سجلات الحاويات | 30 في الدقيقة، لكل شخص |
| تكبير وحدات التخزين | 20 كل 10 دقائق، لكل شخص |
| تغييرات البوابة المُدارة | 30 في الدقيقة، لكل مجموعة |
| تغييرات الوصول إلى الـ API | 20 في الدقيقة، لكل مجموعة |
| منح الوصول | 30 في الدقيقة، لكل شخص |
| تغييرات الإعدادات (حماية الحذف، أمان الـ Pods) | 20 في الدقيقة، لكل مجموعة |
| إعدادات موزّع الحمل من الخدمات | 30 في الدقيقة، لكل مجموعة |
بعد تجاوز الحد تعرض لوحة التحكم طلبات كثيرة جدًا. يرجى الانتظار قبل إعادة المحاولة.، وتُطبَّق إعدادات الخدمة بعد ثوانٍ.
استكشاف الأخطاء وإصلاحها
حالة المجموعة
| الحالة | المعنى | ما العمل |
|---|---|---|
| في الانتظار | تنتظر البدء | انتظر |
| قيد الإنشاء | تُبنى: حجز العناوين، وتشغيل مستوى التحكم، وضمّ العقد العاملة | انتظر |
| جاهزة | كل العُقد جاهزة وخدمات المجموعة نفسها تعمل | |
| قيد التحديث | يجري تغيير في العُقد العاملة أو مجمّعات العُقد، أو تُستبدل عقدة عاملة توقفت عن العمل، أو يُعاد تشغيل مستوى التحكم بأمان الـ Pods؛ وتستمر المجموعة في الخدمة | انتظر |
| متدهورة | لم يكتمل تغيير في العُقد العاملة أو استبدال عقدة عاملة في الوقت المحدد، أو تعذّر تفعيل أمان الـ Pods؛ وتبقى العُقد العاملة الأخرى تعمل | غيّر مجمّع العُقد مجددًا، أو فعّل أمان الـ Pods من جديد، أو تواصل مع الدعم. وعبر الـ API أو MCP، يستأنف ضبطُ العدد الحالي للعُقد العاملة في المجمّع تغييرًا لم يكتمل |
| فشلت | فشل إعداد المجموعة | احذفها وأنشئها من جديد، أو تواصل مع الدعم |
| قيد الحذف | تُحذف | انتظر |
وأثناء إنشاء المجموعة أو تغييرها، قد تعرض صفحة نظرة عامة أيضًا بانتظار توفر سعة لوضع عُقد المجموعة. أو واجه إعداد المجموعة مشكلة، وتجري إعادة المحاولة.: وتواصل المنصّة المحاولة وحدها. أما توقفت إحدى العُقد العاملة عن الاستجابة ويجري استبدالها. فتعني أن المنصّة تستبدل عقدة عاملة: انظر حين تتوقف عقدة عاملة عن العمل.
خدمة LoadBalancer بلا عنوان IP خارجي
اقرأ أحداث الخدمة:
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أي سبب آخر، مثل حجم يتجاوز أكبر وحدة تخزين في خطتك أو نفاد حصة القرص:
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.