CentOS 8 এ কীভাবে কুবারনেটস ক্লাস্টার ইনস্টল করবেন


সেন্টোস 8-তে একটি কুবারনেটস ক্লাস্টার ইনস্টল করার প্রক্রিয়াটি প্রায় সেন্টোস 7-এর (যেমন আপনি এখানে যেতে পারেন) অনুরূপ, তবে এখানে প্রক্রিয়াটিতে কিছু পরিবর্তন হয়েছে changes এই পরিবর্তনগুলি বেশিরভাগ ক্ষেত্রে ডকারের ইনস্টলেশনের চারদিকে ঘোরে।

সেন্টস 8 থেকে শুরু করে (এবং এক্সটেনশান আরএইচইএল 8) দিয়ে ডকারকে এখন পডম্যান এবং বিল্ডাহ দ্বারা স্থানান্তরিত করা হয়েছে যা রেডহাটের সরঞ্জাম tools প্রকৃতপক্ষে, ডকার প্যাকেজটি এখন ডিফল্ট প্যাকেজ সংগ্রহস্থল থেকে সরানো হয়েছে।

এই পদক্ষেপের সাথে, রেডহাট টিমটি বিশেষ অনুমতি ছাড়া প্রয়োজন ছাড়া কন্টেনারগুলি তৈরি এবং ব্যবহারের প্রক্রিয়াটি সহজতর করার লক্ষ্য রাখে, একই সময়ে ডকারের চিত্রগুলির সাথে সামঞ্জস্যতা বজায় রাখে এবং ডেমনের প্রয়োজন ছাড়াই এগুলি পরিচালনা করে। কুডরনেটস পরিবেশে চলার সময় পডম্যান আরও নমনীয়তা দেওয়ার প্রতিশ্রুতি দেয় তবে জুরি সেখানেই থেকে যায়।

এই নিবন্ধটির জন্য, আমরা ডক-সিই (সম্প্রদায় সংস্করণ) এ চলমান একটি সেন্টোস 8 প্ল্যাটফর্মে কুবারনেটস ইনস্টল করার প্রক্রিয়াটি অনুসরণ করব। পরবর্তী নিবন্ধে, আমরা আমাদের ধারকগুলির জন্য পডম্যান ব্যবহার করে একটি অনুরূপ ইনস্টলেশন চালিয়ে যাব।

  1. সেন্টোস 8 - 1 মাস্টার নোড এবং 2 কর্মী নোডে চলমান তিনটি সার্ভার
  2. আপনার নোডগুলিতে প্রতি মেশিনে 2 গিগাবাইট রu্যাম বা আরও বেশি কমপক্ষে কমপক্ষে 2 সিপিইউ থাকা উচিত। এটি কোনও কঠোর প্রয়োজনীয়তা নয় তবে আপনার চালনার ইচ্ছাশালী অ্যাপ্লিকেশনগুলির প্রয়োজনীয়তা দ্বারা মূলত পরিচালিত।
  3. আপনার সমস্ত নোডে ইন্টারনেট সংযোগ। আমরা সংগ্রহস্থল থেকে কুবেরনেটস এবং ডকার প্যাকেজ আনছি। সমানভাবে, আপনাকে ডিএনএফ প্যাকেজ ম্যানেজারটি ডিফল্টরূপে ইনস্টল করা আছে এবং প্যাকেজগুলি দূর থেকে আনতে পারে তা নিশ্চিত করতে হবে
  4. আপনার সমস্ত নোডগুলি প্রাইভেট বা পাবলিক নেটওয়ার্কে, যা কিছু উপলভ্য রয়েছে একে অপরের সাথে সংযোগ রাখতে সক্ষম হওয়া উচিত
  5. আপনার sudo বা মূল সুবিধাগুলি সহ কোনও অ্যাকাউন্টে অ্যাক্সেসের প্রয়োজনও রয়েছে। এই টিউটোরিয়ালে, আমি আমার মূল অ্যাকাউন্টটি ব্যবহার করব

বেশিরভাগ নোড সাধারণত অনন্য ম্যাক ঠিকানা নিয়ে আসে তবে কিছু অনন্য ক্ষেত্রে কিছু ভার্চুয়াল মেশিনের অভিন্ন ম্যাক ঠিকানা থাকতে পারে। অতএব এটি আপনাকে সুপারিশ করা হয় যে আপনি যে পণ্য_উইউডিএইচ এবং ম্যাক ঠিকানা কোনও নোডে অভিন্ন নয়।

