آموزش نحوه راهاندازی کلاستر K3s Kubernetes در اوبونتو 22.04
۸ اسفند ۱۴۰۳
اگر قصد دارید یک کلاستر کوبرنتیز راهاندازی کنید، احتمالاً با چالشهای پیچیدهی نصب و پیکربندی آن مواجه شدهاید. در این آموزش نحوه راهاندازی کلاستر K3s Kubernetes در اوبونتو 22.04 را به صورت کامل یاد خواهیم داد.
در این آموزش، نحوه نصب و راهاندازی K3s بر روی اوبونتو 22.04 را بهصورت گامبهگام و کاملاً کاربردی بررسی میکنیم. همچنین، تنظیمات مهم و گزینههای پیکربندی که به شما در بهینهسازی و مدیریت کلاستر کمک میکنند را معرفی خواهیم کرد. اگر به دنبال یک روش سریع، ساده و کارآمد برای پیادهسازی کوبرنتیز هستید، این آموزش دقیقا همان چیزی است که نیاز دارید.
کوبرنتیز یا کوبرنتیس چیست؟
کوبرنتیز یکی از پرکاربردترین ابزارهای مدیریت کانتینرها است، اما راهاندازی یک کلاستر کوبرنتیز معمولی میتواند پیچیده و زمانبر باشد. بسیاری از روشهای راهاندازی Kubernetes نیاز به تنظیمات پیچیده دارند و بیشتر برای استفاده در محیطهای بزرگ و حرفهای طراحی شدهاند. این روشها ممکن است برای پروژههای کوچک یا زمانی که به راهاندازی سریع نیاز دارید، مناسب نباشند.
K3s نسخهای سبک و بهینه از کوبرنتیز است که توسط Rancher Labs توسعه داده شده است؛ تا راهاندازی یک کلاستر را تا حد ممکن ساده کند. این توزیع با یک باینری کمحجم و عملکردی بهینه، امکان استقرار سریع کوبرنتیز در سیستمهای کممصرف و محیطهای Edge Computing را فراهم میکند.
در ادامه با آنها آشنا خواهید شد:
- کوبرنتیز یا کوبرنتیس چیست؟
- پیشنیاز راهاندازی کلاستر کوبرنتیز
- مرحله اول: نصب K3s
- مرحله دوم: بررسی اشیاء پیشفرض Kubernetes
- مرحله سوم: درک و تغییر تنظیمات در K3s
- مرحله چهارم: حذف K3s
- سوالات متداول
- جمع بندی
🔷 بیشتر مطالعه کنید: نحوه نصب Git در سرور مجازی اوبونتو
پیشنیاز راهاندازی کلاستر کوبرنتیز
- یک سرور اوبونتو 22.04 با حداقل 1GB رم، که باید طبق راهنمای نصب اولیه سرور اوبونتو 22.04 راهاندازی شده باشد نیاز خواهید داشت.
مرحله اول: نصب K3s
“به یاد داشته باشید که باید آخرین نسخه از K3s را بر روی سرور اوبونتو خود نصب کنید.”
ابتدا به سرور خود وارد شوید. برای ورود به سرور با استفاده از یوزری که دسترسی sudo دارد وارد شوید.
در این آموزش، نام کاربری sammy
است، از دستور زیر استفاده کنید.
ssh sammy@your_server_ip

در مرحله بعد، برای نصب K3s از دستور زیر استفاده کنید.
curl -sfL https://get.k3s.io | sh -
برای اجرای اسکریپت، از شما خواسته میشود که رمز عبور کاربر خود را وارد کنید.
دستور بالا از ابزار curl
برای دانلود اسکریپت استفاده میکند و سپس با هدایت آن به 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 که پس از نصب K3s در کلاستر مستقر شدهاند، خواهیم پرداخت.
مرحله دوم: بررسی اشیاء پیشفرض کوبرنتیز
در این مرحله، شما اشیاء پیشفرض کوبرنتیز که پس از نصب K3s در کلاستر استقرار یافتهاند را بررسی خواهید کرد.
برای مشاهده تمام اشیاء کوبرنتیز مستقر شده در کلاستر و در فضای نام kube-system
دستور زیر را اجرا کنید. ابزار 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
خروجی بالا، اشیاء مختلفی را که در داخل کلاستر کوبرنتیز مستقر شدهاند را نشان میدهد. به عنوان مثال، ۴ استقرار Deployment
در حال اجرا هستند که هر کدام مربوط به 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
در این مرحله، شما وضعیت اشیاء کوبرنتیز که بهطور پیشفرض در خوشه K3s مستقر شدهاند آشنا شدید. اکنون، در این مرحله، با نحوه درک و تغییر تنظیمات در K3s روبه رو خواهید شد.
“اگر به دنبال ارتقای نسخه اوبونتو از 22.04 به 24.04 در سرور مجازی خود هستید، میتوانید مقاله ارتقای نسخه اوبونتو در سرور مجازی Ubuntu را مطالعه کنید تا با مراحل دقیق و روشهای مورد نیاز برای ارتقا آن آشنا شوید.”
مرحله سوم: درک و تغییر تنظیمات در K3s
شما K3s را با تنظیمات پیشفرض نصب کردهاید، اما این امکان وجود دارد که تنظیمات آن را برای مدیریت خوشه، تغییر دهید. در این مرحله، شما یاد خواهید گرفت که چگونه از متغیرهای محیطی در K3s استفاده کنید تا تنظیمات را در اسکریپت نصب تغییر دهید.
برای مثال، تنظیمات پیشفرض همراه با نصب کنترلر ورودی traefik
است. در برخی موارد، امکان دارد نیاز داشته باشید تا در هنگام نصب، این کنترلر ورودی را غیرفعال کنید.
متغیر محیطی INSTALL_K3S_EXEC
برای ارسال پرچمها به سرویس K3s استفاده میشود. برای غیرفعال کردن traefik
در هنگام نصب K3s میتوانید از دستور زیر استفاده کنید.
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -
برای بررسی اشیاء Kubernetes و تأیید تغییرات، این بار منابع کنترلر مانند traefik
در خوشه K3s نمایش داده نخواهد شد.
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
استفاده کنید. سپس از شما خواسته میشود که تغییرات را ذخیره کنید، برای تایید، کلید Y
را فشار دهید و سپس Enter
را بزنید.
خط disable: traefik
به سرویس K3s دستور میدهد که منابع مرتبط با نصب traefik
را حذف کند.

