ابدأ مع Kubernetes
تشغّل مجموعة Kubernetes حاوياتك على عُقد عاملة داخل الشبكة الخاصة لمساحة عملك. تشغّل المنصّة مستوى التحكم، وتراقب العُقد العاملة وتستبدل العقدة التي تتوقف عن العمل؛ وأنت تحصل على ملف kubeconfig وتستخدم kubectl أو Helm أو أي أداة تعرفها. وتأتي كل مجموعة ببوابة مُدارة تقدّم مواقعك وواجهاتك البرمجية عبر HTTPS، على اسم المضيف الخاص بالمجموعة أو على نطاقك الخاص. يأخذك هذا الدليل من لا شيء إلى أول تطبيق يعمل على نطاقك الخاص.
قبل أن تبدأ
- دور مالك أو مسؤول أو مطوّر في مساحة العمل. يستطيع المشاهد أن يطّلع، لا أن يُنشئ.
- أن تكون الشبكة الخاصة لمساحة العمل جاهزة. تُنشأ أول مرة تشغّل فيها شيئًا، وينتظرها النموذج من تلقاء نفسه.
kubectlعلى جهازك.
تسمح الخطة المجانية بمجموعة واحدة بعقدة عاملة واحدة من الحجم المجاني. وتسمح الخطط المدفوعة بمجموعات أكثر وعُقد عاملة أكبر وبالتوافر العالي: انظر الخطط والحدود.
1. أنشئ مجموعة
افتح Kubernetes في مساحة عملك واختر مجموعة جديدة. في النموذج أربع خطوات على صفحة واحدة، كلٌّ منها معبّأة مسبقًا بقيمة مناسبة، وإلى جانبها الملخّص.
- الأساسيات: الاسم، من 3 إلى 40 من الأحرف اللاتينية الصغيرة والأرقام والشرطات، مثل
shop. يُستخدم في تسمية عُقد المجموعة واسم مضيفها، ولا يمكن تغييره لاحقًا. أبقِ الإصدار الموسوم موصى به، والموقع الذي تعمل فيه العُقد، والشبكة، أي الشبكة الخاصة لمساحة عملك. - التوافر: قياسي، للتطوير ولمعظم أحمال العمل، أو توافر عالٍ، فتبقى واجهة المجموعة البرمجية تجيب حتى لو تعطّل أحد المضيفات. يأتي التوافر العالي مع خطة مدفوعة.
- مجموعات العُقد: أول مجمّع في المجموعة، واسمه
default، مع حجم العقدة العاملة وعدد العُقد العاملة. والتسميات والقيود اختيارية. اختر إضافة مجمّع آخر لأحمال العمل التي تحتاج إلى أجهزة خاصة بها. - الإضافات: أبقِ البوابة المُدارة مفعّلة. فهي تقدّم مسارات HTTP في المجموعة عبر HTTPS مع اسم مضيف مجاني وشهادات، ولا تستخدم أي موزّع حمل.
يعرض الملخّص عُقدك العاملة، وكم عقدة عاملة وكم مجموعة تسمح بها خطتك، وتقدير الدفع حسب الاستخدام. اختر إنشاء المجموعة.
تنتقل المجموعة من في الانتظار إلى قيد الإنشاء ثم إلى جاهزة خلال دقائق، ويعرض قسم نظرة عامة فيها كل خطوة لحظة حدوثها.
2. اتصل عبر kubectl
افتح المجموعة، واذهب إلى الوصول واختر تنزيل kubeconfig:
export KUBECONFIG=~/Downloads/shop.kubeconfig
kubectl auth whoami
kubectl get nodes
يحمل ملف kubeconfig دورك أنت في المجموعة، ويجدّد بيانات اعتماده بنفسه عبر sh وcurl. وعلى جهاز يخلو منهما اختر kubeconfig لمدة 12 ساعة بدلًا منه. يتطلّب سرد العُقد دور المسؤول في المجموعة: فإن كنت محرّرًا أو مشاهدًا فشغّل kubectl get pods. انظر الوصول إلى المجموعة.
3. انشر أول تطبيق
احفظ ما يلي باسم hello.yaml: خادم ويب صغير، وخدمته، ومسار إليه على البوابة المُدارة.
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello
spec:
replicas: 2
selector:
matchLabels:
app: hello
template:
metadata:
labels:
app: hello
spec:
containers:
- name: hello
image: nginx:1.27-alpine
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: hello
spec:
selector:
app: hello
ports:
- port: 80
targetPort: 80
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: hello
spec:
parentRefs:
- name: sahabti
namespace: sahabti-gateway
rules:
- backendRefs:
- name: hello
port: 80
kubectl apply -f hello.yaml
افتح الخدمات والمسارات في المجموعة. تحت البوابة المُدارة يظهر اسم المضيف الخاص بالمجموعة، وهو اسمها مع لاحقة قصيرة خاصة بها مثل shop-k3x9mq.sahabti.app، بحالة يعمل حين يُقدَّم. افتحه باسم المضيف الذي تعرضه مجموعتك:
curl https://shop-k3x9mq.sahabti.app/
ويعرض قسم أحمال العمل في المجموعة الحاويات وسجلاتها. أما قواعد البيانات وخدمات TCP أو UDP الأخرى فاستخدم لها خدمة من نوع LoadBalancer: انظر أتِحه للعالم.
4. أضف نطاقك الخاص
تقدّم المجموعة اسم مضيف خاصًا بك، مثل shop.example.com، بسجل CNAME وحده، ولا شيء تتحقق منه في صفحة النطاقات.
- في الخدمات والمسارات، تحت البوابة المُدارة ← استخدام نطاقك الخاص، أدخل
shop.example.comواختر إضافة اسم المضيف. - أنشئ لدى مزوّد DNS السجلَّ الذي تعرضه لوحة التحكم، وفيه اسم مضيف مجموعتك معبّأً:
| النوع | الاسم | القيمة |
|---|---|---|
| CNAME | shop.example.com | shop-k3x9mq.sahabti.app |
- سمِّ اسم المضيف في مسارك: أضف
hostnames: [shop.example.com]تحتspecفي HTTPRoute، وطبّقه من جديد.
ينتقل اسم المضيف من بانتظار DNS إلى يجري إصدار الشهادة ثم إلى يعمل، عادةً خلال دقائق. أبقِ السجل في مكانه، واجعله DNS فقط إن عرض مزوّدك أن يمرّره عبر وكيله. ولا يقبل النطاق الجذر مثل example.com سجل CNAME، فقدّم www.example.com بدلًا منه. انظر نطاقك الخاص.
5. فعّل الأمان
افتح الأمان في المجموعة لتقرّر ما تسمح البوابة المُدارة بمروره إلى مواقعك، قبل أن يصل أي طلب إلى حاوياتك:
- تحت ملف الأمان اختر قياسي. يحظر طلبات الملفات السرّية ولوحات الإدارة الشائعة، والطلبات ذات المحتوى الضخم والعملاء البطيئين. ويناسب صارم واجهةً برمجية أو أداة إدارة.
- أضف ما تحتاج إليه: قواعد جدار الحماية، وحدود المعدّل، وتسجيل الدخول بكلمة مرور، وCORS، والقواعد المُدارة، لكل أسماء المضيفين أو لبعضها فقط.
- اختر مراجعة وحفظ، وراجع قائمة التغييرات، ثم أكّد. تظهر كل قاعدة بحالة جارٍ التطبيق، ثم مُطبَّقة بعد نحو دقيقة.
انظر أمان بوابة Kubernetes لكل إعداد، مع أمثلة.
6. أضف عُقدًا عاملة ومجمّعات عُقد
افتح العُقد في المجموعة:
- اختر تعديل على مجمّع لتغيير عدد العُقد العاملة فيه، أو تسمياته وقيوده. تُفرَّغ العُقد العاملة المُزالة أولًا.
- اختر إضافة مجمّع عُقد لعُقد عاملة بحجم آخر أو في منطقة أخرى، بتسميات وقيود خاصة بها.
تُحتسب العُقد العاملة في كل المجمّعات من حدّ العُقد العاملة لكل مجموعة في خطتك. وتظهر المجموعة بحالة قيد التحديث أثناء التغيير، وتواصل تقديم خدماتها. انظر مجمّعات عُقد Kubernetes.
عبر PromptOps
في مساحة عمل فعّلت PromptOps، اطلب ذلك في المحادثة. وهو يسألك قبل أن يُنشئ أو يغيّر أي شيء:
- «أنشئ مجموعة Kubernetes باسم shop بعقدتين عاملتين من الحجم Small.»
- «زِد المجمّع default في المجموعة shop إلى 3 عُقد عاملة.»
- «أضف shop.example.com إلى بوابة المجموعة shop.»
- «لماذا تعيد الحاوية hello في المجموعة shop التشغيل باستمرار؟»
عبر الواجهة البرمجية أو MCP
أنشئ مفتاح API بإجراءات kubernetes، ثم اعرف معرّف شبكتك عبر GET /v1/networks:
curl "https://api.sahabti.com/v1/networks?orgId=$WORKSPACE_ID" \
-H "x-api-key: $SAHABTI_TOKEN"
احفظ المجموعة باسم cluster.json، مع معرّف مساحة عملك ومعرّف شبكتك:
{
"orgId": "<workspace id>",
"name": "shop",
"networkId": "<network id>",
"pools": [{ "name": "default", "size": "small", "count": 2 }]
}
curl -X POST https://api.sahabti.com/v1/kubernetes/clusters \
-H "x-api-key: $SAHABTI_TOKEN" \
-H "Content-Type: application/json" \
-d @cluster.json
يحمل مثال صفحة مفاتيح API معرّف مساحة عملك معبّأً. وعبر MCP تقبل الأداة create_kubernetes_cluster الحقول نفسها؛ وتضيف add_kubernetes_gateway_cname اسم مضيفك الخاص، وتطبّق apply_kubernetes_resources ملف manifest. ولا يحصل أي مفتاح على ملف kubeconfig أبدًا: نزّله من لوحة التحكم.
ما التكلفة
العقدة العاملة المجانية بلا تكلفة. أما العُقد العاملة ذات الحجم المدفوع والتوافر العالي ووحدات التخزين فتُحتسب بالساعة، ويعرض الملخّص التقدير قبل أن تُنشئ. ولا تستخدم العُقد العاملة المدفوعة حصتك بعد تفعيل فوترة الاستخدام لمساحة العمل؛ وحتى ذلك الحين تُحتسب منها. انظر أسعار Kubernetes واستخدامه والخطط والدفع حسب الاستهلاك وصفحة الأسعار.
الفحوص الأولى
- تظهر المجموعة بحالة جاهزة، ويسرد
kubectl get nodesكل عقدة عاملة بحالةReady. - يعرض
kubectl auth whoamiبريدك الإلكتروني ومجموعة دورك. - في الخدمات والمسارات يظهر كل اسم مضيف بحالة يعمل.
- في الأمان تظهر كل قاعدة بحالة مُطبَّقة.
- يسرد قسم الرؤى ما يلزم إصلاحه قبل الترقية التالية.
الخطوات التالية
- Kubernetes: ما نديره عنك، والحدود، وحذف المجموعة
- أتِح خدمات HTTP للعالم: المسارات وIngress وأسماء المضيفين
- وحدات تخزين Kubernetes: تخزين دائم لحاوياتك
- لوحة Kubernetes: أحمال العمل والسجلات والأحداث في لوحة التحكم
- ترقيات Kubernetes: إصدارات أحدث في مكانها
- مرجع Kubernetes: الإصدارات والحدود وحل المشكلات