Fadak.IR راهکارهای فدک
English Русский العربية فارسی
مقالات مدیریت مطالعات زبان


/ فاوا / دواپس

مدیریت کانتینرها و آموزش منابع


      آموزش لینوکس برای دواپس
         پوشه‌های اصلی در لینوکس
         دستورات مهم در ترمینال

         دسته‌بندی دستورات:
         دسته‌بندی دستورات لینوکس
      داکر و‌هاب داکر
         دسته‌بندی‌های بلوک‌های مختلفی از محتوا

         دسته‌بندی‌های Docker Hub و کاربرد آن‌ها
      کوبرنتیز

         ویژگی‌های K3s:
         K8s (Kubernetes)

         ویژگی‌های K8s:
         تفاوت‌ها و شباهت‌ها بین K3s و K8s:
         شباهت‌ها:
         جمع‌بندی:
         CRI-O، Containerd و Docker
         تفاوت‌ها
         تفاوت docker، cri و crictl در خط فرمان
      1. Docker CLI (docker)
      2. CRI (Container Runtime Interface)
      3. crictl (Container Runtime Interface CLI)
         مقایسه کلی
         مدیریت و اجرای کانتینرها
         🔹 1. Podman
         2. Kata Containers
      مقایسه کلی
      دستورات پرکاربرد kubectl در Kubernetes

آموزش لینوکس برای دواپس

پوشه‌های اصلی در لینوکس

در سیستم‌عامل لینوکس، ساختار فایل‌ها به‌صورت سلسله‌مراتبی (هرم‌گونه) است که از ریشه (/) شروع می‌شود. تمامی فایل‌ها و دایرکتوری‌ها از این دایرکتوری اصلی منشعب می‌شوند.

/ (ریشه - Root)

✅ ریشه تمام سیستم‌فایل‌های لینوکس است و همه دایرکتوری‌ها از آن منشعب می‌شوند.
✅ دسترسی به این پوشه برای کاربران عادی محدود است و تغییرات در آن نیاز به دسترسی ریشه (root) دارد.

/bin (باینری‌های ضروری)

✅ شامل فرمان‌های اجرایی ضروری مانند ls، cp، mv، rm و ... است.
✅ این دستورات حتی زمانی که سیستم در حالت تک‌کاربره (Single-User Mode) است، در دسترس هستند.
✅ نمونه فایل‌های داخل /bin:

/boot (فایل‌های راه‌اندازی - Boot)

✅ شامل فایل‌های مربوط به بوت شدن سیستم‌عامل مانند کرنل (vmlinuz)، بوت‌لودر (GRUB) و سایر فایل‌های پیکربندی بوت است.
✅ هر گونه تغییر اشتباه در این پوشه ممکن است باعث عدم بوت شدن سیستم شود!

/dev (دستگاه‌ها - Devices)

✅ شامل فایل‌های مربوط به دستگاه‌های سخت‌افزاری و مجازی متصل به سیستم است.
✅ برخی نمونه‌ها:

/etc (فایل‌های تنظیمات - Configuration)

✅ حاوی فایل‌های پیکربندی و تنظیمات سیستم و سرویس‌ها است.
✅ برخی از مهم‌ترین فایل‌ها:

/home (دایرکتوری کاربران)

✅ شامل پوشه‌های شخصی کاربران عادی است.
✅ مسیر هر کاربر به‌صورت /home/username نام‌گذاری می‌شود.
✅ محتویات /home شامل اسناد، تنظیمات و داده‌های کاربران است.
✅ کاربران عادی فقط به پوشه خودشان دسترسی دارند.

/lib و /lib64 (کتابخانه‌های سیستم)

✅ شامل کتابخانه‌های اشتراکی (.so) که برای اجرای برنامه‌ها و دستورات سیستمی و باینری‌ها لازم هستند.
✅ این پوشه شبیه به C:\Windows\System32 در ویندوز است.

/media و /mnt (اتصال دستگاه‌ها - Mount Points)

✅ این پوشه‌ها برای اتصال (mount) دیسک‌ها و دستگاه‌های خارجی مانند فلش USB، DVD و پارتیشن‌های دیگر استفاده می‌شوند.
✅ /media معمولاً برای اتصال خودکار دستگاه‌های خارجی است، درحالی‌که /mnt برای اتصال دستی استفاده می‌شود.

/opt (نرم‌افزارهای اضافی - Optional Software)

✅ حاوی نرم‌افزارهای اضافی است که خارج از بسته‌های رسمی سیستم‌عامل نصب می‌شوند.
✅ به‌طور معمول نرم‌افزارهای شخص ثالث مانند Google Chrome و Zoom در این پوشه قرار می‌گیرند.

/proc (اطلاعات کرنل و پردازش‌ها - Processes & Kernel Info)

✅ یک سیستم فایل مجازی که اطلاعات پردازش‌های در حال اجرا و کرنل را ذخیره می‌کند.
✅ برخی نمونه‌های مهم:

/root (دایرکتوری کاربر root)

✅ معادل پوشه‌ی /home/root برای کاربر مدیر (root) است.
✅ فقط کاربر root می‌تواند به این دایرکتوری دسترسی داشته باشد.

/run (اطلاعات موقتی پردازش‌ها)

✅ این دایرکتوری شامل اطلاعات موقتی درباره پردازش‌های در حال اجرا است.
✅ پس از ریبوت سیستم، محتویات این پوشه پاک می‌شود.

/sbin (دستورات مدیریتی - System Binaries)

