در این بخش قصد دارم تا نحوه نصب کوبرنتیز را آموزش بدم. برای نصب کوبرنتیز مراحل زیر را در یک ترمینال با دسترسی root اجرا کنید.

apt-get install -y apt-transport-https ca-certificates curl
curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt update && apt install -y kubelet kubeadm kubectl

از آنجایی که نسخه های نصب شده kubelet، kubectl و kubeadm باید با هم سازگار باشند، در صورتی که بخواهید از آپدیت ناخواسته آنها جلوگیری کنید میتوانید از دستور زیر استفاده کنید.

sudo apt-mark hold kubelet kubeadm kubectl

در این مرحله کوبرنتیز نصب شده است. طراحی کلاستری که قرار است آن را پیاده سازی کنیم شامل دو نود مستر، سه نود کلاینت و یک نود به عنوان storage است.

قبل از شروع به هر کاری برای ماشین ها hostname تنظیم کنید. به عنوان مثال برای نودهای مستر master1 و master2 تنظیم کنید، و برای نودهای کلاینت node1 و node2 و node3، و برای نود ذخیره سازی storage را تنظیم کنید. پس از تنظیم hostnameها در تمام نودها آی پی نودهای مستر را در etc/hosts/ تمام ماشین ها از جمله نودهای مستر تنظیم کنید. در اینجا آی پی ماشین ها به شرح زیر است.

master1      192.168.68.152
master2      192.168.68.153
node1        192.168.68.154
node2        192.168.68.155
node3        192.168.68.156
storage      192.168.68.157

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

MASTER_IP=$(hostname -I | awk '{print $1}')
MASTER_HOSTNAME=$(hostname -s)
sudo kubeadm init --apiserver-advertise-address $MASTER_IP \
                  --pod-network-cidr=10.244.0.0/16 \
                  --control-plane-endpoint "$MASTER_HOSTNAME:6443" \
                  --upload-certs

پس از اجرای این دستور چنین خروجی دریافت خواهید کرد.

حال دستورات زیر را در ماشین master1 تحت یوزر اصلی (غیر root) اجرا کنید.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

توجه داشته باشید که سرتیفیک های تولید شده در ماشین شما با آنچه در بالا مشاهده میکنید متفاوت خواهد بود. لذا از آنچه در بالا می بینید استفاده نکنید.

حال در ماشین master2 دستور زیر را اجرا کنید.

kubeadm join master1:6443 --token <token> \
        --discovery-token-ca-cert-hash <certificate hash> \
        --control-plane --certificate-key <certificate hash>

پس از اجرای دستور بالا در ماشین master2 دستورات زیر را در یوزر غیر root اجرا کنید.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

در سایر نودهای node1 و node2 و node3 دستور زیر را اجرا کنید.

kubeadm join master1:6443 --token <token> \
        --discovery-token-ca-cert-hash <certificate hash>

توجه داشته باشید که اگر تنظیمات آی پی که در بالا ذکر شد انجام نشود، دستورات بالا با خطا مواجه میشود.

به منظور فعال سازی قابلیت تکمیل خودکار دستورات bash، میتوانید دو دستور زیر را در ماشین master1 و master2 تحت یوزری غیر root اجرا کنید.

echo "source <(kubectl completion bash)" >> ~/.bashrc
echo "source <(kubeadm completion bash)" >> ~/.bashrc
source ~/.bashrc

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

kubectl get nodes

در این مرحله راه اندازی کلاستر کوبرنتیز به اتمام رسیده است. در پست بعدی نحوه راه اندازی نود storage و نحوه ذخیره سازی داده در آن آموزش داده خواهد شد.

اشتراک گذاری

Leave a Comment

Your email address will not be published. Required fields are marked *

twenty − 17 =