مدیریت برنامههای کانتینری شده به یکی از ارکان اصلی تحویل نرمافزار مدرن تبدیل شده است. در حالی که داکر بستهبندی برنامهها را ساده میکند، کوبرنیتس (که اغلب به اختصار K8s نامیده میشود) زیرساخت قدرتمندی را برای مدیریت، مقیاسدهی و ارکستراسیون آن کانتینرها در یک خوشه از ماشینها فراهم میکند. برای مدیران سیستم و توسعهدهندگانی که یک محیط پایدار مبتنی بر دبیان را ترجیح میدهند، اوبونتو همچنان گزینه اول برای میزبانی خوشههای کوبرنیتس است. این راهنما فرآیند فنی راهاندازی یک صفحه کنترل با قابلیت دسترسپذیری بالا و گرههای کاری (worker nodes) کوبرنیتس را بر روی اوبونتو 20.04 LTS یا 22.04 LTS تشریح میکند.
پیشنیازها و آمادهسازی سیستم
قبل از شروع نصب، اطمینان حاصل کنید که حداقل دو سرور اوبونتو (یک گره اصلی/کنترلپلن و یک یا چند گره کاری) با دسترسی SSH دارید. توصیه میشود ابزارهای فایروال را غیرفعال کنید تا از تداخل در طول راهاندازی جلوگیری شود، یا پورتهای خاصی را برای ترافیک کوبرنیتس پیکربندی نمایید. مراحل زیر باید روی تمام گرههای خوشه شما انجام شود.
اولین مرحله، غیرفعالسازی فضای Swap است، زیرا کوبرنیتس به تخصیص پیوسته حافظه نیاز دارد و با فعال بودن swap نمیتواند عمل کند:
sudo swapoff -a
# برای دائمی کردن این تغییر، خط swap را در /etc/fstab کامنت کنید
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
سپس، ماژولهای ضروری هسته را بارگذاری کنید. کوبرنیتس برای ذخیرهسازی به overlay و برای شبکه به br_netfilter وابسته است.
cat <
برای اطمینان از عملکرد صحیح شبکه، پارامترهای sysctl را تنظیم کنید تا پلها ترافیک را ببینند و فوروارد IP فعال شود:
cat <
نصب زماناجرا (Runtime) و Kubelet
کوبرنیتس خود زماناجرای کانتینر را مدیریت نمیکند، بلکه به زماناجراهای خارجی مانند containerd، CRI-O یا داکر تکیه دارد. ما از containerd استفاده خواهیم کرد، زیرا این گزینه در حال حاضر استاندارد صنعتی است که توسط تیم SIG-Node کوبرنیتس توصیه شده است.
با نصب وابستگیها و افزودن مخزن APT کوبرنیتس شروع کنید. این کار تضمین میکند که بستهها را مستقیماً از کانال رسمی K8s دریافت میکنید، نه از مخازن پیشفرض اوبونتو که ممکن است نسخههای قدیمیتری را میزبانی کنند.
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
# افزودن کلید GPG کوبرنیتس
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# افزودن مخزن
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
# نصب بستهها
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
راهاندازی خوشه
اکنون که تمام اجزا نصب شدهاند، به گره اصلی اولیه خود وارد شوید. از kubeadm init برای راهاندازی خوشه استفاده کنید. اگر خوشه شما پشت یک پراکسی قرار دارد یا از CIDR خاصی برای پادها استفاده میکند، ممکن است نیاز به تنظیم آرگومانها داشته باشید.
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
پس از تکمیل موفقیتآمیز راهاندازی، خروجی حاوی یک دستور kubeadm join را مشاهده خواهید کرد. این توکن را کپی کنید؛ برای افزودن گرههای کاری به خوشه به آن نیاز خواهید داشت. برای شروع استفاده از خوشه به عنوان یک کاربر عادی، دستورات زیر را اجرا کنید:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
راهاندازی شبکه پاد (Pod Network)
کوبرنیتس به یک پلاگین رابط شبکه کانتینری (CNI) نیاز دارد تا به پادها اجازه دهد با یکدیگر در سراسر گرهها ارتباط برقرار کنند. ما از Flannel، یک شبکه پوششی ساده و محبوب، استفاده خواهیم کرد.
kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
بررسی کنید که تمام گرهها در وضعیت Ready قرار دارند با استفاده از:
kubectl get nodes
نتیجهگیری
راهاندازی کوبرنیتس بر روی اوبونتو فرآیندی ساده است، به شرطی که دستورالعملهای رسمی را دنبال کنید و رویکردی سیستماتیک به پیکربندی سیستم داشته باشید. با غیرفعال کردن swap، بارگذاری ماژولهای صحیح هسته و استفاده از مخزن رسمی APT کوبرنیتس، پایهای محکم برای بارهای کاری در سطح تولید ایجاد میکنید. به یاد داشته باشید که خوشه خود را با مدیریت توکنها، پیکربندی RBAC و بهروزرسانی منظم نرمافزار گرهها ایمن کنید. با روشن بودن خوشه شما، اکنون آمادهاید تا اولین معماری میکروسرویس خود را راهاندازی کنید.