✅ شامل دستورات اجرایی سطح مدیریت است که معمولاً فقط توسط کاربر root استفاده می‌شوند.
✅ برخی از دستورات داخل /sbin:

/srv (داده‌های سرویس‌ها - Service Data)

✅ محلی برای ذخیره داده‌های سرویس‌های شبکه‌ای مانند وب‌سرورها و FTP است.
✅ مثال:

/sys (اطلاعات کرنل و سخت‌افزار)

✅ مانند /proc یک سیستم فایل مجازی است که اطلاعاتی درباره سخت‌افزار و کرنل ارائه می‌دهد.

 /tmp (فایل‌های موقتی - Temporary Files)

✅ شامل فایل‌های موقتی که به‌صورت خودکار حذف می‌شوند.
✅ پس از ریبوت سیستم، محتویات این پوشه پاک می‌شود.

/usr (نرم‌افزارهای سیستم و ابزارهای کاربر)

✅ شامل نرم‌افزارها، کتابخانه‌ها و فایل‌های اجرایی سیستم است.
✅ این پوشه دارای زیرپوشه‌هایی است:

 /var (فایل‌های متغیر - Variable Data)

✅ شامل داده‌هایی که مرتب تغییر می‌کنند مانند لاگ‌های سیستم، فایل‌های صف، کش و اطلاعات دیتابیس.
✅ برخی از زیرپوشه‌ها:

 /app (فایل‌های نرم افزار)

✅ شامل فایلهای مرتبط به نرم افزار در برخی از کانتینرها

هر دایرکتوری در لینوکس کاربرد مشخصی دارد و تغییرات نادرست در برخی از آن‌ها (مانند /boot، /etc یا /dev) می‌تواند باعث آسیب به سیستم شود. درک این ساختار به مدیریت بهتر لینوکس و حل مشکلات آن کمک می‌کند.

دستورات مهم در ترمینال

در اینجا یک جدول با دستورات مهم لینوکس به همراه اختصار، تلفظ فونوتیک و توضیحات مختصر و دسته‌بندی آن‌ها آورده شده است:

دستور اختصار تلفظ فونوتیک توضیح مختصر دسته‌بندی
pwd Print Working Directory /piːˈdʌbljuːˈdi/ مسیر دایرکتوری جاری را نمایش می‌دهد. مدیریت دایرکتوری و فایل‌ها
mkdir folder Make Directory /ˈmɛɪk dɪˈrɛktəri/ دایرکتوری جدید به نام "folder" ایجاد می‌کند. مدیریت دایرکتوری و فایل‌ها
cd folder Change Directory /ʧeɪndʒ dɪˈrɛktəri/ به دایرکتوری "folder" وارد می‌شود. مدیریت دایرکتوری و فایل‌ها
ls -la List /lɪst/ لیست محتویات دایرکتوری با جزئیات و فایل‌های مخفی را نمایش می‌دهد. مدیریت دایرکتوری و فایل‌ها
chmod 755 file.sh Change Mode /ʧeɪndʒ məʊd/ تغییر مجوزهای دسترسی به فایل. مدیریت دسترسی‌ها و امنیت
chown user:group file.txt Change Owner /ʧeɪndʒ ˈəʊnər/ مالکیت فایل را تغییر می‌دهد. مدیریت دسترسی‌ها و امنیت
rm -rf folder Remove /rɪˈmuːv/ حذف دایرکتوری یا فایل به‌همراه تمام محتویات آن بدون تأیید. مدیریت دایرکتوری و فایل‌ها
cp -r source dest Copy /ˈkɒpi/ دایرکتوری یا فایل را از "source" به "dest" کپی می‌کند. مدیریت دایرکتوری و فایل‌ها
reboot Reboot /rɪˈbuːt/ سیستم را ریستارت می‌کند. مدیریت سیستم
cd .. Change Directory Up /ʧeɪndʒ dɪˈrɛktəri ʌp/ به دایرکتوری والد می‌رود. مدیریت دایرکتوری و فایل‌ها
top Task Overview /tɒp/ نمایش اطلاعات جاری سیستم و پردازش‌ها. نظارت سیستم
ps Process Status /piː ɛs/ نمایش لیست پردازش‌های در حال اجرا. نظارت سیستم
useradd tahmasebi User Add /ˈjuːzər æd/ کاربر جدید به نام "tahmasebi" ایجاد می‌کند. مدیریت کاربران و گروه‌ها
passwd tahmasebi Password /ˈpæswɜːd/ رمز عبور کاربر "tahmasebi" را تنظیم می‌کند. مدیریت کاربران و گروه‌ها
id tahmasebi Identity /aɪˈdɛntɪti/ اطلاعات کاربری (UID و گروه‌ها) برای "tahmasebi" را نمایش می‌دهد. مدیریت کاربران و گروه‌ها
`curl -sfL https://get.k3s.io sh -` Curl /kɜːrl/ نصب K3s از طریق curl.
systemctl System Control /ˈsɪstəm kənˈtroʊl/ مدیریت سرویس‌ها با استفاده از systemd. مدیریت سیستم و سرویس‌ها
apt install Apt Install /æpt ɪnˈstɔːl/ نصب بسته‌های نرم‌افزاری در سیستم‌های مبتنی بر دبیان (مثل Ubuntu). نصب و مدیریت نرم‌افزار
apt update Apt Update /æpt ʌpˈdeɪt/ بروزرسانی لیست بسته‌های موجود. نصب و مدیریت نرم‌افزار
apt upgrade Apt Upgrade /æpt ʌpˈɡreɪd/ ارتقاء بسته‌های نرم‌افزاری به نسخه‌های جدیدتر. نصب و مدیریت نرم‌افزار
history History /ˈhɪstəri/ نمایش تاریخچه دستورات اجرا شده در ترمینال. نظارت و مدیریت ترمینال
sudo systemctl daemon-reload System Control Daemon Reload /ˈsuːduː ˈsɪstəm kənˈtroʊl ˈdeɪmən rɪˈləʊd/ بارگذاری مجدد تنظیمات systemd. مدیریت سیستم و سرویس‌ها
sudo systemctl restart k3s System Control Restart /ˈsuːduː ˈsɪstəm kənˈtroʊl rɪˈstɑːrt/ ریستارت سرویس K3s. مدیریت سیستم و سرویس‌ها
sudo Super User Do /ˈsuːduː/ اجرای دستور با دسترسی‌های مدیریتی. مدیریت سیستم و کاربران
su Switch User /suː/ تغییر به حساب کاربری دیگر (معمولاً root). مدیریت سیستم و کاربران
/ Root Directory /rʊt dɪˈrɛktəri/ دایرکتوری اصلی سیستم فایل لینوکس. مدیریت سیستم
~ Home Directory /hoʊm dɪˈrɛktəri/ دایرکتوری خانگی کاربر جاری. مدیریت دایرکتوری و فایل‌ها
man command_name Manual /ˈmænʊəl/ نمایش صفحه راهنمای دستور "command_name". راهنمایی دستورات
nano Nano Editor /ˈnænoʊ/ ویرایشگر متنی ساده برای ویرایش فایل‌ها. ویرایشگر متنی
vim Vim Editor /vɪm/ ویرایشگر متنی پیشرفته برای ویرایش فایل‌ها. ویرایشگر متنی
cat Concatenate /kæṭ/ نمایش محتویات یک فایل. مدیریت دایرکتوری و فایل‌ها
touch Touch /tʌʧ/ ایجاد یک فایل خالی جدید یا بروزرسانی زمان دسترسی فایل. مدیریت دایرکتوری و فایل‌ها

