فصل ششم: استقرار و آینده

مقدمه‌ای بر Kubernetes

ارکستراسیون کانتینرها در مقیاس بزرگ

Kubernetes (که اغلب K8s نوشته می‌شود) یک پلتفرم متن‌باز برای ارکستراسیون کانتینرها است که در اصل توسط گوگل توسعه یافت. وظیفه‌ی اصلی آن، مدیریت اجرای کانتینرها روی مجموعه‌ای از سرورها (Cluster) است: تصمیم می‌گیرد هر کانتینر روی کدام سرور اجرا شود، اگر یک کانتینر از کار افتاد آن را به‌طور خودکار دوباره راه‌اندازی می‌کند، و می‌تواند بر اساس میزان بار، تعداد نمونه‌های در حال اجرای یک سرویس را خودکار افزایش یا کاهش دهد.

واحد پایه‌ی اجرا در Kubernetes Pod نام دارد که یک یا چند کانتینر مرتبط را در بر می‌گیرد. یک تعریف ساده از یک Deployment (نحوه‌ی اجرای پایدار چند نسخه از یک سرویس) به این شکل است:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: order-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: order-service
  template:
    metadata:
      labels:
        app: order-service
    spec:
      containers:
        - name: order-service
          image: registry.mycompany.com/order-service:1.2.0
          ports:
            - containerPort: 8000

چند مفهوم کلیدی دیگر

replicas: 3 یعنی همیشه سه نمونه از این سرویس به‌طور همزمان اجرا شوند؛ اگر یکی از کار بیفتد، Kubernetes بلافاصله نمونه‌ی جدیدی جایگزین می‌کند. مفهوم Service در Kubernetes، ترافیک را بین این نمونه‌ها توزیع می‌کند (Load Balancing) و Ingress نقش مشابه API Gateway برای ورود ترافیک از بیرون به داخل Cluster را ایفا می‌کند. یادگیری کامل Kubernetes خودش موضوع یک دوره‌ی مستقل است؛ هدف این درس فقط آشنایی با مفاهیم پایه و جایگاه آن در معماری میکروسرویس بود.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.