نحوه پیاده سازی کلاستر Kubernetes با استفاده از Ubuntu server

در این مقاله به بررسی نحوه پیاده سازی کلاستر kubernetes به صورت bare-metal توسط سیستم عامل Ubuntu می پردازیم. توجه داشته باشید که از خواننده انتظار می رود قبل از خواندن این مقاله با اجزا و نحوه کارکرد kubernetes آشنا باشد و این مقاله صرفا به پیاده سازی کلاستر می پردازد.


کلاستر Kubernetes

کلاستر های Kubernetes را می توان به نحوه های مختلف با توجه پلتفرم، پیاده سازی نمود. برخی سامانه های رایانش ابری مانند google cloud platform، Microsoft azure و amazon AWS کلاسترهای آماده را در اختیار شما قرار می دهند. نحوه استفاده از این کلاسترها برای هر پلتفرم متفاوت است. در واقع هر کدام از این کمپانی ها نسخه مخصوص خود از kubernetes ارائه داده و آن را در پلتفرم خود به فروش می رسانند.

یک روش دیگر برای پیاده سازی کلاستر kubernetes روش bare-metal است که برای کسانی که می خواهند یک کلاستر شخصی داشته باشند کاربرد دارد.

سیستم های موجود در یک کلاستر kubernetes می توانند master یا worker باشند. سیستم های master وظیفه دریافت دستورات واسط برنامه نویسی (API) و تقسیم بار بین worker ها را دارند. در این مقاله با استفاده از kubernetes یک کلاستر با یک سیستم master و یک سیستم worker طراحی می کنیم. قسمت اصلی نصب یک کلاستر آماده سازی سیستم master است.

نکته: سیستم عامل استفاده شده Ubuntu server 16.04 است.

مرحله اول: نصب

برای چک کردن نسخه سیستم عامل خود در Ubuntu دستور زیر را اجرا نمایید:

lsb_release –a

که خروجی مشابه زیر خواهد داشت:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release 16.04
Codename: xenial

سپس دستورات زیر را به ترتیب وارد کنید. دستورات ذکر شده داکر و دیگر اجزای kubernetes را نصب خواهند کرد:

apt-get install docker.io

apt-get update && apt-get install -y apt-transport-https curl

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF>/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main 
EOF

apt-get update

apt-get install -y kubelet kubeadm kubectl

apt-mark hold kubelet kubeadm kubectl

مرحله دوم: راه‌اندازی سیستم Master

اکنون سیستم master آماده راه اندازی اولیه است. دستور زیر را به منظور راه اندازی اولیه اجرا نمایید:

kubeadm init --apiserver-advertise-address=192.168.5.132 --pod-network-cidr=10.244.0.0/16

دقت نمایید که به جای آدرس 192.168.5.132 باید آدرس IP سرور خود را قرار دهید.

در انتهای اجرای دستور، خروجی مشابه تصویر زیر خواهید دید. دستور ذکر شده در این خروجی برای اتصال سیستم های worker به سیستم master استفاده می شود، آن را ذخیره نمایید. (برای هر کلاستر این دستور متفاوت است).


حالا دستورات زیر را وارد نمایید:

export KUBECONFIG=/etc/kubernetes/admin.conf

kubectl apply -f https://docs.projectcalico.org/v3.3/gettingstarted/kubernetes/installation/hosted/canal/rbac.yaml

kubectl apply -f https://docs.projectcalico.org/v3.3/gettingstarted/kubernetes/installation/hosted/canal/canal.yaml

این دستورات اجزای لازم برای ارتباط شبکه بین اجزای کلاستر و نرم افزارهای موجود در کلاستر را نصب می نمایند.

سیستم master آماده است.

مرحله سوم: نصب سیستم Worker

برای نصب سیستم Worker ابتدا دستورات زیر را اجرا کنید:

apt-get update

apt-get install docker.io

apt-get update && apt-get install -y apt-transport-https curl

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

apt-get update

apt-get install -y kubelet kubeadm kubectl

apt-mark hold kubelet kubeadm kubectl

پس از اجرای دستورات، سیستم worker را با استفاده از دستور مشخص شده در تصویر بالا به کلاستر اضافه نمایید. (دقت نمایید که دستور مشخص شده در عکس مرتبط به سیستم تست این مقاله می باشد و برای سیستم شما متفاوت است.)

مرحله چهارم: چک کردن وضعیت کلاستر

بر روی سیستم master دستور زیر را اجرا نمایید.

Kubectl get pods –all-namespaces

خروجی باید مشابه تصویر زیر باشد.

تعداد سیستم های موجود در کلاستر با دستور زیر نمایش داده می شود.

kubectl get nodes

در صورتی که نیاز دارید تعداد بیشتری سیستم به کلاستر خود اضافه نمایید می‌توانید مرحله نصب سیستم Worker را مجددا اجرا نمایید.

برچسب‌ها::