The Vision →

نحو حوسبة سيادية: دليل بناء سحابة خاصة على خادم افتراضي بأدوات مفتوحة المصدر

من عقدة VPS وحيدة إلى منصة Kubernetes سيادية — خارطة طريق ميدانية بأدوات مفتوحة المصدر للسيطرة الكاملة على البيانات والتكاليف والبنية التحتية.

·
AI Generated Featured Image

استمع إلى هذا المقال

تسجيل صوتي عالي الدقة بواسطة الذكاء الاصطناعي

0:00
10:39

لم تعد السحابة الخاصة (Private Cloud) رفاهية للمؤسسات الكبرى، بل باتت ضرورة استراتيجية لأي مطوّر أو فريق يسعى إلى السيادة الكاملة على البيانات، والتحكم المطلق في التكاليف، والاستقلالية عن قرارات مزودي الخدمة الكبار. في هذا الدليل، نرسم خارطة طريق ميدانية مجربة لبناء سحابة خاصة إنتاجية على خادم افتراضي واحد (VPS) — أو مجموعة صغيرة — باستخدام أدوات مفتوحة المصدر حصرياً، دون أي اعتماد على خدمات propietary.

الهدف ليس محاكاة AWS أو Azure، بل بناء منصة تخدم احتياجاتك الحقيقية: حاويات مدارة، توازن أحمال، تخزين مستمر، مراقبة، ونشر مستمر — كل ذلك تحت سيطرتك الكاملة، وعلى أجهزة تملكها أو تستأجرها بشروطك.

لماذا السيادة السحابية الآن؟

A stunning fluffy cumulus cloud against a clear blue sky, symbolizing tranquility.
Photo by Mahmoud Zakariya on Pexels

ثلاثة متغيرات قلبت الموازين في السنوات الأخيرة: أولاً، نضج المشاريع المفتوحة المصدر (Kubernetes، Docker، Talos، Longhorn، Cilium) إلى درجة تجعلها قابلة للإنتاج دون فرق DevOps كبيرة. ثانياً، ارتفاع تكاليف السحابة العامة بشكل غير خطي مع النمو — خاصة في الخروج (egress)، والتخزين، والـ IP العام. ثالثاً، تشريعات السيادة الرقمية (GDPR، قانون البيانات السعودي، قانون السيبراني الإماراتي) التي تجعل بقاء البيانات داخل الحدود القانونية مطلباً تنظيمياً لا خياراً تقنياً فقط.

السحابة الخاصة على VPS تجيب على الثلاثة: تكلفة ثابتة ومتوقعة، بيانات لا تغادر شبكة الـ VPC الخاصة بك، ومنصة قابلة للتوسع أفقياً عند الحاجة.

هندسة العقدة الوحيدة: الحد الأدنى القابل للإنتاج

يمكنك البدء بعقدة VPS واحدة قوية، ثم التوسع لاحقاً. المواصفات الموصى بها كخط أساس (Baseline):

  • المعالج (vCPU): 8–16 نواة (AMD EPYC أو Intel Xeon scalable)
  • الذاكرة (RAM): 32–64 جيجابايت DDR5 ECC
  • التخزين: 500 جيجابايت – 1 تيرابايت NVMe (مع نسخ احتياطي خارجي)
  • الشبكة: 1 جيجابت/ثانية مضمونة، IPv4 ثابت، IPv6 /64
  • نظام التشغيل: Ubuntu 24.04 LTS أو Debian 12 (Bookworm) — مثبتة تنصيباً نظيفاً
bash
# تدقيق سريع لقدرات العقدة
lscpu | grep -E 'Model name|CPU\(s\):|Thread'
free -h
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
ip -br addr show

اختيار توزيعة Kubernetes خفيفة الوزن

للعقدة الوحيدة أو العناقيد الصغيرة، لا تحتاج إلى kubeadm المعقد. الخيارات المثلى:

  • k3s (Rancher/SUSE): ثنائي واحد، أقل من 100 ميغابايت، SQLite افتراضياً، يدعم GPU و ARM — مثالي لـ VPS مفرد.
  • Talos Linux: نظام تشغيل غير قابل للتغيير (immutable) مصمم لـ Kubernetes، يدير نفسه عبر API، لا shell ولا SSH — أعلى أماناً وأقل صيانة.
  • MicroK8s (Canonical): حزمة Snap، وحدات إضافية مدمجة (Storage، Registry، Dashboard)، جيد للتجربة السريعة.

التوصية: ابدأ بـ k3s للبساطة، واهجر إلى Talos عندما تصل إلى 3 عقد أو أكثر.

"السيادة التقنية لا تعني بناء كل شيء من الصفر، بل اختيار الأدوات التي تمنحك حق المغادرة في أي لحظة."

— هشام خليف