ক্লাস্টারের নোডগুলি স্বতন্ত্রভাবে সনাক্ত করতে কুবারনেটগুলি এই মানগুলি ব্যবহার করে। যদি এই মানগুলি প্রতিটি নোডের কাছে স্বতন্ত্র না হয় তবে ইনস্টলেশন প্রক্রিয়া ব্যর্থ হতে পারে।

নেটওয়ার্ক ইন্টারফেসের ম্যাক ঠিকানা পরীক্ষা করে এটি তুলনা করুন।

# ip link

Product_uuid পরীক্ষা করতে এবং তুলনা করতে, নিম্নলিখিত কমান্ডটি চালান।

# cat /sys/class/dmi/id/product_uuid 

আমাদের ইনস্টলেশনটি মাস্টার-নোডকে কর্মী নোডগুলি নিয়ন্ত্রণ করার জন্য ডিজাইন করা হয়েছে। এই ইনস্টলেশনটির শেষে, আমাদের যৌক্তিক আর্কিটেকচারটি এরকম কিছু দেখবে।

মাস্টার নোড - এই মেশিনটি সাধারণত কন্ট্রোল প্লেন হিসাবে কাজ করে এবং ক্লাস্টার ডাটাবেস এবং এপিআই সার্ভার চালায় (যার সাথে কুবেটেল সি এল আই যোগাযোগ করে)।

আমাদের 3-নোড কুবারনেটস ক্লাস্টারটি এরকম কিছু দেখবে:

মাস্টার-নোডে কুবারনেটস ক্লাস্টার স্থাপন

কুবারনেটস কাজ করার জন্য আপনার একটি ধারক ইঞ্জিনের প্রয়োজন হবে। উল্লিখিত হিসাবে, আমরা ডকার-সিই ব্যবহার করব।

নিম্নলিখিত সংস্থাগুলি সেন্টোস 8 মাস্টার-নোডে সঞ্চালিত হবে।

আপনার CentOS 8 মাস্টার-নোডে, সিস্টেমের হোস্টনামটি সেট করুন এবং আপনার/ইত্যাদি/হোস্ট ফাইলগুলিতে ডিএনএস আপডেট করুন।

# hostnamectl set-hostname master-node
# cat <<EOF>> /etc/hosts
192.168.0.47 master-node
192.168.0.48 node-1 worker-node-1
192.168.0.49 node-2 worker-node-2
EOF

এর পরে, আপনার আপডেট হওয়া হোস্ট ফাইলটি পিং কমান্ডটি ব্যবহার করে সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করতে আপনার কর্মী-নোড -১ এবং কর্মী-নোড -২ পিং করুন।

# ping 192.168.0.48
# ping 192.168.0.49

এরপরে, সেলিনাক্স অক্ষম করুন, কারণ পড নেটওয়ার্ক এবং অন্যান্য পরিষেবাদি দ্বারা আবশ্যক হোস্ট ফাইল সিস্টেমে পাত্রে প্রবেশ করার অনুমতি দেওয়া দরকার।

# setenforce 0

0 এ সেটেনফোর্স সেট করা কার্যকরভাবে সেলইনাক্সকে অনুমতি হিসাবে সেট করে, যা পরবর্তী রিবুট পর্যন্ত কার্যকরভাবে সেলইনাক্সকে অক্ষম করে। এটি সম্পূর্ণরূপে অক্ষম করতে, নীচের কমান্ডটি ব্যবহার করুন এবং পুনরায় বুট করুন।

# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# reboot

কুবারনেটস যোগাযোগ ও অ্যাক্সেসের জন্য বিভিন্ন বন্দর ব্যবহার করে এবং এই পোর্টগুলি কুবারনেটসে অ্যাক্সেসযোগ্য হওয়া দরকার এবং ফায়ারওয়াল দ্বারা সীমাবদ্ধ নয়।

পোর্টগুলিতে ফায়ারওয়াল বিধিগুলি কনফিগার করুন।

