نصب kubernetes بر روی debian نود master قسمت اول

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

kubernetes-logo

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

  • ۳ ماشین مجازی که یکی از آنها به عنوان master و دوتای دیگر به عنوان node
  • نصب debian بر روی این ۳ ماشین مجازی ( شما میتوانید برای آموزش نصب debian به اینجا مراجعه کنید )

بعد از اینکه  نیازمندی ها را فراهم کردیم نوبت به تعریف هر یک از ماشین ها برای شناسایی آنها و تنظیمات آتی میرسد. برای این منظور ما این ۳ ماشین مجازی را بصورت زیر تعریف میکنیم.

kube-master.nowlearn.ir 10.0.1.80
kube-node1.nowlearn.ir 10.0.1.81
kube-node2.nowlearn.ir 10.0.1.82

نکته: شما میتوانید از هر IP و یا اسمی برای  ماشین های خود استفاده کنید.

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

  • ابتدا باید ملزومات نود مستر که بتواند kubernetes را اجرا کند به ترتیب زیر نصب کنیم.
  • درمرحله دوم هم باید خود kubernetes را همراه با ملزوماتش بترتیب نصب کنیم .
    • api-server
    • controller-manager
    • kublet
    • proxy
    • scheduler

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

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

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 را دانلود کنیم که حجمی برای ۱٫۴ گیگ دارد. برای این منظور دستور زیر را اجرا میکنیم.

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

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 یک کاربر و مسیر دایرکتوری خانگی با استفاده از دستور زیر میسازیم.

mkdir -p /var/lib/k8s
groupadd kube
useradd kube -g kube -d /var/lib/k8s/ -s /bin/false
chown kube:kube /var/lib/k8s

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

مرحله سوم نصب etcd  میباشد. برای این منظور بصورت زیر عمل میکنیم.

ابتدا گروه و کاربر مربوط به etcd را با استفاده از دستورات زیر ایجاد می کنیم.

groupadd etcd
useradd etcd -d /var/lib/k8s/etcd -s /bin/false -g etcd
mkdir -p /var/lib/k8s/etcd
chown etcd:etcd /var/lib/k8s/etcd -R

سپس به مسیر /usr/local/src میرویم و با استفاه از دستورات زیر etcd را دانلود و از حالت فشرده خارج میکنیم.

cd /usr/local/srccd /usr/local/src
curl  –silent  –location  ‘https://github.com/coreos/etcd/releases/download/v3.0.4/etcd-v3.0.4-linux-amd64.tar.gz’    | tar -zvxf-
cd etcd-v3.0.4-linux-amd64
cp etcd /usr/bin/
cp etcdctl /usr/bin/

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

cat << EOF > /lib/systemd/system/etcd.service
[Unit]
Description=etcd key-value store
Documentation=https://github.com/coreos/etcd

[Service]
User=etcd
Type=notify
ExecStart=/usr/bin/etcd \\
–advertise-client-urls http://10.0.1.80:4001 \\
–data-dir /var/lib/k8s/etcd \\
–listen-client-urls http://10.0.1.80:4001,http://127.0.0.1:4001
Restart=always
RestartSec=10s
LimitNOFILE=40000

[Install]
WantedBy=multi-user.target
EOF

نکته: دستور بالا یک فایل سرویس برای systemctl در مسیر  /lib/systemd/system/etcd.service می سازد.

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

systemctl daemon-reload
systemctl enable etcd
service etcd start

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

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

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

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