ایجاد محیط تست با kind

تا این مدت اکثر مواقع محیط آزمایشگاهی داشتم. یعنی چند تا سیستم داشتم که کوبر را روی اونها نصب می کردم و تست هام را انجام می دادم. چون تو ایران هم معمولا یکی از کارهامون نصب کوبر بود اینکار خیلی مفید بود. ولی اینجا الان دیگه نصب کردن کوبر ارزشی نداره و اینکه دستریس به اون همه سیستم هم ندارم فعلا. برای همین رفتم سراغ 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

 

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *