How-To Guides

نشر كوبرنتيس على أوبونتو: دليل تقني شامل لمهندسي ديف أوبس

أصبحت إدارة التطبيقات الحاوية حجر الزاوية في تسليم البرمجيات الحديثة. بينما يسهل دوكير (Docker) تغليف التطبيقات، يوفر كوبرنتيس (Kubernetes)، ويُختصر غالباً بـ K8s، البنية التحتية القوية اللازمة لإدارة وتوسيع نطاق تلك الحاويات وتنسيقها عبر مجموعة من الآلات. بالنسبة لمسؤولي الأنظمة والمطورين الذين يفضلون بيئة مستقرة تعتمد على Debian، يظل أوبونتو (Ubuntu) الخيار الأول لاستضافة عناقيد كوبرنتيس. يوضح هذا الدليل العملية التقنية لنشر لوحة تحكم عالية التوفر (High-Availability Control Plane) وعقد عمالة (Worker Nodes) على أوبونتو 20.04 LTS أو 22.04 LTS.

المتطلبات المسبقة وتحضير النظام

قبل الغوص في عملية التثبيت، تأكد من امتلاكك لخادمين على الأقل يعملان بنظام أوبونتو (عقدة رئيسية/لوحة تحكم واحدة وعقدة عمالة واحدة أو أكثر) مع إمكانية الوصول عبر SSH. يُنصح بشدة بتعطيل أدوات جدار النار لتجنب التداخل أثناء الإعداد، أو تكوين منافذ محددة لحركة مرور كوبرنتيس. يجب تنفيذ الخطوات التالية على جميع العقد في عنقودك.

أولاً، قم بتعطيل مساحة التبديل (Swap)، حيث يتطلب كوبرنتيس تخصيص ذاكرة متجاورة ولا يمكنه العمل مع تفعيل التبديل:

sudo swapoff -a
# لجعل هذا الإعداد دائماً، قم بتعليق سطر التبديل في ملف /etc/fstab
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

بعد ذلك، قم بتحميل وحدات النواة (Kernel Modules) اللازمة. يعتمد كوبرنتيس على overlay للتخزين و br_netfilter للشبكة.

cat <

لضمان عمل الشبكة بشكل صحيح، قم بتعيين معاملات sysctl بحيث ترى الجسور (Bridges) حركة المرور ويتم تمكين توجيه IP:

cat <

تثبيت وقت التشغيل الحاوي و Kubelet

لا يدير كوبرنتيس وقت التشغيل الحاوي نفسه، بل يعتمد على أوقات تشغيل خارجية مثل containerd أو CRI-O أو Docker. سنستخدم containerd لأنه المعيار الصناعي الحالي الموصى به من قبل فريق Kubernetes SIG-Node.

ابدأ بتثبيت التبعيات وإضافة مستودع أوبونتو لـ APT الخاص بكوبرنتيس. يضمن ذلك أنك تقوم بسحب الحزم مباشرة من القناة الرسمية لـ K8s بدلاً من مستودعات أوبونتو الافتراضية، التي قد تستضيف إصدارات أقدم.

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

# إضافة مفتاح GPG الخاص بكوبرنتيس
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# إضافة المستودع
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

# تثبيت الحزم
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

تهيئة العنقود

الآن بعد تثبيت جميع المكونات، قم بتسجيل الدخول إلى عقدة التحكم الرئيسية الأساسية. استخدم kubeadm init لتهيئة العنقود. إذا كان عنقودك خلف وكيل (Proxy) أو يستخدم نطاق CIDR محدد للحاويات، فقد تحتاج إلى تعديل المعاملات.

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

بمجرد اكتمال التهيئة بنجاح، سترى مخرجات تحتوي على أمر kubeadm join. انسخ هذا الرمز المميز (Token)؛ ستحتاج إليه لإضافة عقد العمالة إلى العنقود. لبدء استخدام العنقود كمستخدم عادي، قم بتشغيل الأوامر التالية:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

نشر شبكة الحاويات (Pod Network)

يتطلب كوبرنتيس إضافة واجهة شبكة حاويات (CNI) للسماح للحاويات (Pods) بالتواصل مع بعضها البعض عبر العقد. سنقوم بنشر Flannel، وهو شبكة طبقة علوية (Overlay) بسيطة وشائعة.

kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml

تحقق من أن جميع العقد في حالة Ready (جاهزة) باستخدام:

kubectl get nodes

الخاتمة

يعد نشر كوبرنتيس على أوبونتو عملية مباشرة عند اتباع الإرشادات الرسمية والحفاظ على نهج منهجي في تكوين النظام. من خلال تعطيل التبديل، وتحميل وحدات النواة الصحيحة، واستخدام مستودع APT الرسمي لكوبرنتيس، فإنك تضع أساساً متيناً للأحمال العملية ذات المستوى الإنتاجي. تذكر تأمين عنقودك من خلال إدارة الرموز المميزة، وتكوين RBAC، وتحديث برامج العقد بانتظام. مع تشغيل عنقودك، أنت الآن جاهز لنشر بنية الخدمات المصغرة (Microservices) الأولى الخاصة بك.

Share:

© Technical Tutorials