لماذا لا نستخدم Helm
OpenClaw عبارة عن حاوية واحدة مع بعض ملفات الإعداد. يكمن التخصيص المهم في محتوى الوكيل (ملفات Markdown وSkills وتجاوزات الإعداد)، وليس في قوالب البنية التحتية. يدير Kustomize التراكبات دون الأعباء الإضافية لمخطط Helm. أضف مخطط Helm فوق هذه البيانات التعريفية إذا أصبحت عملية النشر لديك أكثر تعقيدًا.ما تحتاج إليه
- مجموعة Kubernetes قيد التشغيل (AKS أو EKS أو GKE أو k3s أو kind أو OpenShift، وما إلى ذلك)
- أداة
kubectlمتصلة بمجموعتك - مفتاح API لموفر نموذج واحد على الأقل
البدء السريع
deploy.sh مصادقة بالرمز المميز افتراضيًا. استرجع رمز Gateway المميز المُنشأ لواجهة التحكم:
./scripts/k8s/deploy.sh --show-token الرمز المميز بعد النشر.
الاختبار المحلي باستخدام Kind
إذا لم تكن لديك مجموعة، فأنشئ واحدة محليًا باستخدام Kind:./scripts/k8s/deploy.sh.
خطوة بخطوة
1) النشر
الخيار أ: مفتاح API في البيئة (خطوة واحدة)--show-token إلى أي من الأمرين لطباعة الرمز المميز إلى stdout للاختبار المحلي.
2) الوصول إلى Gateway
ما يتم نشره
التخصيص
تعليمات الوكيل
عدّل ملفAGENTS.md في scripts/k8s/manifests/configmap.yaml وأعد النشر:
إعداد Gateway
عدّلopenclaw.json في scripts/k8s/manifests/configmap.yaml. راجع إعداد Gateway للاطلاع على المرجع الكامل.
إضافة موفري نماذج
أعد التشغيل بعد تصدير مفاتيح إضافية:مساحة أسماء مخصصة
صورة مخصصة
عدّل حقلimage في scripts/k8s/manifests/deployment.yaml:
الإتاحة خارج إعادة توجيه المنفذ
تربط البيانات التعريفية الافتراضية Gateway بعنوان local loopback داخل الحاوية. يعمل ذلك معkubectl port-forward، لكنه لا يعمل مع Kubernetes Service أو مسار Ingress يحتاج إلى الوصول إلى عنوان IP الخاص بالحاوية مباشرةً.
لإتاحة Gateway عبر Ingress أو موازن تحميل:
- غيّر ربط Gateway في
scripts/k8s/manifests/configmap.yamlمنloopbackإلى ربط لا يستخدم local loopback ويتوافق مع نموذج النشر لديك. - أبقِ مصادقة Gateway مفعّلة واستخدم نقطة دخول مناسبة تنهي اتصال TLS.
- اضبط واجهة التحكم للوصول عن بُعد باستخدام نموذج أمان الويب المدعوم (مثل HTTPS/Tailscale Serve وتحديد الأصول المسموح بها صراحةً عند الحاجة).
إعادة النشر
الإزالة
ملاحظات معمارية
- يرتبط Gateway بعنوان local loopback داخل الحاوية افتراضيًا، لذا فإن الإعداد المضمّن مخصص لاستخدام
kubectl port-forward. - لا توجد موارد على نطاق المجموعة؛ يوجد كل شيء ضمن مساحة أسماء واحدة.
- تعزيز الأمان:
readOnlyRootFilesystem، وإمكاناتdrop: ALL، ومستخدم غير جذر (UID 1000). - يحافظ الإعداد الافتراضي على واجهة التحكم ضمن مسار الوصول المحلي الأكثر أمانًا: ربط local loopback مع
kubectl port-forwardإلىhttp://127.0.0.1:18789. - إذا انتقلت إلى الوصول من خارج المضيف المحلي، فاستخدم النموذج البعيد المدعوم: HTTPS/Tailscale مع ربط Gateway المناسب وإعدادات أصل واجهة التحكم.
- تُنشأ الأسرار في دليل مؤقت وتُطبّق مباشرةً على المجموعة؛ ولا تُكتب أي مواد سرية في نسخة المستودع المحلية.