لماذا ليس Helm؟
OpenClaw حاوية واحدة مع بعض ملفات الإعداد. التخصيص المهم يكون في محتوى الوكلاء (ملفات Markdown وSkills وتجاوزات الإعداد)، وليس في قوالب البنية التحتية. يتعامل Kustomize مع الطبقات دون عبء مخطط Helm. إذا أصبح النشر لديك أكثر تعقيدًا، يمكن وضع مخطط Helm فوق هذه البيانات التعريفية.ما تحتاجه
- عنقود Kubernetes قيد التشغيل (AKS أو EKS أو GKE أو k3s أو kind أو OpenShift، وغير ذلك)
kubectlمتصل بعنقودك- مفتاح API لمزود نماذج واحد على الأقل
البدء السريع
./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:
الإتاحة إلى ما بعد port-forward
تربط البيانات التعريفية الافتراضية Gateway بعنوان loopback داخل الحجرة. يعمل ذلك معkubectl port-forward، لكنه لا يعمل مع Kubernetes Service أو مسار Ingress يحتاج إلى الوصول إلى عنوان IP الخاص بالحجرة.
إذا أردت إتاحة Gateway عبر Ingress أو موازن تحميل:
- غيّر ربط Gateway في
scripts/k8s/manifests/configmap.yamlمنloopbackإلى ربط غير loopback يطابق نموذج النشر لديك - أبقِ مصادقة Gateway مفعّلة واستخدم نقطة دخول مناسبة تنهي TLS
- اضبط واجهة التحكم للوصول البعيد باستخدام نموذج أمان الويب المدعوم (مثل HTTPS/Tailscale Serve والأصول المسموح بها صراحة عند الحاجة)
إعادة النشر
الإزالة
ملاحظات معمارية
- يرتبط Gateway بعنوان loopback داخل الحجرة افتراضيًا، لذلك فإن الإعداد المضمّن مخصص لـ
kubectl port-forward - لا توجد موارد على مستوى العنقود؛ كل شيء موجود في مساحة أسماء واحدة
- الأمان: إمكانات
readOnlyRootFilesystemوdrop: ALLومستخدم غير root (UID 1000) - يحافظ الإعداد الافتراضي على واجهة التحكم في مسار الوصول المحلي الأكثر أمانًا: ربط loopback بالإضافة إلى
kubectl port-forwardإلىhttp://127.0.0.1:18789 - إذا تجاوزت الوصول عبر localhost، فاستخدم النموذج البعيد المدعوم: HTTPS/Tailscale مع ربط Gateway المناسب وإعدادات أصل واجهة التحكم
- تُنشأ الأسرار في دليل مؤقت وتُطبق مباشرة على العنقود؛ لا تُكتب أي مواد سرية إلى نسخة المستودع المحلية