این جدول به شما کمک می‌کند تا دستورات مختلف لینوکس را با اختصار، تلفظ صحیح، توضیح مختصر و دسته‌بندی‌های مختلف بهتر بشناسید.

 

 

دسته‌بندی دستورات:

1. مانیتورینگ و بررسی وضعیت سیستم

2. بررسی وضعیت شبکه و دیوار آتش

3. مدیریت سرویس‌ها

4. ابزارهای مدیریت امنیت و فایروال

5. مدیریت و نصب بسته‌ها

6. مدیریت و مانیتورینگ Kubernetes

7. مدیریت و ذخیره‌سازی Docker

8. مدیریت پروکسی و لاگ‌ها

9. ابزارهای فشرده‌سازی و دانلود

این دسته‌بندی به شما کمک می‌کند تا دستورات را به‌صورت منظم و کاربردی مدیریت کنید.

 

 

1. مدیریت بسته‌ها و نصب نرم‌افزارها

دستورات برای بروزرسانی مخازن، نصب و مدیریت بسته‌های نرم‌افزاری:


2. مدیریت شبکه

دستورات برای مدیریت تنظیمات شبکه و بررسی ارتباطات:


3. دستورات عمومی لینوکس

دستورات رایج برای مدیریت سیستم و نمایش اطلاعات:


4. مدیریت Docker

دستورات پرکاربرد برای کار با داکر:


5. مدیریت K3s و Helm

دستورات نصب و پیکربندی K3s و Helm:


6. مدیریت Kubernetes

6.1 اطلاعات و بررسی وضعیت

6.2 ایجاد و مدیریت منابع

6.3 حذف منابع

6.4 مدیریت Ingress و Traefik


7. دستورات مربوط به سرور و DNS

 

 

دسته‌بندی دستورات لینوکس

1. مدیریت فایل و دایرکتوری

2. مدیریت مجوزها و مالکیت فایل‌ها

3. مدیریت کاربران و احراز هویت

4. مدیریت پردازش‌ها و سیستم

5. مدیریت بسته‌ها و سیستم عامل

6. مدیریت سرویس‌ها

7. شبکه و اینترنت

8. مدیریت و ویرایش فایل‌ها

9. سطوح دسترسی و دستورات پیشرفته مدیریتی

10. راهنمایی و مستندات دستورات

11. تاریخچه دستورات


این دستورات در ترکیب با مواردی که قبلاً دسته‌بندی کرده بودید، می‌تواند به‌عنوان یک مستند کامل برای مدیریت سیستم لینوکس استفاده شود. آیا نیاز به اصلاح یا تکمیل بیشتری دارید؟

 

داکر و‌هاب داکر

مفاهیم مهم در داکر

Docker Hub یک سرویس ابری ارائه‌شده توسط Docker است که برای یافتن، ذخیره، اشتراک‌گذاری و مدیریت ایمیج‌های Docker استفاده می‌شود. در hub.docker.com چندین قابلیت و ویژگی مهم وجود دارد

1. مخازن (Repositories)

مخازن Docker در Docker Hub جایی هستند که ایمیج‌های Docker ذخیره و مدیریت می‌شوند. مخازن به دو دسته تقسیم می‌شوند:

کاربرد: نگهداری ایمیج‌ها برای استقرار آسان‌تر و به‌اشتراک‌گذاری با تیم توسعه.