برای اعمال تغییرات، باید سرویس K3s را مجدداً راهاندازی کنید. برای این کار، دستور زیر را وارد کنید.
sudo systemctl restart k3s
حال میتوانید با استفاده از دستور زیر، تمامی اشیاء کوبرنتیز موجود در فضای kube-system
را بررسی کنید. باید توجه داشته باشید که دیگر هیچ یک از منابع مرتبط با نصب traefik
در این لیست نمایش داده نشود.
sudo kubectl get all -n kube-system
در این مرحله، شما یاد گرفتید که چگونه تنظیمات K3s را در حین و پس از نصب تغییر دهید. حالا، برای پاکسازی ماشین مجازی، میخواهید خوشه K3s را حذف کنید.
مرحله چهارم: حذف K3s
برای حذف K3s، باید اسکریپتی به نام ‘/usr/local/bin/k3s-uninstall.sh’
را اجرا کنید. این اسکریپت بهطور خودکار هنگام نصب K3s ایجاد میشود و برای انجام پاکسازی کامل از آن استفاده میشود. در حین حذف، هرگونه پیکربندی K3s و ابزارهای خوشهای که در طول نصب K3s ایجاد یا نصب شدهاند، حذف خواهند شد.
برای حذف K3s دستور زیر را اجرا کنید.
/usr/local/bin/k3s-uninstall.sh
برای تایید حذف، وضعیت سرویس K3s را با استفاده از دستور زیر بررسی کنید.
systemctl status k3s
خروجی مشابه زیر را مشاهده خواهید کرد.
Unit k3s.service could not be found.
سوالات متداول:
در ادامه به سوالاتی که امکان دارد در ذهنتان بهوجود آمده باشد، پاسخهای کوتاه و مفیدی دادهایم، با ما همراه باشید.
K3s چیست و چه تفاوتی با کوبرنتیز دارد؟
K3s یک نسخه سبکشده از کوبرنتیز است که برای محیطهای با منابع محدود طراحی شده است. در حالی که Kubernetes بهطور کامل در محیطهای بزرگ و مقیاسپذیر مناسب است، K3s برای استفاده در پروژههای کوچکتر یا در محیطهای Edge (با منابع کم) بهینهسازی شده است.
چگونه K3s را روی اوبونتو نصب کنم؟
برای نصب K3s بر روی اوبونتو، ابتدا باید از اسکریپت نصب استفاده کنید که بهصورت خودکار نسخه جدید K3s را نصب میکند. پس از نصب، میتوانید وضعیت کلاستر را با استفاده از دستور kubectl
بررسی کنید.
آیا میتوانم K3s را بدون traefik نصب کنم؟
بله، هنگام نصب K3s میتوانید با استفاده از متغیرهای محیطی، Traefik
که بهطور پیشفرض نصب میشود را غیرفعال کنید.
چگونه میتوانم K3s را حذف کنم؟
برای حذف K3s از سرور، کافی است از اسکریپت حذف /usr/local/bin/k3s-uninstall.sh
استفاده کنید. پس از اجرای این اسکریپت، تمام پیکربندیها و ابزارهای مربوط به K3s حذف میشوند.
آیا نصب K3s منابع زیادی نیاز دارد؟
K3s بهطور خاص برای استفاده در محیطهایی با منابع محدود طراحی شده است، بنابراین نسبت به Kubernetes اصلی منابع کمتری مصرف میکند.
آیا K3s و Kubernetes با یکدیگر سازگار هستند؟
بله، K3s و کوبرنتیز از لحاظ ساختاری مشابه هستند، اما K3s ویژگیهای کمحجمتری دارد و برای محیطهای خاصی مانند Edge و پروژههای کوچکتر طراحی شده است.
آیا میتوانم K3s را روی سرورهای مجازی نصب کنم؟
بله، میتوانید K3s را روی بر روی سرور مجازی VPS یا حتی سیستمهای محلی نصب کنید. K3s به دلیل سبکی و کارایی بالا برای چنین محیطهایی مناسب است.

جمع بندی
در این مطلب بهطور ساده و گامبهگام نحوه راهاندازی کلاستر K3s Kubernetes در اوبونتو 22.04 را شرح دادهایم. K3s یک نسخه سبک از کوبرنتیز است که برای محیطهای کممنابع و کاربردهای کوچک طراحی شده است. با استفاده از این ابزار، میتوانید به راحتی یک کلاستر Kubernetes راهاندازی کنید و منابع مورد نیاز برای پروژههای کوچک یا Edge Computing را مدیریت کنید.