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

تا این مدت اکثر مواقع محیط آزمایشگاهی داشتم. یعنی چند تا سیستم داشتم که کوبر را روی اونها نصب می کردم و تست هام را انجام می دادم. چون تو ایران هم معمولا یکی از کارهامون نصب کوبر بود اینکار خیلی مفید بود. ولی اینجا الان دیگه نصب کردن کوبر ارزشی نداره و اینکه دستریس به اون همه سیستم هم ندارم فعلا. برای همین رفتم سراغ kind.

kind چیست؟

kind یک ابزار برای راه انداز لوکال کوبرنتیز روی کانتینر هست. یعنی به جای اینکه نودهای مختلف بیاریم بالا از کانتینر به عنوان نود استفاده می‌کنیم.

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
# WARNING: It is _strongly_ recommended that you keep this the default
# (127.0.0.1) for security reasons. However it is possible to change this.
apiServerAddress: "127.0.0.1"
# By default the API server listens on a random open port.
# You may choose a specific port but probably don't need to in most cases.
# Using a random port makes it easier to spin up multiple clusters.
apiServerPort: 6443

راه اندازی یک محیط آزمایشگاهی با kind

هدفم این هست که روی لپ تاپم که یک اوبونتو نسخه 22.04 هست یک محیط تست برای کار با کوبرنتیز داشته باشم. برای این کار به ابزار های زیر نیاز داریم

هر کدوم را به راهنمای نصبش لینک دادم که یه راست از روی سایت خودش نصب کنید

وقتی همه ابزار ها را نصب کردید خیلی راحت می تونید با دستور kind یک کلاستر بسازید. مثلا در مثلا زیر یک کلاستر به نام linuxmotto-lab می خوایم بسازیم

 

cat <<EOF | kind create cluster --name istio --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
 kind: InitConfiguration
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
 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

 

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

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