مقالات آموزشی سرور

راه اندازی کلاستر Kubernetes روی سرور HP DL360 G10

راه اندازی کلاستر Kubernetes روی سرور HP DL360 G10

راه اندازی کلاستر Kubernetes روی سرور HP DL360 G10 : راه‌اندازی یک کلاستر Kubernetes روی یک سرور فیزیکی مانند HPE DL۳۶۰ G۱۰ که ESXi ۸U۳ روی آن نصب شده، نیازمند برنامه‌ریزی دقیق، مدیریت منابع و رعایت استانداردهای امنیتی است. در این مقاله، مراحل گام‌به‌گام ایجاد نودهای Master و Worker، بهینه‌سازی منابع، مدیریت شبکه، ذخیره‌سازی و امنیت کلاستر توضیح داده شده است.

جهت خرید سرور HP DL360 G10 میتوانید به فروشگاه ما مراجعه کنید …

معماری کلاستر Kubernetes

برای یک سرور فیزیکی واحد، تمام نودهای Kubernetes به صورت ماشین‌های مجازی (VMs) ایجاد می‌شوند. این رویکرد مزایای زیر را دارد:

  • ایزوله‌سازی محیط‌ها: هر نود مستقل از دیگر نودها عمل می‌کند و خطا در یک نود باعث اختلال در کل کلاستر نمی‌شود.

  • مدیریت منابع بهینه: RAM، CPU و Storage برای هر نود به صورت اختصاصی تخصیص داده می‌شود.

  • انعطاف‌پذیری توسعه و تست: امکان اضافه یا حذف نودها بدون تأثیر مستقیم بر سرور فیزیکی فراهم است.

پیشنهاد معماری برای یک سرور فیزیکی

  • ۱ کنترل‌پلین (Master Node)

  • ۲ یا ۳ نود Worker (با توجه به منابع سرور)

  • ۱ نود برای ذخیره‌سازی (Storage Node) اختیاری برای Ceph یا NFS

توصیه می‌شود حداقل ۴GB رم و ۲vCPU برای Master و ۸GB رم و ۴vCPU برای هر Worker در نظر گرفته شود. فضای دیسک بسته به تعداد پادها و حجم داده‌ها متغیر است.

 آماده‌سازی ESXi و ایجاد ماشین‌های مجازی

قبل از نصب Kubernetes، باید ماشین‌های مجازی روی ESXi ایجاد و پیکربندی شوند.

۱. ایجاد VM در ESXi

برای هر نود:

  • سیستم‌عامل: Ubuntu ۲۲.۰۴ LTS (نسخه Server)

  • پردازنده: ۲vCPU برای Master، ۴vCPU برای Worker

  • رم: ۴GB Master، ۸GB Worker

  • دیسک: ۲۰GB Master، ۴۰GB Worker

  • شبکه: Bridge Mode (دستگاه‌ها باید به شبکه LAN دسترسی داشته باشند)

برای نودهای Worker، سه VM مشابه ایجاد کنید تا بتوانید پایداری و مقیاس‌پذیری را بررسی کنید.

۲. بهینه‌سازی منابع VM

  • از Resource Pools در ESXi استفاده کنید تا CPU و RAM به صورت منظم و کنترل‌شده بین نودها تقسیم شود.

  • Reservation و Limits برای CPU و RAM هر VM تعیین کنید تا Master همیشه منابع کافی داشته باشد.

  • از Thin Provisioning برای دیسک‌ها استفاده کنید تا فضای ذخیره‌سازی بهینه مصرف شود.

نصب و پیکربندی سیستم‌عامل روی VMها

۱. نصب Ubuntu

  • نصب Ubuntu ۲۲.۰۴ Server روی هر VM

  • فعال‌سازی SSH برای مدیریت از راه دور

  • ایجاد کاربر با دسترسی sudo

۲. تنظیم نام نودها

sudo hostnamectl set-hostname master-node
sudo hostnamectl set-hostname worker-node1
sudo hostnamectl set-hostname worker-node2

۳. تنظیم فایل Hosts

برای شناسایی نودها توسط یکدیگر:

192.168.1.10 master-node
192.168.1.11 worker-node1
192.168.1.12 worker-node2

این تنظیم باعث می‌شود Podها و سرویس‌ها بتوانند نودهای دیگر را به‌راحتی شناسایی کنند.

 نصب Docker و Kubernetes

۱. آپدیت سیستم

sudo apt update && sudo apt upgrade -y

۲. نصب Docker

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

۳. نصب Kubernetes

sudo apt install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet

توصیه می‌شود Swap را غیرفعال کنید تا Kubernetes بدون مشکل اجرا شود:

sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab

راه‌اندازی کنترل‌پلین (Master Node)

۱. اجرای kubeadm

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

۲. پیکربندی Kubeconfig

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

۳. نصب شبکه CNI

برای مثال، Calico:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

شبکه CNI برای ارتباط Podها ضروری است و مدیریت IPها و سیاست‌های امنیتی را فراهم می‌کند.

 اضافه کردن Worker Nodes

  • روی هر Worker، دستور join ارائه‌شده توسط kubeadm Master اجرا می‌شود:

sudo kubeadm join 192.168.1.10:6443 --token xyz --discovery-token-ca-cert-hash sha256:abc
  • بررسی وضعیت نودها در Master:

kubectl get nodes

هر نود باید در وضعیت Ready نمایش داده شود. در صورت خطا، با بررسی لاگ‌های kubelet و اتصال شبکه اقدام به رفع مشکل کنید.

ذخیره‌سازی Persistent و Volume Management

  • برای Podهای Stateful، نیاز به Persistent Volume دارید.

  • استفاده از NFS Server یا Ceph روی یک نود جداگانه توصیه می‌شود.

  • نمونه PV و PVC در Kubernetes:

apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
path: /srv/nfs
server: 192.168.1.20

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nfs
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi

 بهینه‌سازی منابع و Performance Tuning

  1. CPU & Memory Limits: هر Pod باید محدودیت منابع داشته باشد تا نودها دچار Resource Starvation نشوند.

  2. Node Affinity: پادها می‌توانند روی نودهای خاص اجرا شوند تا منابع بهینه استفاده شود.

  3. Monitoring: نصب Prometheus و Grafana برای مانیتورینگ استفاده CPU، RAM، Network و Disk.

 امنیت کلاستر Kubernetes

  1. RBAC: تنظیم نقش‌ها برای کنترل دسترسی کاربران و سرویس‌ها.

  2. Network Policies: محدود کردن ترافیک بین پادها.

  3. TLS و Certificates: اطمینان از رمزنگاری تمام ارتباطات داخلی کلاستر.

  4. Pod Security Policies: جلوگیری از اجرای Podها با دسترسی root یا privileged.

تست کلاستر و استقرار اپلیکیشنها

  • اجرای پاد Nginx برای تست:

kubectl run nginx --image=nginx --port=80
kubectl get pods -o wide
  • بررسی Logها و Network:

kubectl logs nginx
kubectl describe pod nginx

پس از تست موفق، می‌توانید سرویس‌ها، Deployments و StatefulSetها را بر اساس نیازهای سازمان مستقر کنید.

نکات پیشرفته

  1. Backup etcd: اطلاعات Kubernetes در etcd ذخیره می‌شود. پشتیبان‌گیری منظم ضروری است.

  2. Auto-scaling: امکان Scale کردن نودها و Podها با استفاده از Cluster Autoscaler.

  3. High Availability: اگر منابع سرور کافی باشد، Masterهای اضافه برای HA راه‌اندازی کنید.

  4. Logging مرکزی: استفاده از EFK Stack (Elasticsearch, Fluentd, Kibana) برای مدیریت لاگ‌ها.

نتیجه گیری

راه‌اندازی کلاستر Kubernetes روی یک سرور فیزیکی با ESXi امکان‌پذیر است و با رعایت موارد زیر، کلاستر پایدار و امن ایجاد می‌شود:

  • ایجاد VMها با تخصیص منابع بهینه

  • نصب و پیکربندی صحیح سیستم‌عامل، Docker و Kubernetes

  • مدیریت شبکه و Persistent Storage

  • بهینه‌سازی منابع، مانیتورینگ و امنیت

با رعایت این اصول، می‌توانید یک محیط Kubernetes حرفه‌ای و مقیاس‌پذیر روی سرور HPE DL۳۶۰ G۱۰ خود داشته باشید و اپلیکیشن‌های سازمانی را با اطمینان کامل اجرا کنید.

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

دیدگاهتان را بنویسید