# firewall-cmd --permanent --add-port=6443/tcp
# firewall-cmd --permanent --add-port=2379-2380/tcp
# firewall-cmd --permanent --add-port=10250/tcp
# firewall-cmd --permanent --add-port=10251/tcp
# firewall-cmd --permanent --add-port=10252/tcp
# firewall-cmd --permanent --add-port=10255/tcp
# firewall-cmd --reload
# modprobe br_netfilter
# echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

নিম্নলিখিত dnf কনফিগার-ম্যানেজার কমান্ড ব্যবহার করে ডিফল্ট প্যাকেজ তালিকায় আর নেই বলে আপনাকে প্রথমে ডকার সংগ্রহস্থল যুক্ত করতে হবে।

# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

কনটেইনারড.ইও প্যাকেজটি ইনস্টল করুন যা ডেমন হিসাবে উপলভ্য যা এটির হোস্ট সিস্টেমের সম্পূর্ণ ধারক জীবনচক্র পরিচালনা করে, চিত্র স্থানান্তর এবং স্টোরেজ থেকে শুরু করে কন্টেইনার এক্সিকিউশন এবং তদারকিতে নিম্ন স্তরের স্টোরেজ থেকে নেটওয়ার্ক সংযুক্তি এবং এর বাইরেও।

# dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

এখন ডকার-সি প্যাকেজের সর্বশেষতম সংস্করণ ইনস্টল করুন।

# dnf install docker-ce

আপনি এখন ডকার পরিষেবা সক্ষম এবং শুরু করতে পারেন।

# systemctl enable docker
# systemctl start docker

এরপরে, আপনাকে ম্যানুয়ালি কুবেরনেটস সংগ্রহস্থল যুক্ত করতে হবে কারণ সেগুলি সেন্টস 8 এ ডিফল্টরূপে ইনস্টল না হয়।

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

কুবাএডম আপনাকে সর্বনিম্ন व्यवहार्य কুবেরনেটস ক্লাস্টার বুটস্ট্রেপ করতে সহায়তা করে যা সর্বোত্তম অনুশীলনের সাথে সঙ্গতি রাখে। কুবায়েডম সহ, আপনার ক্লাস্টারটি কুবেরনেটস কনফরমেশন টেস্টগুলি পাস করতে হবে।

কুবাএডএম অন্যান্য ক্লাস্টার লাইফসাইकल ফাংশনগুলিকে সমর্থন করে যেমন আপগ্রেড, ডাউনগ্রেড এবং বুটস্ট্র্যাপ টোকেন পরিচালনা করা। কুবায়েডম উত্তর ও টেরফর্মের মতো অন্যান্য অর্কেস্টেশন সরঞ্জামগুলির সাথেও সংহত-বান্ধব।

প্যাকেজ রেপো এখন প্রস্তুত সঙ্গে, আপনি এগিয়ে গিয়ে কুবেডএম প্যাকেজ ইনস্টল করতে পারেন।

# dnf install kubeadm -y 

ইনস্টলেশন সফলভাবে শেষ হলে, সক্ষম করুন এবং পরিষেবাটি শুরু করুন।

# systemctl enable kubelet
# systemctl start kubelet

ক্লাস্টারের জন্য কন্ট্রোল প্লেন হিসাবে কাজ করা কুবেরনেটস মাস্টার ক্লাস্টারের জন্য প্রয়োজনীয় কয়েকটি সমালোচনামূলক পরিষেবা চালায়। যেমন, মেশিনটি কুবেরনেটস চালানোর জন্য প্রস্তুত কিনা তা নিশ্চিত করতে ইনিশিয়ালাইজেশন প্রক্রিয়াটি একাধিক প্রি-চেক করবে। এই প্রচারগুলি সতর্কতা প্রকাশ করে এবং ত্রুটিগুলি থেকে বেরিয়ে আসে। কুবেআডম আরআইজি ক্লাস্টার নিয়ন্ত্রণ বিমানের উপাদানগুলি ডাউনলোড করে ইনস্টল করে।

এখন কুবারনেটস মাস্টারকে আরম্ভ করার সময় এসেছে তবে তার আগে আপনাকে "কুবেআডম ডিআইএন" কমান্ড চালানোর জন্য অদলবদল অক্ষম করতে হবে।

# swapoff -a

