تا این مدت اکثر مواقع محیط آزمایشگاهی داشتم. یعنی چند تا سیستم داشتم که کوبر را روی اونها نصب می کردم و تست هام را انجام می دادم. چون تو ایران هم معمولا یکی از کارهامون نصب کوبر بود اینکار خیلی مفید بود. ولی اینجا الان دیگه نصب کردن کوبر ارزشی نداره و اینکه دستریس به اون همه سیستم هم ندارم فعلا. برای همین رفتم سراغ kind.
kind چیست؟
kind یک ابزار برای راه انداز لوکال کوبرنتیز روی کانتینر هست. یعنی به جای اینکه نودهای مختلف بیاریم بالا از کانتینر به عنوان نود استفاده میکنیم.
هدفم این هست که روی لپ تاپم که یک اوبونتو نسخه 22.04 هست یک محیط تست برای کار با کوبرنتیز داشته باشم. برای این کار به ابزار های زیر نیاز داریم
هر کدوم را به راهنمای نصبش لینک دادم که یه راست از روی سایت خودش نصب کنید
وقتی همه ابزار ها را نصب کردید خیلی راحت می تونید با دستور kind یک کلاستر بسازید. مثلا در مثلا زیر یک کلاستر به نام linuxmotto-lab می خوایم بسازیم
cat <<EOF | kind create cluster --name linuxmotto-lab --config=- kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane kubeadmConfigPatches: - | kind: InitConfiguration nodeRegistration: kubeletExtraArgs: node-labels: "ingress-ready=true" extraPortMappings: - containerPort: 80 hostPort: 80 protocol: TCP - containerPort: 443 hostPort: 443 protocol: TCP EOF
این دستور یک کلاستر تک نود با اینگرس میاره بالا و kubectl را هم کانفیگ می کنه و می تونی با هاش دسترسی داشته باشید به کلاستر. این کار را جور دیگه ای هم می تونیم انجام بدیم. فایل کانفیگ بسازیم و اسم فایل را بدیم مثل این
kind create cluster --name linuxmotto-lab --config=config.yaml
مدلهای دیگه ای که می تونید کلاستر را بالا بیارید
کلاستر multi node
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker
کلاستر بدون Network Plugin
آین حالت به درد زمانی می خوره که می خواید Network plugin های مختلف و یا service mesh را تست بزنید و نمی خواید که kind خودش network plugin پیشرفض را نصب کنه.
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker networking: disableDefaultCNI: true