مقدمه
همانطور که در مقاله قبلی (کوبرنتیز چیست) خواندید، کوبرنتیز (Kubernetes یا بهاختصار K8s) یک پلتفرم متنباز برای مدیریت خودکار کانتینرها است که توسعه، استقرار، و مقیاسبندی برنامههای مدرن را ساده میکند. این سری آموزشی برای مبتدیانی طراحی شده که میخواهند از صفر شروع کنند و همچنین برای افرادی که به دنبال درک عمیقتر هستند.
معماری کوبرنتیز
برای درک کوبرنتیز، باید معماری آن را بشناسیم. یک خوشه کوبرنتیز از دو بخش اصلی تشکیل شده است: گره اصلی (Master Node) و گرههای کارگر (Worker Nodes). گره اصلی مغز خوشه است و وظایف مدیریتی را انجام میدهد، در حالی که گرههای کارگر کانتینرها را اجرا میکنند.
معماری کوبرنتیز
- گره اصلی: وظایف مدیریتی مثل زمانبندی، نظارت، و ذخیرهسازی دادهها را انجام میدهد.
- گرههای کارگر: کانتینرها را اجرا میکنند و با گره اصلی هماهنگ هستند.
- معمولاً شامل یک یا چند کانتینر است که منابع مشترکی (مثل آدرس آیپی و ذخیرهسازی) دارند.
- در یک گره اجرا میشود و توسط کوبرنتیز مدیریت میشود.
- موقتی است؛ اگر خراب شود، کوبرنتیز آن را جایگزین میکند.
- یک آدرس ثابت (IP یا نام DNS) برای دسترسی به پادها ارائه میدهد.
- ترافیک را بین پادها متعادل میکند (Load Balancing).
- حتی اگر پادها تغییر کنند (مثلاً به دلیل خرابی یا مقیاسبندی)، سرویس دسترسی را حفظ میکند.
- مقیاسبندی: افزایش یا کاهش تعداد پادها.
- بهروزرسانی: اعمال تغییرات تدریجی در برنامه (مثل ارتقاء نسخه).
- بازگشت: امکان بازگشت به نسخههای قبلی در صورت بروز مشکل.
- منابع (پادها، سرویسها، استقرارها) را ایجاد، حذف، یا ویرایش کنید.
- وضعیت خوشه را بررسی کنید (مثل kubectl get pods).
- دستورات پیشرفته مثل مشاهده لاگها (kubectl logs) یا دیباگ را اجرا کنید.
- kubectl
-
API Server: نقطه تماس مرکزی برای تمام تعاملات. تمام دستورات kubectl از طریق API Server پردازش میشوند.
-
etcd: پایگاه داده کلیدی-مقداری که وضعیت خوشه (مثل اطلاعات پادها و سرویسها) را ذخیره میکند.
-
Scheduler: تصمیم میگیرد که پادها روی کدام گره اجرا شوند، با توجه به منابع موجود، نیازهای پاد، و محدودیتها.
-
Controller Manager: کنترلکنندههایی را اجرا میکند که وضعیت خوشه را با وضعیت مورد نظر هماهنگ میکنند (مثل اطمینان از اجرای تعداد درست پادها).
نصب و راهاندازی محیط
- دانلود و نصب:
- دانلود و نصب:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
مک:
brew install minikube- دانلود و نصب:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin
- مک:
brew install kubectl
- ویندوز:
فایل اجرایی را دانلود و به PATH اضافه کنید.
گام ۴: راهاندازی خوشه با Minikube
حالا بیایید اولین خوشه کوبرنتیز خود را راهاندازی کنیم.
راهاندازی Minikube: دستور زیر را اجرا کنید:
minikube start
این دستور یک خوشه تکگرهای ایجاد میکند و ممکن است چند دقیقه طول بکشد تا تصاویر دانلود شوند.
بررسی خوشه: برای بررسی وضعیت خوشه دستور زیر را وارد کنید:
kubectl cluster-info
باید اطلاعات سرور کنترل نمایش داده شود. گرهها را بررسی کنید:
kubectl get nodes
باید یک گره با وضعیت Ready ببینید.
تست خوشه: دستور زیر پادهای سیستمی را نشان میدهد:
kubectl get pods --all-namespaces
گام ۵: اجرای یک برنامه ساده
برای درک نحوه کار کوبرنتیز، یک وبسرور Nginx مستقر میکنیم.
ایجاد استقرار (دیپلوی): دستور زیر یک دیپلوی با یک پاد ایجاد میکند:
kubectl create deployment nginx-deployment --image=nginx
با دستورات زیر دیپلوی و پادها را بررسی کنید:
ایجاد سرویس: برای دسترسی به Nginx، یک سرویس NodePort ایجاد کنید:
kubectl expose deployment nginx-deployment --type=NodePort --port=80
دسترسی به برنامه: URL سرویس را پیدا کنید:
minikube service nginx-deployment --url
URL را در مرورگر باز کنید تا صفحه پیشفرض Nginx را ببینید.جمعبندی
سوالات متداول
-
چگونه در حوزه رایانش ابری بهروز بمانم؟
- رایانش ابری چیست و چرا مهم است؟
- آیا کوبرنتیز برای مهندسان ابر مهم است؟

اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
ثبت نظر