نصب kubernetes بر روی debian آماده سازی نودها

در ادامه مقالات نصب kubernetes و نصب master آن که در سه قسمت اول و دوم و سوم برای شما عزیزان ارائه دادیم . حالا نوبت به مقاله نصب نود ها می رسد.

با این آموزش شما میتوانید هر تعداد نودی که خواستید به master  خود اضافه کنید.

حالا به بررسی و آموزش نصب نودها در kubernetes  می پردازیم.

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

  • مواردی که بصورت پایه باید بر روی سیستم نصب باشند.
  • ملزوماتی که برای kubernetes می باشد.
    • kubelet
    • proxy

بعد از معرفی ملزومات و بسته های لازم نوبت به نصب میرد که در مراحل زیر به توضیح انها میپردازیم.

مرحله اول آماده کردن سیستم

در این مرحله باید سیستم را طوری تنظییم کنیم که نود های دیگری که میخواهیم و همچنین مستر خود را با اسم بشناسد. برای این منظور میتوانیم هماز سرویس DNS ( که در اینجا آموزش های مربوط به آن را مشاهده میکنید)‌ استفاده کنید یا اینکه فایل hosts سیستم را ویرایش کنید.

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

echo ‘10.0.1.80 kube-master.nowlearn.ir kube-master’ >> /etc/hosts
echo ‘10.0.1.81 kube-node1.nowlearn.ir kube-node1’ >> /etc/hosts
echo ‘10.0.1.82 kube-node2.nowlearn.ir kube-node2’ >> /etc/hosts

بعد از اینکه کار بالا را انجام دادیم نوبت به نصب یکسری بسته میرسد که برای کارهای آتی مورد استفاده قرار میگیرند میرسید.

apt-get -fqqy install apt-transport-https ca-certificates curl

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

curl –progress-bar –location ‘https://github.com/kubernetes/kubernetes/releases/download/v1.3.4/kubernetes.tar.gz’ tar –to-stdout -zxf – kubernetes/server/kubernetes-server-linux-amd64.tar.gz | tar –to-stdout -zxf – kubernetes/server/bin/hyperkube > /usr/bin/hyperkube

chmod a+x /usr/bin/hyperkube

cd /usr/bin/

/usr/bin/hyperkube –make-symlinks

نکته: با دستور بالا علاوه بر دانلود kubernetes آن را از حالت فشرده خارج کرده و یک shortcut از آن در مسیر /usr/bin میسازیم.

در آخرین قسمت این مرحله به ساختن مسیر خانگی kubernetes و دادن دسترسی های لازم می پردازیم.

mkdir -p /var/lib/k8s

groupadd kube

useradd kube -g kube -d /var/lib/k8s/ -s /bin/false

chown kube:kube /var/lib/k8s

مرحله دوم نصب docker

شما میتوانید برای این منظور اینجا را ببینید.

 

مرحله سوم نصب و تعریف و راه اندازی سرویس flanneld

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

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

cd /usr/local/src

curl –silent –location ‘https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz’ | tar -zvxf-

cd flannel-0.5.5

cp flanneld /usr/bin

mkdir -p /var/lib/k8s/flannel/networks

سپس سرویس مربوط به ان را میسازیم

cat << EOF > /lib/systemd/system/flanneld.service

[Unit]
Description=Network fabric for containers
Documentation=https://github.com/coreos/flannel
After=etcd.service

[Service]
Type=notify
Restart=always
RestartSec=5
ExecStart=/usr/bin/flanneld \\
-etcd-endpoints=http://10.0.1.80:4001 \\
-logtostderr=true \\
-subnet-dir=/var/lib/k8s/flannel/networks \\
-subnet-file=/var/lib/k8s/flannel/subnet.env

[Install]
WantedBy=multi-user.target
EOF

و در آخر سرویس را فعال و اجرا میکنیم.

systemctl daemon-reload
systemctl enable flanneld
service flanneld start

مرحله چهارم آماده سازی docker برای استفاده از flanneld

برای این منظور ابتدا سرویس مربوط به docker را بصورت زیر ویرایش میکنیم. ( در صورت عدم وجود آن را میسازیم)

cat << EOF > /lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket flanneld.service
Requires=docker.socket

[Service]
Type=notify
EnvironmentFile=-/var/lib/k8s/flannel/subnet.env
ExecStart=/usr/bin/dockerd -H fd:// –bip=\${FLANNEL_SUBNET} –mtu=\${FLANNEL_MTU}
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
MountFlags=shared

[Install]
WantedBy=multi-user.target
EOF

سپس باید قابلیت اجرای docker را به یوزر kube بدهیم

gpasswd -a kube docker

و در آخر سرویس را فعال و اجرا میکنیم .

systemctl daemon-reload
service docker restart

مرحله پینجم تعریف واجرای سرویس Kubernetes Proxy

برای این منظور ابتدا سرویس را تعریف میکنیم.

cat << EOF > /lib/systemd/system/kube-proxy.service

[Unit]
Description=Kubernetes Proxy
Documentation=https://github.com/kubernetes/kubernetes
After=flanneld.service

[Service]
User=root
ExecStart=/usr/bin/proxy \\
–master=http://10.0.1.80:8080 \\
–logtostderr=true
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

سپس سرویس را فعال و اجرا میکنیم.

systemctl daemon-reload
systemctl enable kube-proxy
service kube-proxy start

مرحله ششم تعریف و اجرای سرویس Kubernetes Kubelet

برای این منظور ابتدا سرویس را تعریف میکنیم.

cat << EOF > /lib/systemd/system/kube-kubelet.service

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=flanneld.service

[Service]
User=root
ExecStart=/usr/bin/kubelet \\
–cert-dir=/var/lib/k8s/kubernetes/ \\
–chaos-chance=0.0 \\
–container-runtime=docker \\
–address=0.0.0.0 \\
–cpu-cfs-quota=false \\
–api-servers=10.0.1.80:8080 \\
–cluster-dns=8.8.8.8 \\
–port=10250 \\
–logtostderr=true
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

سپس سرویس را فعال و اجرا میکنیم.

systemctl daemon-reload
systemctl enable kube-kubelet
service kube-kubelet start

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

همچنین میتوانید برای خواندن مقالا آموزشی مربوط به مجازی سازی با اینجا و برای خواند مقالات آموزشی docker به اینجا مراجعه کنید

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

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