آموزش راه اندازی K3s Kubernetes Cluster در اوبونتو 22.04
آموزش راه اندازی K3s Kubernetes Cluster در اوبونتو 22.04

آموزش راه اندازی K3s Kubernetes Cluster در اوبونتو 22.04

آموزش راه اندازی K3s Kubernetes Cluster در اوبونتو 22.04

معرفی

Kubernetes یکی از ابزارهای مورد علاقه صنعت برای ارکستراسیون کانتینر است. با این حال، راه اندازی یک خوشه Kubernetes از ابتدا می تواند یک کار دلهره آور باشد و به تنظیمات متعددی نیاز دارد. علاوه بر این، راه‌های مختلفی برای شروع راه‌اندازی یک خوشه Kubernetes وجود دارد، اما بسیاری از آنها ممکن است زمان‌بر باشند، مگر اینکه بخواهید یک خوشه تولیدی ایجاد کنید.

برای ساده‌سازی راه‌اندازی خوشه Kubernetes و فعال کردن امکان استقرار آن در مکان‌های محدود با منابع از راه دور – در نتیجه آن را به یک نامزد مناسب برای محاسبات لبه تبدیل می‌کند – Rancher Labs K3s را توسعه داد. K3s یک توزیع سبک وزن Kubernetes است که امکان نصب یک خوشه Kubernetes را با استفاده از یک باینری کوچک در عرض چند دقیقه فراهم می کند.

در این آموزش، نحوه نصب K3s در اوبونتو و گزینه های پیکربندی اضافی موجود در K3s را یاد خواهید گرفت.

پیش نیازها

برای تکمیل این آموزش، شما نیاز دارید:

یک سرور اوبونتو 22.04 با حداقل 1 گیگابایت رم با پیروی از راهنمای راه اندازی سرور اولیه اوبونتو 22.04 راه اندازی شده است.

مرحله 1- نصب K3s

در این مرحله، آخرین نسخه K3s را بر روی دستگاه اوبونتو خود نصب خواهید کرد.

در صورت استفاده از لاگین مبتنی بر رمز عبور، با استفاده از دستور زیر به عنوان کاربر دارای 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 را در اوبونتو نصب کردید و گزینه های پیکربندی موجود در K3s و مکانیسم استفاده از آنها را درک کردید. اکنون که خوشه Kubernetes خود را راه اندازی کرده اید، باید انواع مختلفی از اشیاء و عملکرد آنها را در Kubernetes بررسی کنید.

[تعداد: 0   میانگین: 0/5]
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شاید دوست داشته باشید