طبقة الحاويات: Docker و containerd

k3s يأتي مع containerd مدمجاً، لكنك قد تحتاج Docker CLI للتطوير المحلي وبناء الصور. التثبيت الموصى به:

bash
# تثبيت Docker Engine (للبناء والدفع)
curl -fsSL https://get.docker.com | sh
# تفعيل BuildKit للصور الأسرع والأصغر
echo '{"features": {"buildkit": true}}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

# التحقق من تكامل containerd مع k3s
sudo ctr -n k8s.io images ls

التخزين المستمر: Longhorn — قرص موزع على عقدة واحدة

أكبر تحدٍ في السحابة الخاصة على VPS هو التخزين المستمر (Persistent Volumes). Longhorn (من Rancher) يحول الأقراص المحلية إلى تخزين موزع قابل للاستنساخ والاستعادة، حتى على عقدة واحدة:

bash
# تثبيت Longhorn عبر Helm
helm repo add longhorn https://charts.longhorn.io
helm repo update
helm install longhorn longhorn/longhorn \
  --namespace longhorn-system \
  --create-namespace \
  --set defaultSettings.defaultReplicaCount=1 \
  --set defaultSettings.backupTarget=s3://your-bucket@region/ \
  --set persistence.defaultClass=true

# التحقق
kubectl -n longhorn-system get pods -w

مع defaultReplicaCount=1، يعمل Longhorn على عقدة واحدة بكفاءة، ويمنحك استنساخاً (Snapshots)، استعادة (Restore)، ونسخاً احتياطياً مجدولاً إلى S3 متوافق (MinIO، Wasabi، Backblaze B2).

ملاحظة

لا تعتمد على قرص VPS وحيد دون نسخ احتياطي خارجي. اضبط Longhorn ليرفع النسخ الاحتياطية يومياً إلى مستودع S3 خارجي — تكلفة تيرابايت واحد على Wasabi تبلغ 6.99 دولار شهرياً، تأمين رخيص ضد فقدان البيانات.

الشبكة الداخلية: Cilium CNI — رؤية eBPF بدون تعقيد

A classic MS-DOS terminal screen displayed on a laptop keyboard with vivid illumination.
Photo by Rafael Minguet Delgado on Pexels

k3s يأتي مع Flannel افتراضياً، لكن Cilium يجلب موازنة أحمال L3/L4، تشفير WireGuard بين العقد، وسياسات شبكة قائمة على الهوية (Identity-aware) — كلها تعمل في نواة لينكس عبر eBPF:

bash
# تعطيل Flannel في k3s
# أضف إلى /etc/rancher/k3s/config.yaml:
# flannel-backend: none
# cluster-cidr: 10.42.0.0/16
# service-cidr: 10.43.0.0/16

# تثبيت Cilium
helm repo add cilium https://helm.cilium.io
helm install cilium cilium/cilium \
  --namespace kube-system \
  --set kubeProxyReplacement=true \
  --set encryption.enabled=true \
  --set encryption.type=wireguard \
  --set l7Proxy=true \
  --set hubble.enabled=true \
  --set hubble.relay.enabled=true \
  --set hubble.ui.enabled=true

النتيجة: مراقبة تدفق الحزم عبر hubble observe، تشفير تلقائي بين العقد عند التوسع، وسياسات مثل "قاعدة البيانات لا تقبل إلا من命名空间 backend".

المدخل (Ingress) وشهادات TLS: Traefik + Let's Encrypt

Traefik مدمج في k3s، لكن تفعيله للإنتاج يتطلب إعدادات دقيقة:

yaml

# traefik-values.yaml
ports:
  web:
    exposedPort: 80
    nodePort: 30080
  websecure:
    exposedPort: 443
    nodePort: 30443
providers:
  kubernetesCRD:
    enabled: true
  kubernetesIngress:
    enabled: true
certificatesResolvers:
  letsencrypt:
    acme:
      email: admin@yourdomain.com
      storage: /data/acme.json
      httpChallenge:
        entryPoint: web
bash
# إنشاء PVC لشهادات ACME
kubectl apply -f -     
SPREAD THE SIGNAL

Know someone who would love this?

Share this journey and keep the conversation moving.

YOUR TAKE

What did this spark in you?

Every perspective adds another layer to the story.

Select an echo above to share your reflection.
Join 1 reader who shared their reaction. Top echo: Mind Blown (1)
CONTINUE THE CONVERSATION

Want to say more?

Tell us which idea stayed with you.

Comments (0)

Leave a Comment

Security Verification
Loading code…
Type the random letters and numbers shown above.

Comments are moderated and will appear after approval.

Album artwork
NOW PLAYING:
HK Media Radio
Tap play to tune in
PREV: HK Broadcast Stream • UP NEXT: Live Music Mix