این مستندات به شما نحوه پیادهسازی 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 بر روی سرورهای ابری و مدیریت کانتینرها با استفاده از آن پرداخته شد. با استفاده از این راهنما، شما میتوانید برنامههای خود را در مقیاس بزرگ و با کارایی بالا اجرا کنید.