روشهای نصب Kubernetes
روشهای نصب Kubernetes راهنمای کامل
اگر با Kubernetes آشنایی دارید، باید بدانید نصب Kubernetes یکی از موضوعات چالش برانگیز است. این چالش به این دلیل رخ می دهد که روش های نصب زیادی وجود دارد. من قصد دارم در این مقاله روش های نصب Kubernetes، انتخاب های موجود و بهترین روش ها را معرفی کنم. بیایید شروع کنیم.
روش های نصب Kubernetes:
از آنجایی که روش های نصب زیادی وجود دارد، من این روش ها را به پنج نوع اصلی تقسیم می کنم. این تقسیم بندی بر اساس استفاده، سهولت نصب و محل نصب است.
1- نصب تک نود
این نوع نصب برای کسانی که میخواهند Kubernetes را مشاهده کنند یا برای تمرینها، آزمایشها و اهداف توسعه مناسب است. بسیاری از توزیع های تک گره Kubernetes در بازار هستند، اما من محبوب ترین آنها را معرفی می کنم.
minikube
یک توزیع Kubernetes تک گره است که به طور رسمی توسط جامعه Kubernetes منتشر می شود. آخرین نسخه Kubernetes را می توان با minikube اجرا کرد. در کنار نصب Kubernetes، برخی از افزونه های Kubernetes را می توان به سرعت اجرا کرد. با minikube، Kubernetes را می توان در VM، Container یا سیستم های bare-metal مستقر کرد. در minikube از (Docker، Containerd، CRI-O) پشتیبانی میشوند.
اطلاعات بیشتر در https://minikube.sigs.k8s.io
kind
یک توزیع Kubernetes برای اجرای کلاستر در داخل کانتینرهای Docker است.
Kind مخفف Kubernetes در Docker است. این توزیع برای آزمایش، توسعه محلی و سیستم های CI مناسب است. این نوع به طور رسمی توسط جامعه Kubernetes توزیع می شود.
اطلاعات بیشتر در https://kind.sigs.k8s.io
k3s
یکی دیگر از توزیع های کاربردی است که توسط Rancher منتشر شده است. این در ابتدا برای اینترنت اشیاء IOT و محاسبات لبه ساخته شد اما می تواند برای مقاصد دیگر مورد استفاده قرار گیرد. می توانید یک Kubernetes تک گره یا یک کلاستر را با چندین دستور اجرا کنید.
اطلاعات بیشتر در https://k3s.io
k3d
یک پوشش برای اجرای k3s در داکر است. این یک خوشه Kubernetes را روی ماشین محلی شما راه اندازی می کند، درست مانند Kind. k3d توسط Rancher منتشر شده است.
microk8s
یکی دیگر از گزینه های نصب است. یک Kubernetes و خوشه های تک گره را می توان با استفاده از microk8 مستقر کرد. Canonical این توزیع Kubernetes را منتشر می کند – شرکت Ubuntu آنرا منتشر می کند – و همچنین در مدیر بسته Snappy در دسترس است. Kubernetes را می توان با چند دستور با استفاده از microk8 مستقر کرد. در کنار Kubernetes، مجموعه ای از افزونه های مختلف در دسترس هستند تا بتوان آنها را به سرعت مستقر کرد.
اطلاعات بیشتر در https://microk8s.io
2- نصب دستی کلاستر:
این نوع نصب برای استقرار یک کلاستر حداقل قابل دوام استفاده می شود. برخی از قسمت های نصب باید به صورت دستی انجام شود. این یک روش ترجیحی برای استقرار خوشه Kubernetes برای اولین بار است. kubeadm ابزاری است که برای استقرار یک کلاستر به صورت دستی استفاده می شود. از آن برای راهاندازی اجزای Kubernetes استفاده میشود، نه برای تامین ماشینها. قبل از بوت استرپ کردن کلاستر، برخی از اقدامات باید به صورت دستی انجام شود.
اطلاعات بیشتر در https://kubernetes.io/docs/reference/setup-tools/kubeadm
3- نصب خودکار کلاستر:
این نوع نصب از ابزارهای اتوماسیون، اسکریپت ها یا نصب کننده های توزیع شده توسط ارائه دهنده استفاده می کند. این یک راه بهتر برای کسانی است که میخواهند خوشههای Kubernetes درجه تولید را هم در یک محیط داخلی و هم در فضای ابری با کنترل بیشتر بر تمام اجزای Kubernetes، هم گرههای Control-plane و هم در گرههای کارگر، مستقر کنند.
kubespray
مجموعهای از playbooks Ansible است که برای استقرار کلاسترهای درجه تولید production-grade در سیستمهای bare-metal و ابر استفاده میشود. در کنار نصب، عملیات آبدیت و نگهداری را می توان با استفاده از Kubespray انجام داد. انجمن Kubernetes رسما این نصب کننده را نگهداری می کند. ده ها افزونه در Kubespray در دسترس هستند و می توانند به سرعت همراه با Kubernetes مستقر شوند. kubespray یکی از مناسب ترین گزینه های نصب است.
kops
چرخه حیات کلاستر را مدیریت می کند و زیرساخت ابری لازم را فراهم می کند. استقرار در AWS به طور رسمی پشتیبانی می شود. استقرار در سایر ارائه دهندگان ابری در دسترس است اما در حالت آلفا و بتا.
اطلاعات بیشتر در https://kops.sigs.k8s.io
RKE
یک Kubernetes توزیعشده Rancher است که خوشههای Kubernetes درجه تولید را داخل کانتینرهای Docker مستقر میکند. RKE برای مدیریت توزیع Kubernetes آسان است. اگر می خواهید از پلتفرم مدیریت Rancher Kubernetes استفاده کنید، این توزیع را انتخاب کنید.
اطلاعات بیشتر در https://github.com/rancher/rke
Charmed Kubernetes
روشی متعارف برای استقرار خوشه های Kubernetes با Juju است. برای اجرای Kubernetes هم در محیط های چند ابری و هم بر روی bare-metal مناسب است. اگر به دنبال توزیع واجد شرایط Kubernetes هستید که بتوان آن را در OpenStack مستقر کرد، این نصب کننده برای شما طراحی شده است.
اطلاعات بیشتر در https://ubuntu.com/kubernetes
KubeSphere
نه تنها یک توزیع Kubernetes است، بلکه یک پلت فرم برای ایجاد یک راه حل ابری مبتنی بر Kubernetes است. بسیاری از ابزارها، افزونه ها و غیره را می توان با استفاده از KubeSphere همراه با Kubernetes مستقر کرد. این پلتفرم همچنین می تواند روی خوشه Kubernetes موجود برای مدیریت آن با استفاده از KubeSphere مستقر شود.
اطلاعات بیشتر در https://kubesphere.io
Kubermatic
یک پلت فرم Kubernetes است، درست مانند Rancher. میتوانید خوشههای Kubernetes را در فضای ابری و همچنین در محل مستقر و مدیریت کنید. OpenVPN ارتباط بین خوشه اصلی/seed و خوشه های پایین دست را مدیریت می کند.
اطلاعات بیشتر در https://github.com/kubermatic/kubermatic
KubeOne
ابزاری برای فراهم کردن زیرساخت های لازم و استقرار Kubernetes در چندین ارائه دهنده است. می توان آن را با Terraform و Kubermatic ادغام کرد.
اطلاعات بیشتر در https://github.com/kubermatic/kubeone
4- کلاستر های مدیریت شده:
ارائه دهندگان ابر چرخه حیات خوشه های شما را مدیریت می کنند. در این نوع نصب، یک خوشه درجه تولید را می توان با حداقل تلاش کاربر مستقر کرد. ارائه دهندگان مسئول مدیریت کل خوشه و زیرساخت های زیربنایی هستند. این روش به دلیل سهولت در نصب و مدیریت به همه پیشنهاد می شود. یکی دیگر از مزایای استفاده از Kubernetes مدیریت شده، دسترسی به ویژگی های ابری است. برخی از ارائه دهندگان مدیریت شده Kubernetes مجموعه ای از ویژگی های مفید را ارائه می دهند که ممکن است در محل یا bare-metal در دسترس نباشد.
Magnum
یک راه حل OpenStack برای نصب Kubernetes مدیریت شده – و سایر ابزارهای هماهنگی – در بالای اکوسیستم OpenStack است. با Magnum ، مشتریان ابری می توانند خوشه های Kubernetes را به سرعت اجرا کنند. من تصمیم گرفتم آن را در اینجا معرفی کنم زیرا از ویژگی های ابری فوق العاده نیز پشتیبانی می کند. علاوه بر این، ارائه دهندگان ابری مبتنی بر OpenStack می توانند این روش را برای نصب خوشه های مدیریت شده Kubernetes در اختیار مشتریان خود قرار دهند.
اطلاعات بیشتر در https://docs.openstack.org/magnum/latest
EKS
مخفف Elastic Kubernetes Service است و راه حل آمازون برای ارائه خوشه های Kubernetes مدیریت شده است. EKS را می توان به راحتی با سایر خدمات آمازون ادغام کرد. یک ابزار خط فرمان، eksctl، یک خوشه Kubernetes تولیدی را در چند دقیقه اجرا می کند.
اطلاعات بیشتر در https://aws.amazon.com/eks
GKE
یک نسخه گوگل از Kubernetes است، درست مانند EKS. GKE همچنین یک حالت عملیات ویژه به نام Autopilot ارائه می دهد که هزینه های مدیریت را کاهش می دهد و خوشه ها را بهینه می کند.
اطلاعات بیشتر در https://cloud.google.com/kubernetes-engine
AKS
توسط Microsoft Azure مدیریت می شود و می تواند به سرعت مستقر شود. این راه حل مدیریت شده Kubernetes برای کاربران Azure مناسب است زیرا با سایر ابزارهای Azure موجود در اکوسیستم Azure ادغام می شود.
اطلاعات بیشتر در https://azure.microsoft.com/en-us/services/kubernetes-service
5- Kubernetes the hard way:
روش سخت برای نصب Kubernetes از ابتدا استفاده می شود. من این نوع نصب را به همه کسانی که می خواهند تمام اجزای Kubernetes را یاد بگیرند تا Kubernetes را عمیقاً درک کنند، پیشنهاد می کنم. اگر میخواهید فرآیند استقرار یک کلاستر و آنچه در پشت حس بین اجزای کلاستر اتفاق میافتد بدانید، حداقل یک بار Kubernetes را با این روش نصب کنید.
تا جایی که من می دانم، Kelsey Hightower کسی است که برای اولین بار روش سخت را منتشر کرد. او نحوه استقرار Kubernetes را از ابتدا در GCP توضیح می دهد.
اطلاعات بیشتر در https://github.com/kelseyhightower/kubernetes-the-hard-way
Mumshad Mannambeth مخزن Kelsey’s repo را فورک کرد و آن را تغییر داد تا با استفاده از HashiCorp Vagrant به VMهای محلی مستقر شود. حتی اگر این نسخه از راه سخت به آخرین نسخه Kubernetes به روز نشده است، این یک راه عالی برای شروع است.
اطلاعات بیشتر در https://github.com/mmumshad/kubernetes-the-hard-way
نتیجه گیری:
بسیاری از ابزارها و راه حل های دیگر برای نصب Kubernetes در بازار وجود دارد. با این حال، من موارد محبوب تر را توصیف کردم. اینکه کدام روش را باید استفاده کنید به خودتان بستگی دارد. هیچ راه حل درستی وجود ندارد، اما اگر نظر من را به عنوان بهترین عمل می خواهید، در اینجا چند گزینه برای شما در موقعیت های مختلف وجود دارد.
- تست و توسعه در یک نود مطلق: minikube
- اجرای کلاستر چندنودی Kubernetes بر روی یک ماشین تکنودی: Kind یا k3d
- کلاستری حداقلی برای تولید بر اساس اکوسیستم اوبونتو: microk8s
- یک نود با افزودنیهای از پیش نصب شده: k3s
- دوستی با IoT و پشتیبانی از کلاسترینگ: k3s یا microk8s
- برای استفاده به عنوان اجراکننده در سیستمهای CI/CD: k3s یا microk8s
- کلاستر حداقلی دستی: kubeadm
- نصب کلاستر خودکار بر اساس Ansible: kubespray
- کلاستری خودمدیریتی بر روی AWS: kops
- خودمدیریت برای زیرساختهای مختلف: KubeOne
- کلاستری دوستانه با Rancher بر روی Docker: RKE
- برای علاقمندان به اوبونتو که از Juju استفاده میکنند: Charmed Kubernetes
- مدیریت محیطهای چندکلاستری: Rancher یا Kubermatic
- مدیریت برنامههای مبتنی بر ابر: KubeSphere
- ابرهایی که بر مبنای OpenStack ساخته شدهاند: Magnum
- کلاستر مدیریتشده برای همه: GKE، EKS یا AKS
- کلاستر مدیریتشده با پشتیبانی از اتوپایلوت: GKE
- برای کسانی که میخواهند Kubernetes را عمیقاً درک کنند: The Hard Way
- روشهای روزمره (همهچیز در یک): minikube یا k3s
منبع: https://kubedemy.io/kubernetes-installation-methods-the-complete-guide-update-2022
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.