কুবেরনেটস মাস্টার শুরু করা একটি সম্পূর্ণ স্বয়ংক্রিয় প্রক্রিয়া যা দেখানো হয়েছে হিসাবে "কুবাডেম ডিআইআই" কমান্ড দ্বারা নিয়ন্ত্রিত।

# kubeadm init

এরপরে, নিম্নলিখিত কমান্ডটি অনুলিপি করুন এবং এটি কোথাও সংরক্ষণ করুন, কারণ আমাদের এই আদেশটি কর্মী নোডে পরে চালাতে হবে।

kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5  \ --discovery-token-ca-cert-hash ha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf7

টিপ: কখনও কখনও উপরের কমান্ডটি পাস হওয়া আর্গুমেন্টগুলি সম্পর্কে ত্রুটি ফেলে দিতে পারে, সুতরাং ত্রুটিগুলি এড়ানোর জন্য আপনাকে অক্ষরটি সরিয়ে ফেলতে হবে এবং আপনার চূড়ান্ত কমান্ডটি এর মতো দেখাবে।

# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf7

একবার কুবেরনেটস সফলভাবে আরম্ভ হয়ে গেলে, আপনাকে অবশ্যই নিজের ব্যবহারকারীকে ক্লাস্টার ব্যবহার শুরু করতে সক্ষম করতে হবে। আমাদের দৃশ্যে, আমরা রুট ব্যবহারকারী ব্যবহার করব। আপনি যেমন দেখানো হয়েছে তেমন sudo ব্যবহার করে ক্লাস্টারটি শুরু করতে পারেন।

রুট ব্যবহার করতে, চালান:

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

একটি সুডো সক্ষম ব্যবহারকারী ব্যবহার করতে, চালান:

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

এখন নিশ্চিত করুন যে কুবেটেল কমান্ডটি সক্রিয় রয়েছে।

# kubectl get nodes

এই মুহুর্তে, আপনি দেখতে পাবেন মাস্টার-নোডের স্থিতিটি হল ‘নোটআরেডি’। এটি হ'ল কারণ আমরা এখনও ক্লাস্টারে পড নেটওয়ার্ক স্থাপন করতে পারি।

পড নেটওয়ার্ক হ'ল ক্লাস্টারের ওভারলে নেটওয়ার্ক, এটি বর্তমান নোড নেটওয়ার্কের শীর্ষে স্থাপন করা হয়। এটি শুঁটি জুড়ে সংযোগের অনুমতি দেওয়ার জন্য ডিজাইন করা হয়েছে।

নেটওয়ার্ক ক্লাস্টার স্থাপন করা আপনার প্রয়োজনের উপর নির্ভর করে একটি অত্যন্ত নমনীয় প্রক্রিয়া এবং অনেকগুলি বিকল্প উপলব্ধ। যেহেতু আমরা আমাদের ইনস্টলেশনটি যতটা সম্ভব সহজ রাখতে চাই, আমরা ওয়েইনেট প্লাগইন ব্যবহার করব যার জন্য কোনও কনফিগারেশন বা অতিরিক্ত কোডের প্রয়োজন হয় না এবং এটি পোডের জন্য একটি আইপি ঠিকানা সরবরাহ করে যা আমাদের জন্য দুর্দান্ত। আপনি যদি আরও বিকল্প দেখতে চান তবে দয়া করে এখানে দেখুন।

এই কমান্ডগুলি পড নেটওয়ার্ক সেটআপ পেতে গুরুত্বপূর্ণ হবে।

# export kubever=$(kubectl version | base64 | tr -d '\n')
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"

এখন আপনি যদি আপনার মাস্টার-নোডের স্থিতি পরীক্ষা করেন তবে এটি "প্রস্তুত" হওয়া উচিত।

# kubectl get nodes

এর পরে, আমরা ক্লাস্টারে কর্মী নোডগুলি যুক্ত করব।

কুবেরনেটস ক্লাস্টারে কর্মী নোড যুক্ত করা হচ্ছে

কুবারনেটস ক্লাস্টারে যোগদানের সময় প্রতিটি কর্মী নোডে নিম্নলিখিত নির্দেশাবলী সম্পাদিত হবে।