2. ایمیج‌های Docker

هر ایمیج در Docker Hub می‌تواند شامل نسخه‌های مختلفی (tags) باشد. این نسخه‌ها برای مشخص کردن ورژن‌های مختلف یک برنامه یا سرویس استفاده می‌شوند.

کاربرد: استفاده از ایمیج‌های رسمی مثل nginx:latest یا mysql:8.0 برای راه‌اندازی سریع سرویس‌ها.

3. سازمان‌ها و تیم‌ها (Organizations & Teams)

Docker Hub امکان مدیریت کاربران را از طریق سازمان‌ها و تیم‌ها فراهم می‌کند:

کاربرد: مدیریت اعضای تیم توسعه و تعیین سطوح دسترسی مختلف.


6. Webhooks

Webhooks امکان اجرای خودکار یک اسکریپت یا عملیات خاص را پس از push شدن یک ایمیج جدید در Docker Hub فراهم می‌کنند.

کاربرد: به‌روزرسانی خودکار سرویس‌ها در سرورها پس از انتشار نسخه جدید ایمیج.


7. نرخ محدودیت (Rate Limits)

Docker Hub برای کاربران رایگان، محدودیت‌هایی در دانلود ایمیج اعمال کرده است:

کاربرد: برنامه‌ریزی صحیح برای جلوگیری از توقف سرویس‌ها در اثر محدودیت دانلود.


8. پلن‌های اشتراکی Docker Hub

Docker Hub علاوه بر نسخه رایگان، پلن‌های پولی نیز ارائه می‌دهد:

کاربرد: انتخاب پلن مناسب بر اساس نیازهای پروژه.


Docker Hub یک سرویس قدرتمند برای مدیریت ایمیج‌های Docker است و امکانات متنوعی مثل مخازن، ایمیج‌های رسمی، Webhooks، مدیریت تیمی، و پلن‌های پولی ارائه می‌دهد. بسته به نیاز خود، می‌توانید از نسخه رایگان یا پولی آن استفاده کنید.

دسته‌بندی‌های بلوک‌های مختلفی از محتوا

1️⃣ Spotlight (ویژه)

2️⃣ Machine Learning & AI (یادگیری ماشین و هوش مصنوعی)

3️⃣ Trending This Week (محبوب‌های این هفته)

4️⃣ Most Pulled Images (بیشترین دانلود‌شده‌ها)

5️⃣ Databases & Storage (پایگاه‌های داده و ذخیره‌سازی)

6️⃣ Monitoring & Observability (مانیتورینگ و مشاهده‌پذیری)

7️⃣ Developer Tools (ابزارهای توسعه)

8️⃣ New Extensions (افزونه‌های جدید)

انواع ایمیج‌ها

4. Docker Official Images (ایمیج‌های رسمی)

ایمیج‌های رسمی توسط Docker و شرکای معتبر آن ارائه می‌شوند و کیفیت و امنیت آن‌ها تأیید شده است. برخی از معروف‌ترین ایمیج‌های رسمی عبارت‌اند از:

کاربرد: استفاده از ایمیج‌های معتبر و امن برای توسعه و استقرار سرویس‌ها.


5. Docker Verified Publisher (ناشران تأییدشده)

شرکت‌های شناخته‌شده و توسعه‌دهندگان بزرگ می‌توانند ایمیج‌های خود را به‌عنوان ناشر تأییدشده در Docker Hub قرار دهند. این ایمیج‌ها معمولاً مورد اعتماد هستند.

کاربرد: استفاده از ایمیج‌های رسمی ارائه‌شده توسط شرکت‌های معتبر مثل Red Hat، Microsoft و Bitnami.

 

دسته‌بندی‌های Docker Hub و کاربرد آن‌ها

Docker Hub دارای دسته‌بندی‌های مختلفی برای ایمیج‌ها است که به کاربران کمک می‌کند به‌راحتی فناوری‌های مورد نیاز  پیدا نمود. در ادامه، توضیحی درباره هر دسته و نمونه‌هایی از ایمیج‌های معروف ارائه شده است.

API Management (مدیریت API)

🔹 شامل ایمیج‌های Gatewayها، مستندسازی API و ابزارهای مدیریت درخواست‌ها است.
کاربرد: کنترل ترافیک API، مدیریت درخواست‌ها و ایجاد مستندات خودکار.
🔹 نمونه‌ها:

 Content Management System (سیستم‌های مدیریت محتوا)

🔹 ایمیج‌های مرتبط با CMSها و ابزارهای مدیریت وب‌سایت‌ها در این دسته قرار می‌گیرند.
کاربرد: ایجاد و مدیریت وب‌سایت‌های پویا، وبلاگ‌ها و فروشگاه‌های آنلاین.
🔹 نمونه‌ها:

 Data Science (علم داده)

🔹 ایمیج‌هایی که شامل محیط‌های توسعه داده، تحلیل داده و ابزارهای آماری هستند.
کاربرد: پردازش داده، یادگیری ماشین و اجرای مدل‌های تحلیل داده.
🔹 نمونه‌ها:

 Databases & Storage (پایگاه‌های داده و ذخیره‌سازی)

🔹 شامل ایمیج‌های پایگاه داده‌های SQL و NoSQL و راهکارهای ذخیره‌سازی است.
کاربرد: نگهداری و پردازش داده‌ها در محیط‌های عملیاتی.
🔹 نمونه‌ها:

 Languages & Frameworks (زبان‌ها و فریمورک‌ها)

