النشر7 دقيقة قراءة

K3s: كوبيرنيتيس خفيف على VPS الخاص بك

أصبحت كوبيرنيتيس المعيار الرئيسي لتنسيق الحاويات، غير أن التثبيت القياسي يتطلب عدة غيغابايت من ذاكرة الوصول العشوائي وإعدادًا معقدًا. K3s، التوزيعة الخفيفة المعتمدة من CNCF بواسطة Rancher/SUSE، تغيّر هذه المعادلة: ملف ثنائي واحد بحجم 60 ميغابايت يكفي لتشغيل كتلة كاملة على VPS بذاكرة 2 غيغابايت. يأخذك هذا الدليل خطوة بخطوة من التثبيت حتى تشغيل أول تطبيق لك عبر HTTPS بواسطة Traefik.

لماذا تختار K3s بدلًا من كوبيرنيتيس الكاملة على VPS

تأتي كوبيرنيتيس القياسية بمكوّنات ثقيلة متعددة تعمل في آنٍ واحد وتستهلك بسهولة من 2 إلى 4 غيغابايت من الذاكرة عند الإقلاع قبل أن تبدأ تطبيقاتك. على VPS بذاكرة 2 غيغابايت لا تكاد تبقى موارد لأحمال العمل الفعلية. يعالج K3s هذه المشكلة بتجميع جميع مكوّنات مستوى التحكم في ملف ثنائي واحد، واستبدال etcd بـSQLite للكتل الصغيرة. النتيجة: كتلة كوبيرنيتيس معتمدة من CNCF بالكامل، متوافقة مع kubectl وhelm، تُثبَّت في أقل من دقيقتين.

المزايا الفعلية لـ K3s

  • **ملف ثنائي واحد بحجم 60 ميغابايت** يتضمن وقت تشغيل containerd وخدمة CoreDNS ومزوّد التخزين المحلي، دون تبعيات نظام إضافية.
  • **Traefik مدمج** كمتحكم ingress افتراضي، جاهز لإنهاء TLS دون إعداد إضافي.
  • **توافق أصيل** مع kubectl وhelm فور انتهاء التثبيت دون أي تعديل.
  • **تحديثات مبسّطة**: يكفي في معظم الأحيان استبدال الملف الثنائي وإعادة تشغيل الخدمة.
  • **اعتماد CNCF الإصدار 1‎.32** الذي يضمن الامتثال لواجهة برمجة كوبيرنيتيس القياسية.

المتطلبات الأساسية قبل البدء

لمتابعة هذا الدليل تحتاج إلى VPS بذاكرة وصول عشوائي لا تقل عن 2 غيغابايت ومعالج افتراضي واحد يعمل بنظام Ubuntu 22‎.04 أو Debian 12. يجب فتح المنفذ 6443 في جدار الحماية حتى يتمكن kubectl من التواصل مع واجهة برمجة الكتلة من جهازك المحلي. إن كنت تخطط لكشف الخدمات عبر HTTPS، جهّز اسم نطاق يشير إلى عنوان IP الخاص بـVPS، كـ‎your-domain‎.com. يُكمل القائمة اتصال SSH بصلاحيات root أو sudo.

من التثبيت إلى أول تطبيق عبر HTTPS

01

توفير VPS وفتح المنافذ المطلوبة

اتصل بـVPS عبر SSH، ثم افتح المنافذ 80 و443 و6443 في جدار الحماية. على Ubuntu مع ufw: ufw allow 80/tcp وufw allow 443/tcp وufw allow 6443/tcp. تأكد من تحديث النظام بـapt update && apt upgrade -y قبل المتابعة.

02

تثبيت K3s بأمر واحد

شغّل السكريبت الرسمي: curl -sfL https://get‎.k3s‎.io | sh -. يقوم السكريبت بتنزيل الملف الثنائي وتثبيت خدمة systemd باسم k3s وتشغيل مستوى التحكم. تحقق من حالة الخدمة بـsystemctl status k3s. تكون العقدة جاهزة عندما تظهر حالتها كـReady.

03

ضبط kubectl على جهازك المحلي

انسخ ملف kubeconfig من VPS: scp root@your-domain‎.com:/etc/rancher/k3s/k3s‎.yaml ~/‎.kube/config. استبدل 127‎.0‎.0‎.1 بعنوان IP العام لـVPS في هذا الملف. اختبر الاتصال بـkubectl get nodes: يجب أن ترى عقدتك الوحيدة بحالة Ready.

04

نشر تطبيق تجريبي

أنشئ ملفًا باسم app‎.yaml يحتوي على Deployment وخدمة ClusterIP تكشف تطبيقك على المنفذ 80. طبّقه بـkubectl apply -f app‎.yaml، ثم تحقق من بدء تشغيل الـpod بـkubectl get pods.

05

ضبط Traefik لـingress عبر HTTPS

يتضمن K3s توزيعة Traefik كـIngressController. أنشئ كائن Ingress يشير إلى الخدمة من الخطوة السابقة مع الإشارة kubernetes‎.io/ingress‎.class: traefik واسم مضيفك ‎your-domain‎.com. طبّق بـkubectl apply -f ingress‎.yaml وتحقق من وصول HTTPS في متصفحك.

في بيئة الإنتاج، تجنب الاعتماد على الرمز المميز الافتراضي المخزّن في /var/lib/rancher/k3s/server/node-token للاتصالات غير المراقبة. استخدم k3s token لإنشاء رموز مميزة قصيرة الصلاحية عند إضافة عقد العمال. فعّل أيضًا سجلات التدقيق في كوبيرنيتيس بتمرير --kube-apiserver-arg=audit-log-path=/var/log/k3s-audit‎.log إلى الخدمة عند الإقلاع.

K3s كجسر نحو كوبيرنيتيس الكاملة

يشغل K3s موقعًا منطقيًا بين Docker Compose المناسب للتطبيقات البسيطة على مضيف واحد، وكتلة كوبيرنيتيس الكاملة التي تتطلب بنية تحتية مخصصة. يتيح لك بناء عادات كوبيرنيتيس في بيئة حقيقية الحجم دون تكاليف كتلة متعددة العقد. حين ينمو حجم حركة المرور أو الفريق، ستكون الهجرة نحو كتلة upstream مباشرة: ملفات YAML وقوالب helm التي كتبتها ستعمل دون تعديل. لمعرفة المزيد حول ضبط Traefik مع K3s، راجع دليلنا حول النشر باستخدام Traefik.

VPS جاهز لـK3s

تأتي VPS السحابية لدينا مزوّدة بـUbuntu 22‎.04 أو Debian 12 وعنوان IP مخصص وصلاحية root فورية، وهو كل ما تحتاجه لإطلاق أول كتلة K3s لديك في دقائق.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو راسل فريقنا — الدعم بـ العربية والفرنسية والإنجليزية.