প্রথমে আপনার কর্মী-নোড -1 এবং কর্মী-নোড -2 এ হোস্টনামটি সেট করুন এবং তারপরে/etc/ਮੇਜ਼ਬਾਨ ফাইলে হোস্টের এন্ট্রি যুক্ত করুন।

# hostnamectl set-hostname 'node-1'
# cat <<EOF>> /etc/hosts
192.168.0.47 master-node
192.168.0.48 node-1 worker-node-1
192.168.0.49 node-2 worker-node-2
EOF

এরপরে, পিং কমান্ডটি ব্যবহার করে আপনার আপডেট হওয়া হোস্ট ফাইলটি ঠিকঠাকভাবে কাজ করছে তা নিশ্চিত করার জন্য আপনার কর্মী নোডগুলি থেকে আপনার মাস্টার নোডকে পিং করুন।

# 192.168.0.47

এরপরে, সেলিনাক্স অক্ষম করুন এবং আপনার ফায়ারওয়াল বিধিগুলি আপডেট করুন।

# setenforce 0
# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# firewall-cmd --permanent --add-port=6783/tcp
# firewall-cmd --permanent --add-port=10250/tcp
# firewall-cmd --permanent --add-port=10255/tcp
# firewall-cmd --permanent --add-port=30000-32767/tcp
# firewall-cmd --reload
# echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

প্রথমে ডিএনএফ কনফিগারেশন-পরিচালক ব্যবহার করে ডকারের সংগ্রহস্থল যুক্ত করুন।

# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

এরপরে, ধারকযুক্ত.ও প্যাকেজ যুক্ত করুন।

# dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

এই দুটি প্যাকেজ ইনস্টল হওয়ার সাথে সাথে ডকার-সিটির সর্বশেষতম সংস্করণ ইনস্টল করুন।

# dnf install docker-ce

ডকার পরিষেবা সক্ষম করুন এবং শুরু করুন।

# systemctl enable docker
# systemctl start docker

আপনাকে ম্যানুয়ালি কুবার্নেটস সংগ্রহস্থল যুক্ত করতে হবে কারণ সেগুলি সেন্টস 8 এ প্রাক ইনস্টলড হয় না।

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

প্যাকেজ রেপো এখন প্রস্তুত, আপনি এগিয়ে এবং কুবেডএম ইনস্টল করতে পারেন।

# dnf install kubeadm -y 

পরিষেবাটি চালু করুন এবং সক্ষম করুন।

# systemctl enable kubelet
# systemctl start kubelet

গুচ্ছটিতে যোগদানের জন্য আমাদের এখন টোইনটির দরকার আছে যা কুয়েবেড আরএম উত্পাদিত হয়েছিল। আপনি যদি এটি কোথাও অনুলিপি করেন তবে আপনি এটি অনুলিপি এবং আপনার নোড -1 এবং নোড -2 এ পেস্ট করতে পারেন।

# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5  --discovery-token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf78

শেষ লাইনে প্রস্তাবিত হিসাবে, আপনার মাস্টার-নোডে ফিরে যান এবং নীচের কমান্ডটি ব্যবহার করে কর্মী নোড -1 এবং কর্মী নোড -2 ক্লাস্টারে যোগদান করেছেন কিনা তা যাচাই করুন।

# kubectl get nodes

যদি সমস্ত পদক্ষেপগুলি সফলভাবে চলতে থাকে তবে মাস্টার-নোডে আপনাকে নোড -1 এবং নোড -2 প্রস্তুত অবস্থায় দেখতে হবে। এই মুহুর্তে, আপনি এখন সফলভাবে সেন্টোস 8-তে একটি কুবারনেটস ক্লাস্টার স্থাপন করেছেন।

প্রস্তাবিত পড়ুন: কীভাবে কুবারনেটস ক্লাস্টারে Nginx স্থাপন করা যায়

আমরা এখানে যে ক্লাস্টার তৈরি করেছি তার একটি একক মাস্টার নোড রয়েছে এবং এর মতো, যদি মাস্টার নোড ব্যর্থ হয় তবে আপনার ক্লাস্টার ডেটা হারাতে পারে এবং স্ক্র্যাচ থেকে পুনরায় তৈরি করার প্রয়োজন হতে পারে।

এই কারণে, আমি একটি উচ্চ উপলব্ধ সেটআপের প্রস্তাব দিই।