🔹 ایمیج‌های مرتبط با زبان‌های برنامه‌نویسی و فریمورک‌های توسعه نرم‌افزار در این دسته قرار دارند.
کاربرد: فراهم‌سازی محیط اجرایی برای توسعه اپلیکیشن‌ها.
🔹 نمونه‌ها:

 Integration & Delivery (یکپارچه‌سازی و تحویل نرم‌افزار)

🔹 شامل ایمیج‌های CI/CD، ابزارهای تست و اتوماسیون استقرار است.
کاربرد: یکپارچه‌سازی و استقرار خودکار نرم‌افزارها.
🔹 نمونه‌ها:

 Internet of Things (اینترنت اشیا - IoT)

🔹 ایمیج‌های مرتبط با مدیریت و پردازش داده‌های IoT و سنسورها در این دسته قرار دارند.
کاربرد: پیاده‌سازی و مدیریت سرویس‌های IoT.
🔹 نمونه‌ها:

 Machine Learning & AI (یادگیری ماشین و هوش مصنوعی)

🔹 شامل ابزارها، فریمورک‌ها و مدل‌های هوش مصنوعی است.
کاربرد: پیاده‌سازی، آموزش و استقرار مدل‌های هوش مصنوعی.
🔹 نمونه‌ها:

 Message Queues (صف پیام)

🔹 شامل ایمیج‌های سیستم‌های صف پیام و پردازش ناهمزمان است.
کاربرد: مدیریت صف‌های پیام برای سیستم‌های توزیع‌شده.
🔹 نمونه‌ها:

 Monitoring & Observability (مانیتورینگ و مشاهده‌پذیری)

🔹 شامل ابزارهای جمع‌آوری لاگ‌ها، مانیتورینگ و مشاهده‌پذیری سیستم‌ها است.
کاربرد: بررسی عملکرد سرویس‌ها و شناسایی مشکلات.
🔹 نمونه‌ها:

 Networking (شبکه)

🔹 شامل ابزارهای مرتبط با مدیریت شبکه‌های Docker و نرم‌افزارهای ارتباطی است.
کاربرد: ایجاد و مدیریت شبکه‌های کانتینری.
🔹 نمونه‌ها:

 Operating Systems (سیستم‌عامل‌ها)

🔹 ایمیج‌های سیستم‌عامل‌های سبک برای اجرای کانتینرها را شامل می‌شود.
کاربرد: فراهم‌سازی پایه‌ای برای اجرای نرم‌افزارهای دیگر.
🔹 نمونه‌ها:

 Security (امنیت)

🔹 شامل ابزارهای امنیتی برای محافظت از کانتینرها و داده‌ها است.
کاربرد: افزایش امنیت اپلیکیشن‌های Docker.
🔹 نمونه‌ها:

 Web Servers (وب سرورها)

🔹 ایمیج‌های سرورهای HTTP و‌هاستینگ وب را شامل می‌شود.
کاربرد: میزبانی وب‌سایت‌ها و برنامه‌های وب.
🔹 نمونه‌ها:

 Web Analytics (تحلیل وب)

🔹 شامل ابزارهای تحلیل و بررسی ترافیک وب است.
کاربرد: ردیابی و تحلیل رفتار کاربران در وب‌سایت‌ها.
🔹 نمونه‌ها:

کوبرنتیز

K3s یک توزیع سبک و کم‌حجم از Kubernetes است که برای محیط‌های تولید و توسعه کوچک، سیستم‌های IoT (اینترنت اشیاء)، و محیط‌های Edge طراحی شده است. K3s توسط Rancher Labs توسعه یافته و هدف اصلی آن کاهش پیچیدگی‌های Kubernetes و فراهم آوردن یک نسخه کم‌حجم و سریع‌تر از این سیستم است.

ویژگی‌های K3s:

  1. سبک‌تر: K3s تقریباً ۵۰٪ منابع کمتری نسبت به Kubernetes سنتی مصرف می‌کند.
  2. آسان‌تر: نصب K3s بسیار ساده‌تر از Kubernetes است.
  3. کم‌تر بودن وابستگی‌ها: برخی از سرویس‌ها که در Kubernetes ضروری هستند، در K3s حذف شده‌اند (مثل etcd به جای استفاده از SQLite).
  4. مناسب برای دستگاه‌های کوچک و محیط‌های Edge: K3s برای استفاده در سیستم‌های کم‌قدرت و دستگاه‌های کوچک طراحی شده است.
  5. فایل باینری واحد: تمام فایل‌های مورد نیاز برای اجرای K3s در یک فایل باینری واحد گنجانده شده‌اند.

K8s (Kubernetes)

Kubernetes (K8s) یک سیستم اورکستراسیون کانتینر است که برای خودکارسازی استقرار، مقیاس‌پذیری، و مدیریت برنامه‌های کانتینری استفاده می‌شود. Kubernetes توسط Google توسعه یافته و در حال حاضر توسط Cloud Native Computing Foundation (CNCF) مدیریت می‌شود.

ویژگی‌های K8s:

  1. مقیاس‌پذیری بالا: Kubernetes برای مقیاس‌پذیری و مدیریت حجم‌های زیاد از برنامه‌ها طراحی شده است.
  2. ابزارهای قدرتمند برای مدیریت سیستم‌های توزیع‌شده: K8s شامل ابزارهای زیادی برای تنظیم شبکه، ذخیره‌سازی، مقیاس‌پذیری، و خودبازسازی کانتینرها است.
  3. استفاده در محیط‌های پیچیده‌تر: مناسب برای محیط‌های تولید بزرگ و پیچیده که نیاز به اورکستراسیون پیشرفته دارند.
  4. قابلیت‌های پیشرفته مدیریت: Kubernetes دارای ویژگی‌هایی مانند مدیریت امن، خودپایش، و ابزارهای پیچیده برای تخصیص منابع است.

تفاوت‌ها و شباهت‌ها بین K3s و K8s:

ویژگی K3s K8s
حجم سبک و کم‌حجم (حدود ۴۰-۵۰٪ منابع کمتر) بزرگ و سنگین
نصب نصب آسان و سریع نصب پیچیده‌تر
وابستگی‌ها استفاده از SQLite به‌جای etcd و حذف برخی اجزای اضافی به‌طور کامل از etcd و سایر اجزای Kubernetes استفاده می‌کند
مقیاس‌پذیری برای محیط‌های کوچک و مقیاس‌پایین مناسب است مناسب برای مقیاس‌پذیری بالا و محیط‌های پیچیده‌تر
پشتیبانی کمتر از Kubernetes در محیط‌های تولیدی بزرگ پشتیبانی گسترده‌تر در تولیدات بزرگ و پیچیده
استفاده مناسب برای Edge, IoT و سیستم‌های با منابع محدود مناسب برای دیتاسنترها و محیط‌های تولید بزرگ

شباهت‌ها:

  1. هر دو K3s و K8s اساساً یک سیستم Kubernetes هستند که قابلیت‌های اورکستراسیون کانتینر را ارائه می‌دهند.
  2. هر دو از معماری مشابهی استفاده می‌کنند و همان API را ارائه می‌دهند.
  3. هر دو ابزارهای مدیریت کانتینرها را فراهم می‌آورند و امکان مقیاس‌پذیری و خودبازسازی کانتینرها را دارند.

جمع‌بندی:

CRI-O، Containerd و Docker

1. Docker
Docker یک پلتفرم کامل برای توسعه، انتقال و اجرای کانتینرها است که شامل ابزارهای متعددی مانند Docker CLI، Docker Compose و Docker Engine می‌شود. این پلتفرم از containerd به‌عنوان یک Runtime داخلی برای اجرای کانتینرها استفاده می‌کند.

2. Containerd
Containerd یک Runtime سطح پایین برای مدیریت چرخه حیات کانتینرها است. این پروژه از دل Docker استخراج شد و اکنون توسط بنیاد CNCF (Cloud Native Computing Foundation) توسعه داده می‌شود. Containerd فقط مسئول اجرای کانتینرها است و سایر ویژگی‌های مدیریت کانتینر مانند شبکه و لاگ‌گیری را به ابزارهای دیگر واگذار می‌کند.

3. CRI-O
CRI-O یک Runtime سبک برای اجرای کانتینرها در Kubernetes است که از استاندارد Container Runtime Interface (CRI) تبعیت می‌کند. این پروژه برای جایگزینی Docker در محیط‌های Kubernetes طراحی شده است و به‌طور مستقیم از OCI (Open Container Initiative) برای اجرای کانتینرها استفاده می‌کند.

شباهت‌ها

هر سه ابزار برای اجرای کانتینرهای لینوکس استفاده می‌شوند و از استانداردهای OCI پشتیبانی می‌کنند.

داکر از Containerd به‌عنوان runtime استفاده می‌کند  و CRI-O هم مانند Containerd یک runtime است که از runtimeهای OCI مانند runc استفاده می‌کند.

هم CRI-O و هم Containerd مستقیماً از CRI پشتیبانی می‌کنند و می‌توانند جایگزین Docker در Kubernetes شوند. Docker برای استفاده در Kubernetes نیاز به Dockershim داشت (که دیگر پشتیبانی نمی‌شود).


تفاوت‌ها

ویژگی Docker Containerd CRI-O
مدیریت کامل کانتینر بله (با ابزارهای CLI و API کامل) خیر (فقط یک Runtime) خیر (فقط برای Kubernetes طراحی شده)
ارتباط مستقیم با Kubernetes نیاز به Dockershim (که حذف شده است) بله (پشتیبانی از CRI) بله (پشتیبانی مستقیم از CRI)
سادگی و سبکی سنگین‌تر، شامل ابزارهای اضافی سبک‌تر از Docker سبک‌ترین گزینه
استانداردسازی توسط OCI از OCI پشتیبانی می‌کند اما کاملاً مستقل نیست بله، کاملاً منطبق با OCI بله، منطبق بر OCI
کاربرد اصلی توسعه و اجرای کانتینرها Runtime سطح پایین برای اجرا جایگزین Docker در Kubernetes
مدیریت ایمیج‌ها بله (Docker Registry) بله (با plugins) بله (اما به‌صورت محدود)
در خط فرمان
Docker cri crictl

 

Docker بهترین گزینه برای توسعه و CI/CD

 Containerd یک Runtime سبک برای اجرا و مدیریت کانتینرها

CRI-O در محیط Kubernetes  یک Runtime بهینه و استاندارد

تفاوت docker، cri و crictl در خط فرمان

هر یک از این ابزارها برای مدیریت و اجرای کانتینرها استفاده می‌شوند، اما در زمینه‌های مختلف کاربرد دارند:

1. Docker CLI (docker)

