Kubernetes چیست؟
پلتفرم متنباز Orchestration کانتینرها برای استقرار، مقیاسدهی خودکار و Self-healing اپلیکیشنهای چند-Container در مقیاس بزرگ.
چرا مهم است؟
وقتی تعداد Container ها و سرورها زیاد میشود، مدیریت دستی با Docker Compose عملاً غیرممکن میشود؛ Kubernetes امروز استاندارد صنعتی برای اجرای اپلیکیشنهای کانتینری در مقیاس Production است.
تعریف
Kubernetes (بهاختصار K8s) مجموعهای از سرورها (Cluster) را مدیریت میکند و مطمئن میشود تعداد مشخصی از Instance های هر اپلیکیشن همیشه در حال اجرا هستند — حتی اگر یک سرور از کار بیفتد.
اجزای کلیدی
- Pod: کوچکترین واحد استقرار؛ معمولاً شامل یک Container
- Deployment: تعریف میکند چند Replica از یک Pod باید همیشه اجرا باشد
- Service: یک آدرس ثابت شبکه برای دسترسی به مجموعهای از Pod ها
- Ingress: مسیریابی ترافیک HTTP از بیرون Cluster به Service های داخلی
نمونه Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-deployment
spec:
replicas: 3
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: myregistry/api:1.0
ports:
- containerPort: 80
Self-healing و مقیاسدهی
اگر یک Pod بمیرد یا Node آن از کار بیفتد، Kubernetes بهطور خودکار یک Pod جدید جایگزین میکند. با HorizontalPodAutoscaler میتوان تعداد Replica ها را بر اساس مصرف CPU/حافظه بهصورت خودکار بالا و پایین برد.
اشتباه رایج
❌ اجرای اپلیکیشن Stateful (دیتابیس) بدون PersistentVolume — با حذف یا جابهجایی Pod، دادههای ذخیرهشده داخل خودِ Container از بین میروند.
منبع و مطالعه بیشتر
خلاصه
Kubernetes اجرای اپلیکیشنهای کانتینری را در مقیاس بزرگ با Self-healing و مقیاسدهی خودکار مدیریت میکند. برای دادههای ماندگار همیشه از PersistentVolume استفاده کنید، نه فضای داخلی Pod. مرجع کامل: مستندات رسمی Kubernetes.
