كيفية إعداد مجموعة K3s Kubernetes على Ubuntu 22.04
مقدمة
يُعد Kubernetes أحد الأدوات المفضلة في هذا المجال لتنظيم الحاويات. ومع ذلك، قد يكون إعداد مجموعة Kubernetes من الصفر مهمة شاقة ويتطلب الكثير من التهيئة. علاوة على ذلك، هناك عدة طرق لبدء إعداد مجموعة Kubernetes، ولكن العديد منها قد يستغرق وقتًا طويلاً، إلا إذا كنت ترغب في إنشاء مجموعة إنتاج.
لتبسيط إعداد مجموعة Kubernetes وتمكين نشرها في مواقع بعيدة محدودة الموارد، مما يجعلها خيارًا مثاليًا للحوسبة الطرفية، طورت Rancher Labs توزيعة K3s. K3s هي توزيعة Kubernetes خفيفة الوزن تتيح لك تثبيت مجموعة Kubernetes باستخدام ملف ثنائي صغير في دقائق.
في هذا البرنامج التعليمي، سوف تتعلم كيفية تثبيت K3s على Ubuntu وخيارات التكوين الإضافية المتوفرة في K3s.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، ستحتاج إلى:
تم إعداد خادم Ubuntu 22.04 بذاكرة وصول عشوائي (RAM) بحجم 1 جيجابايت على الأقل من خلال اتباع دليل الإعداد الأولي لخادم Ubuntu 22.04.
الخطوة 1- تثبيت K3s
في هذه الخطوة، سوف تقوم بتثبيت الإصدار الأحدث من K3s على جهاز Ubuntu الخاص بك.
إذا كنت تستخدم تسجيل الدخول المستند إلى كلمة المرور، فقم بتسجيل الدخول إلى الخادم الخاص بك كمستخدم sudo (في هذا البرنامج التعليمي، سيكون sammy) باستخدام الأمر التالي:
$ ssh sammy@your_server_ipسپس با استفاده از دستور زیر K3 را نصب کنید.
$ curl -sfL https://get.k3s.io | sh -سيتم مطالبتك بإدخال كلمة مرور المستخدم لتشغيل البرنامج النصي.
يستخدم هذا الأمر curl لتنزيل البرنامج النصي الموجود على https://get.k3s.io، ويُشغّل البرنامج النصي عبر توجيهه إلى –sh. بعد تشغيل البرنامج النصي، يبدأ تثبيت مجموعة K3s بخيارات التكوين الافتراضية التي تُنشئ مجموعة Kubernetes أحادية العقدة.
سوف تحصل على إخراج مماثل لهذا:
[secondary_label Output]
[INFO] Finding release for channel stable
[INFO] Using v1.27.7+k3s2 as release
[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Skipping installation of SELinux RPM
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
...يُظهر مُخرَج البرنامج النصي خطوات تثبيت البرنامج النصي وتشغيله. بعد ذلك، ستتحقق من حالة خدمة K3s باستخدام systemctl للتحقق مما إذا كانت تعمل أم لا باستخدام الأمر التالي.
$ systemctl status k3sيُظهر هذا الأمر الحالة على أنها نشطة (قيد التشغيل):
[secondary_label Output]
● k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-11-27 16:52:01 UTC; 19s ago
Docs: https://k3s.io
Process: 8396 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exi>
Process: 8398 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
Process: 8399 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
Main PID: 8400 (k3s-server)
Tasks: 20
Memory: 467.3M
CPU: 12.952s
CGroup: /system.slice/k3s.service
├─8400 "/usr/local/bin/k3s server"
└─8421 "containerd " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
...في هذه المرحلة، ثبّتتَ K3s على أوبونتو لإنشاء مجموعة Kubernetes أحادية العقدة. بعد ذلك، ستُلقي نظرة على كائنات Kubernetes الافتراضية المُستخدمة في المجموعة.
الخطوة 2 - مراجعة كائنات Kubernetes الافتراضية
في هذه الخطوة، ستقوم بمراجعة كائنات Kubernetes الافتراضية التي تم نشرها بعد تثبيت K3s.
قم بتشغيل الأمر التالي لرؤية جميع كائنات Kubernetes المنتشرة في المجموعة في مساحة اسم kube. يتم تثبيت kubectl تلقائيًا أثناء تثبيت K3s وبالتالي لا يتطلب تثبيتًا منفصلاً.
$ sudo kubectl get all -n kube-systemسوف تحصل على إخراج مماثل لهذا:
[secondary_label Output]
NAME READY STATUS RESTARTS AGE
pod/local-path-provisioner-957fdf8bc-t8vpx 1/1 Running 0 4m34s
pod/coredns-77ccd57875-4hrd9 1/1 Running 0 4m34s
pod/helm-install-traefik-crd-j2sqs 0/1 Completed 0 4m34s
pod/helm-install-traefik-mvxhw 0/1 Completed 1 4m34s
pod/metrics-server-648b5df564-gqxcz 1/1 Running 0 4m34s
pod/svclb-traefik-18597fcd-2cf68 2/2 Running 0 4m6s
pod/traefik-768bdcdcdd-srb8d 1/1 Running 0 4m7s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 4m44s
service/metrics-server ClusterIP 10.43.69.115 <none> 443/TCP 4m43s
service/traefik LoadBalancer 10.43.149.125 159.65.159.115 80:32266/TCP,443:32628/TCP 4m7s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/svclb-traefik-18597fcd 1 1 1 1 1 <none> 4m7s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/local-path-provisioner 1/1 1 1 4m44s
deployment.apps/coredns 1/1 1 1 4m44s
deployment.apps/metrics-server 1/1 1 1 4m44s
deployment.apps/traefik 1/1 1 1 4m7s
NAME DESIRED CURRENT READY AGE
replicaset.apps/local-path-provisioner-957fdf8bc 1 1 1 4m34s
replicaset.apps/coredns-77ccd57875 1 1 1 4m34s
replicaset.apps/metrics-server-648b5df564 1 1 1 4m34s
replicaset.apps/traefik-768bdcdcdd 1 1 1 4m7s
NAME COMPLETIONS DURATION AGE
job.batch/helm-install-traefik-crd 1/1 28s 4m41s
job.batch/helm-install-traefik 1/1 31s 4m41s
... يُظهر الناتج أعلاه الكائنات المختلفة المُنشرة في مجموعة Kubernetes. على سبيل المثال، هناك 4 عمليات نشر قيد التشغيل، واحدة لكل من coredns، وlocal-path-provisioner، وmetrics-server، وtraefik.
إذا قمت بتشغيل الأمر دون استخدام sudo، فقد تواجه الخطأ التالي.
Output
WARN[0000] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions
error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied
...لتجنب الحاجة إلى sudo عند تشغيل أوامر kubectl، قم بتغيير أذونات ملف التكوين باستخدام chmod، كما هو موضح أدناه.
$ sudo chmod 644 /etc/rancher/k3s/k3s.yamlفي هذه المرحلة، تكون قد تأكدت من حالة كائنات Kubernetes المُنشرة افتراضيًا في مجموعة K3s. بعد ذلك، ستفهم خيارات التكوين في K3s وتُعدّلها أثناء التثبيت.
الخطوة 3 - فهم خيارات التكوين وتعديلها في K3S
لقد ثبّتتَ K3s باستخدام الإعدادات الافتراضية، ولكن يمكنك تعديل التكوين لتحقيق سلوك مُخصّص لكل مجموعة. في هذه الخطوة، ستتعلم كيفية استخدام متغيرات البيئة في K3 لضبط الإعدادات في نص التثبيت.
على سبيل المثال، تأتي الإعدادات الافتراضية مع تثبيت وحدة التحكم في الدخول traefik، وفي بعض الحالات، قد ترغب في تعطيل وحدة التحكم في الدخول أثناء التثبيت.
يمكن استخدام متغير البيئة INSTALL_K3S_EXEC لتمرير الإشارات إلى خدمة K3s. يمكن استخدام الأمر التالي لتعطيل traefik أثناء تثبيت K3.
$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -تحقق من عناصر Kubernetes للتحقق. موارد وحدة التحكم غير موجودة هذه المرة.
$ sudo kubectl get all -n kube-systemبالإضافة إلى تعديل خيارات التكوين باستخدام متغيرات البيئة، يُمكنك القيام بذلك أيضًا في ملف تكوين K3s. يُمكنك تحديد الخيارات اللازمة في ملف التكوين، ثم إعادة تشغيل خادم K3s لتطبيق التغييرات.
يستخدم K3s ملف التكوين الموجود في etc/rancher/k3s/config.yaml/.
قم بتشغيل الأمر التالي لإنشاء ملف التكوين وكتابته.
$ sudo nano /etc/rancher/k3s/config.yamlاكتب ما يلي في ملف التكوين.
$ disable: traefikاضغط على Ctrl+X لكتابة الملف والخروج منه. يُعلم سطر "تعطيل: traefik" خدمة K3s بإزالة الموارد المرتبطة بتثبيت traefik.
ثم أعد تشغيل خدمة K3s باستخدام الأمر التالي لتطبيق التغييرات.
$ sudo systemctl restart k3sالآن، يمكنك التحقق من ذلك بإدراج جميع كائنات Kubernetes في مساحة اسم نظام Kube. لا ينبغي أن تكون هناك أي موارد مرتبطة بتثبيت Traefik في الوقت الحالي.
$ sudo kubectl get all -n kube-systemفي هذه الخطوة، تعلمت كيفية تغيير إعدادات K3s أثناء التثبيت وبعده. بعد ذلك، ستحذف مجموعة K3s لتنظيف الأجهزة الافتراضية.
الخطوة 4 – إلغاء تثبيت K3s
لإلغاء تثبيت K3S، عليك تشغيل سكربت شل يُسمى 'usr/local/bin/k3s-uninstall.sh/'. يُنشأ السكربت تلقائيًا بعد تثبيت K3s، ويمكن استخدامه لإجراء تنظيف شامل. أثناء إلغاء التثبيت، تُحذف أي أدوات تكوين ومجموعة أدوات K3s التي تم إنشاؤها أو تثبيتها أثناء تثبيت K3s.
لإزالة K3، قم بتشغيل الأمر التالي:
$ /usr/local/bin/k3s-uninstall.shقم بتأكيد إلغاء التثبيت عن طريق التحقق من حالة خدمة K3s باستخدام الأمر التالي:
$ systemctl status k3sسوف تحصل على إخراج مماثل لهذا:
[secondary_label Output]
Unit k3s.service could not be found.نتيجة
في هذه المقالة، ثبّتتَ مجموعة K3s على أوبونتو وفهمتَ خيارات التكوين المتاحة فيها وآلية استخدامها. بعد إعداد مجموعة Kubernetes، عليك استكشاف أنواع الكائنات المختلفة ووظائفها في Kubernetes.