🔹 ابزار اصلی خط فرمان برای کار با Docker
🔹 دارای دستورات متنوع برای ایجاد، اجرا، مدیریت و حذف کانتینرها و ایمیج‌ها

🔹 مثال‌ها:

# لیست کانتینرهای در حال اجرا
docker ps  

# اجرای یک کانتینر جدید
docker run -d --name mycontainer nginx  

# حذف یک کانتینر
docker rm mycontainer  

🔹 مناسب برای: توسعه‌دهندگان و مدیران سیستم که با Docker کار می‌کنند.

2. CRI (Container Runtime Interface)

🔹 یک استاندارد است توسط Kubernetes برای تعامل با Runtimeهای کانتینر مانند containerd و CRI-O استفاده می‌شود. Kubernetes مستقیماً با CRI تعامل دارد و خودش دستورات CLI ندارد.

🔹برای مدیریت  CRI  باید از crictl استفاده نمود

3. crictl (Container Runtime Interface CLI)

🔹 ابزار CLI برای مدیریت کانتینرهای اجرا شده توسط CRI Runtime (مثل containerd و CRI-O)
🔹 جایگزین docker در محیط‌های Kubernetes است.

🔹 مثال‌ها:

# لیست کانتینرهای در حال اجرا (مشابه `docker ps`)
crictl ps  

# اجرای یک کانتینر جدید
crictl runp pod-config.json  

# دریافت اطلاعات یک ایمیج
crictl inspecti nginx  

🔹 مناسب برای: مدیران Kubernetes که می‌خواهند بدون Docker، مستقیماً با containerd یا CRI-O کار کنند.


مقایسه کلی

ابزار کاربرد CLI اختصاصی برای Kubernetes؟
docker مدیریت کانتینرها در Docker بله (docker) بله (اما دیگر در Kubernetes استفاده نمی‌شود)
CRI استاندارد API برای Runtimeهای کانتینر خیر بله
crictl مدیریت کانتینرها در containerd و CRI-O بله (crictl) بله (مناسب برای Kubernetes)
Kata Containers      

مدیریت و اجرای کانتینرها

بله، علاوه بر containerd و CRI-O، گزینه‌های دیگری نیز برای مدیریت و اجرای کانتینرها در دسترس هستند. برخی از مهم‌ترین آن‌ها عبارتند از:


🔹 1. Podman

 جایگزین سبک برای Docker
 بدون نیاز به Daemon (بدون dockerd)
 امنیت بالاتر با rootless execution (اجرای بدون نیاز به کاربر root)
 سازگار با OCI و docker CLI (تا حدی)

🔹 نصب در Ubuntu/Debian:

sudo apt update && sudo apt install -y podman

🔹 مثال اجرا:

podman run -d --name mycontainer nginx

مناسب برای سیستم‌هایی که نمی‌خواهند از Docker استفاده کنند و به امنیت بیشتری نیاز دارند.

2. Kata Containers

- ترکیب امنیت ماشین‌های مجازی (VM) با سرعت کانتینرها
- اجرای کانتینرها در VMهای سبک و جداگانه
- ایده‌آل برای محیط‌هایی که امنیت بالا اهمیت دارد

🔹 نصب در Ubuntu/Debian:

sudo apt install -y kata-runtime

 مناسب برای سازمان‌هایی که نیاز به ایزوله‌سازی بیشتر از سطح استاندارد runc دارند.

مقایسه کلی

ویژگی containerd CRI-O Podman Kata Containers
پشتیبانی از Kubernetes بله بله خیر بله
نیاز به daemon بله بله  خیر بله
سازگاری با Docker بله خیر بله (تا حدی) خیر
امنیت و ایزوله‌سازی بالا متوسط متوسط بالا (rootless) بسیار بالا
سرعت و کارایی بالا بالا بالا متوسط

پرکاربردترین منابع در Kubernetes

سی مورد از پرکاربردترین منابع در Kubernetes عبارتند از:

  1. Pods (po) - اصلی‌ترین واحد اجرایی در Kubernetes.

  2. Deployments (deploy) - مدیریت توزیع و به‌روزرسانی خودکار Pods.

  3. Services (svc) - مدیریت دسترسی به Pods و ایجاد یک لایه شبکه‌ای پایدار.

  4. ConfigMaps (cm) - مدیریت تنظیمات کانتینرها.

  5. Secrets - ذخیره‌سازی امن اطلاعات حساس.

  6. Namespaces (ns) - جداسازی منابع برای مدیریت بهتر.

  7. Nodes (no) - نمایش وضعیت گره‌های خوشه.

  8. PersistentVolumeClaims (pvc) - درخواست فضاهای ذخیره‌سازی پایدار.

  9. PersistentVolumes (pv) - مدیریت منابع ذخیره‌سازی پایدار.

  10. ReplicaSets (rs) - تضمین اجرای تعداد مشخصی از Pods.

  11. StatefulSets (sts) - مدیریت استقرارهای پایدار و وابسته به ترتیب.

  12. DaemonSets (ds) - اجرای یک Pod بر روی تمام گره‌ها.

  13. CronJobs (cj) - زمان‌بندی اجرای خودکار وظایف.

  14. Jobs - اجرای پردازش‌های یک‌بار مصرف.

  15. HorizontalPodAutoscalers (hpa) - مقیاس‌پذیری خودکار بر اساس مصرف منابع.

  16. Ingresses (ing) - مدیریت دسترسی خارجی به خدمات.

  17. NetworkPolicies (netpol) - کنترل قوانین شبکه بین Pods.

  18. ResourceQuotas (quota) - محدود کردن منابع مصرفی در Namespace.

  19. RoleBindings - مدیریت سطوح دسترسی در Namespace.

  20. ClusterRoles - مدیریت دسترسی در سطح خوشه.

  21. ClusterRoleBindings - اتصال ClusterRoles به کاربران و گروه‌ها.

  22. ServiceAccounts (sa) - ارائه دسترسی برای Pods جهت تعامل با API.

  23. PodDisruptionBudgets (pdb) - کنترل میزان خرابی مجاز هنگام حذف Pods.

  24. MutatingWebhookConfigurations - تغییر خودکار منابع هنگام ایجاد.

  25. ValidatingWebhookConfigurations - اعتبارسنجی منابع قبل از ایجاد.

  26. APIService - مدیریت APIهای سفارشی.

  27. StorageClasses (sc) - مدیریت انواع ذخیره‌سازی پویا.

  28. CSIDrivers - تعامل با درایورهای ذخیره‌سازی خارجی.

  29. IngressClasses - مدیریت کلاس‌های Ingress برای کنترل‌کننده‌های مختلف.

  30. CertificatesSigningRequests (csr) - درخواست صدور گواهینامه SSL.

