ابرآراز | ArazCloud

پیاده‌سازی Kubernetes بر روی سرورهای ابری برای مدیریت کانتینرها

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

الزامات

  • سرور ابری با حداقل ۲ هسته CPU و ۴ گیگابایت RAM
  • سیستم‌عامل اوبونتو ۲۰.۰۴ یا بالاتر
  • دسترسی ریشه (Root Access) به سرور
  • آشنایی با خط فرمان لینوکس

۱. نصب و پیکربندی Kubernetes

مرحله ۱: به‌روزرسانی و نصب وابستگی‌ها

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

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

مرحله ۲: نصب Docker

Kubernetes برای مدیریت کانتینرها از Docker استفاده می‌کند. Docker را نصب کنید:

sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker

مرحله ۳: نصب kubeadm، kubelet و kubectl

این ابزارها برای نصب و مدیریت کلاستر Kubernetes مورد نیاز هستند:

# اضافه کردن مخزن Kubernetes
sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

# نصب ابزارهای Kubernetes
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

مرحله ۴: راه‌اندازی کلاستر Kubernetes

برای راه‌اندازی کلاستر Kubernetes از kubeadm استفاده کنید:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

پس از اجرای این دستور، خروجی حاوی دستورات مورد نیاز برای پیکربندی kubectl و اضافه کردن نودهای جدید به کلاستر خواهد بود.

مرحله ۵: پیکربندی kubectl

برای مدیریت کلاستر از طریق kubectl، باید آن را پیکربندی کنید:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

مرحله ۶: پیاده‌سازی شبکه کلاستر

برای اینکه پادها در کلاستر بتوانند با یکدیگر ارتباط برقرار کنند، باید یک پلاگین شبکه نصب شود. در این مثال از Flannel استفاده می‌کنیم:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

۲. اضافه کردن نودهای جدید به کلاستر

برای اضافه کردن نودهای جدید به کلاستر، باید دستور kubeadm join که در خروجی مرحله ۴ دریافت کرده‌اید را روی نودهای جدید اجرا کنید. این دستور به شکل زیر خواهد بود:

sudo kubeadm join <MASTER_IP>:<MASTER_PORT> --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>

این دستور نود جدید را به کلاستر موجود متصل می‌کند.

۳. مدیریت کانتینرها با Kubernetes

مرحله ۱: ایجاد یک دیپلویمنت

برای اجرای یک برنامه در Kubernetes، باید یک دیپلویمنت ایجاد کنید. به عنوان مثال، برای اجرای یک برنامه Nginx، دستور زیر را اجرا کنید:

kubectl create deployment nginx --image=nginx

مرحله ۲: بررسی وضعیت پادها

برای بررسی وضعیت پادهای ایجاد شده، از دستور زیر استفاده کنید:

kubectl get pods

این دستور لیستی از پادهای در حال اجرا را نشان می‌دهد.

مرحله ۳: ایجاد یک سرویس

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

kubectl expose deployment nginx --port=80 --type=NodePort

این سرویس برنامه Nginx را از طریق یک پورت مشخص در دسترس قرار می‌دهد.

مرحله ۴: بررسی سرویس‌ها

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

kubectl get services

این دستور اطلاعات سرویس‌های در حال اجرا را نمایش می‌دهد.

۴. به‌روزرسانی و مقیاس‌گذاری برنامه‌ها

مرحله ۱: به‌روزرسانی دیپلویمنت

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

kubectl set image deployment/nginx nginx=nginx:latest

مرحله ۲: مقیاس‌گذاری دیپلویمنت

برای افزایش یا کاهش تعداد پادها، از دستور زیر استفاده کنید:

kubectl scale deployment/nginx --replicas=3

این دستور تعداد پادهای Nginx را به ۳ افزایش می‌دهد.

نتیجه‌گیری

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