امروز قراره با قدرت مینیمالیسم آشنا بشیم
اول یه کم راجب کوبرنتیز صحبت میکنیم
و K0s رو با رقبا مقایسه میکنیم
ویاد میگیریم که چطوری میکتونیم یه کلاستر مینیمال بیاریم بالا
قبل از اینکه شروع کنیم باید یه مقداری دانش داکر داشته باشیم
اول بریم تا یه آشنایی کمی راجب کوبرنتیز داشته باشیم
کوبرنتیز یه رهبر ارکست برای کانتینر هاست که کارش مدیریت کلاستر و سرور هاتونه مثلا اینکه چی کجا بره و…
و خوب ما توی کوبرنتیز معمولا نیاز نداریم که با کانتینر ها به طور مستقیم ارتباط برقرار کنیم چونکه خود منابعی که کوبرنتیز در اختارمون میزاره و مدیریتشون میکنه باعث میشه که ما از مدیریت اونا بی نیاز بشیم
یه کم از K0s بگیم
K0s یه ابزاریه که میتونیم باهاش کلاستر کوبرنتیز مینیمال و بی دردسر داشته باشیم
به جای داکر از ContainerD قراره استفاده کنیم (شاید یه کم سخت باشه ولی خوب مینیمال قراره پیش بریم) البته تو استفاده از ایمیج ها به مشکل نمیخوریم چون از ساختار Cgroup و دوستاش همشون پیروی میکنن
K0s یه خوبی که داره با کانفیگ که میگیره میتونه Helm Chart های مورد نظرتون رو موقع Bootstrap کردن کلاستر اعمال کنه که تقریبا از ابزار هایی مثل انسیبل بی نیاز میشیم
رقیباش کیان؟
microk8s ساخته canonical
K3s از تیم Rancher (سازنده Rancher و RKE)
نیازمندی هامون
برای استفاده ازش تقریبا از هر منابعی که دارید میتونید استفاده کنید ولی اگه میخواید دقیق تر بدونید پیشنهاد میکنم از این لینک دیدن کنید https://github.com/k0sproject/k0s/blob/main/docs/system-requirements.md
بریم تا یه کلاستر کوبرنتیز ساده رو داشته باشیم
اول از همه روی سرور هاتون یه سیستم عامل لینوکس بیس نصب کنید (هر توزیعی که باشه باید کار کنه)
حالا یکی از روش های نصب رو انتخاب میکنیم (Single Node, k0sctl, Raspberry Pi 4, Ansible و…) الان قراره به k0sctl و Single Node بپردازیم چون روش های پیشنهادی ان
روش Single Node
اول از همه باید k0s رو نصب کنیم
برای اینکار دستور زیر را وارد کنید
curl -sSLf https://get.k0s.sh | sudo sh
وقت یه لیوان قهوس تا نصب انجام بشه
وقتی تموم شد نصب خودتون رو میتونید با اجرای دستور k0s بدون هیچ آپشنی تایید کنید برای باید راهنمای دستورات براتون نمایش داده بشه
k0s install
دستوریه
که قراره با اون
کلاستر تک سرورمون رو init
کنیم
که با دستور زیر یه کلاستر تک نوده آماده
میشه
k0s install controller –single
و
برای استارت شدن کلاستر از دستور زیر
استفاده میکنیم
k0s start
با
دستور زیر میتونید وضعیت کلاستر رو چک
کنید
k0s status
برای
kubectl از دستور k0s kubectl استفاده کنید فایل کانفیگش هم اینجاست /var/lib/k0s/pki/admin.conf
دسترسی
حالا
k0sctl
بریم سراغ
معمولا
تو محیط های پروداکشن و جاهایی که به
اتوماتیک سازی نیاز داریم از این راه
استفاده میکنیم
توی
این تصویر میتونید روش کار این ابزار دوست
داشتنی رو ببینید
برای
https://github.com/k0sproject/k0sctl/releases/latest و نسخه مناسب سیستم عامل خودتون رو دانلود کنیم و یه جای خوب تو PATH بزاریدش (اون رو توی سرور های مقصد نصب نکنید)
نصبش برید توی این لینک
با
این دستور یه کانفیگ اولیه رو میسازیم
k0sctl init > k0sctl.yaml
فایل ایجاد شده را بررسی و تغییرات لازم را اعمال کنید
برای دیدن جزییات این فایل به آدرس
https://github.com/k0sproject/k0sctl#configuration-file-spec-fields مراجعه کنیدبعد از آماده شدن کانفیگ با دستور زیر کلاستر را
init کنید k0sctl apply --config k0sctl.yaml سپس با دستور زیر فایل کانفیک kubectl را دریافت کنید k0sctl kubeconfig > kubeconfig با دستورات زیر میتونید از سلامت کلاستر اطمینان پیدا کنید kubectl --kubeconfig kubeconfig get all -A kubectl --kubeconfig kubeconfig get nodes اگه از حالتcontroller+worker استفاده میکنید و پاد ها به سرور ها اختصاص پیدا نمیکنه از دستور زیر استفاده کنید
kubectl --kubeconfig kubeconfig taint nodes controlplane node-role.kubernetes.io/master:NoSchedule- دو نکته: k0sctl سرور های پاک شده را از کلاستر خارج نمیکند k0sctl apply فقط تغییرات را اعمال میکند
نظرات کاربران