این منابع از رایج‌ترین مواردی هستند که در مدیریت و بهره‌برداری از یک خوشه Kubernetes به کار می‌روند.

دستورات پرکاربرد kubectl در Kubernetes

1️⃣ kubectl get → نمایش منابع
📌 مثال:

kubectl get all
kubectl get pods
 kubectl get all -n kube-system
kubectl get all namespace

🔹 نتیجه: لیست تمام پادها در namespace فعلی را نشان می‌دهد.

2️⃣ kubectl delete → حذف منابع
📌 مثال:

kubectl delete pod my-pod

🔹 نتیجه: پاد my-pod حذف می‌شود.

3️⃣ kubectl describe → نمایش جزئیات یک منبع
📌 مثال:

kubectl describe pod my-pod

🔹 نتیجه: اطلاعات دقیق درباره my-pod نمایش داده می‌شود.

4️⃣ kubectl logs → دریافت لاگ‌های یک پاد
📌 مثال:

kubectl logs my-pod

🔹 نتیجه: لاگ‌های مربوط به my-pod نمایش داده می‌شود.

5️⃣ kubectl exec → اجرای یک دستور در داخل پاد
📌 مثال:

kubectl exec -it my-pod -- bash

🔹 نتیجه: یک ترمینال داخل پاد my-pod باز می‌شود.

6️⃣ kubectl apply → اعمال تغییرات از روی یک فایل
📌 مثال:

kubectl apply -f deployment.yaml

🔹 نتیجه: منابع تعریف‌شده در فایل deployment.yaml ایجاد یا به‌روزرسانی می‌شوند.

7️⃣ kubectl top → نمایش مصرف منابع (CPU/MEMORY)
📌 مثال:

kubectl top pod

🔹 نتیجه: میزان مصرف CPU و RAM پادها نمایش داده می‌شود.

🚀 این دستورات برای مدیریت کلاستر Kubernetes بسیار مهم هستند.

 

 

Pronunciation of Linux & Container Commands (IPA Notation)

Command Stands for IPA Pronunciation
CRI-O Container Runtime Interface for OpenShift /ˌsiː ɑːr aɪ ˈoʊ/ or /ˈkraɪ.oʊ/
containerd Container Daemon /kənˈteɪnɚdiː/
chmod Change Mode /ˈtʃeɪndʒ mɒd/ (British) or /ˈtʃeɪndʒ mɑːd/ (American)
podman Pod Manager /ˈpɒd.mæn/
runc OCI Runtime for Running Containers /rʌn ˈsiː/
Runtime Execution Environment for Programs /ˈrʌn.taɪm/
systemctl System Control /ˈsɪstəm ˌsiː tiː ˈɛl/ or /ˈsɪstəm kənˈtroʊl/
crictl CRI Control /ˌsiː ɑːr aɪ ˌsiː tiː ˈɛl/
kubectl Kubernetes Control /ˈkjuːb.siː.tiː.ɛl/ or /ˈkjuːb.kɛtl/
pwd Print Working Directory /piː dʌb.ljuː diː/
mkdir Make Directory /meɪk dɪˈrɛkt(ə)ri/ or /meɪk daɪˈrɛkt(ə)ri/
cd Change Directory /siː diː/

 


مقالات
سیاست
رسانه‎های دیجیتال
علوم انسانی
مدیریت
روش تحقیق‌وتحلیل
متفرقه
درباره فدک
مدیریت
مجله مدیریت معاصر
آیات مدیریتی
عکس نوشته‌ها
عکس نوشته
بانک پژوهشگران مدیریتی
عناوین مقالات مدیریتی
منابع درسی (حوزه و دانشگاه)
مطالعات
رصدخانه شخصیت‌ها
رصدخانه - فرهنگی
رصدخانه - دانشگاهی
رصدخانه - رسانه
رصدخانه- رویدادهای علمی
زبان
لغت نامه
تست زبان روسی
ضرب المثل روسی
ضرب المثل انگلیسی
جملات چهار زبانه
logo-samandehi
درباره ما | ارتباط با ما | سیاست حفظ حریم خصوصی | مقررات | خط مشی کوکی‌ها |
نسخه پیش آلفا 2000-2022 CMS Fadak. ||| Version : 5.2 ||| By: Fadak Solutions نسخه قدیم