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


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

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

এটি উল্লেখ করাও গুরুত্বপূর্ণ যে আপনি একটি একক নোড কুবারনেটস ক্লাস্টারও স্থাপন করতে পারেন যা সাধারণত খুব হালকা, অ-উত্পাদনের কাজের চাপের জন্য সুপারিশ করা হয়। এর জন্য, আপনি মিনিক्यूब ব্যবহার করতে পারেন, এটি এমন একটি সরঞ্জাম যা আপনার নোডের ভার্চুয়াল মেশিনে একক নোড কুবারনেটস ক্লাস্টার চালায়।

প্রস্তাবিত পড়ুন: CentOS 8 এ কীভাবে কুবারনেটস ক্লাস্টার ইনস্টল করবেন

এই টিউটোরিয়ালটির জন্য, আমরা সেন্টোস 7 লিনাক্সে মাল্টি-নোড কুবারনেটস ক্লাস্টার ইনস্টলেশনটি হাঁটা করব। এই টিউটোরিয়ালটি কমান্ড-লাইন ভিত্তিক তাই আপনাকে আপনার টার্মিনাল উইন্ডোটিতে অ্যাক্সেসের প্রয়োজন হবে।

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

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

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

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

নিম্নলিখিত পদক্ষেপগুলি মাস্টার-নোডে চলবে।

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

# hostnamectl set-hostname master-node
# cat <<EOF>> /etc/hosts
10.128.0.27 master-node
10.128.0.29 node-1 worker-node-1
10.128.0.30 node-2 worker-node-2
EOF

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

# ping 10.128.0.29
# ping 10.128.0.30

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

# setenforce 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

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

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

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

# yum install kubeadm docker -y 

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

# systemctl enable kubelet
# systemctl start kubelet
# systemctl enable docker
# systemctl start docker

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

# swapoff -a

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

# kubeadm init

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

kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5  \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 

টিপ: কখনও কখনও এই আদেশটি আর্গুমেন্টগুলি (আরোগুলিগুলি) পাস করার বিষয়ে অভিযোগ করতে পারে, তাই কোনও ত্রুটি এড়াতে এটি সম্পাদনা করুন। সুতরাং, আপনি - টোকেন সহ ‘\’ অক্ষর মুছবেন এবং আপনার চূড়ান্ত আদেশটি এর মতো দেখতে পাবেন।

kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5  --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41

সফলভাবে কুবেরনেটসকে আরম্ভ করার পরে, আপনাকে আপনার ব্যবহারকারীকে ক্লাস্টার ব্যবহার শুরু করার অনুমতি দিতে হবে। আমাদের ক্ষেত্রে, আমরা এই ইনস্টলেশনটি রুট ব্যবহারকারী হিসাবে চালাতে চাই, সুতরাং আমরা এগিয়ে গিয়ে এই কমান্ডগুলি রুট হিসাবে চালাব। আপনি sudo ব্যবহার করে নীচে চালিত 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

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

কুবেরনেটস ক্লাস্টারে যোগদানের জন্য কর্মী নোড সেট আপ করা হচ্ছে

নিম্নলিখিত পদক্ষেপগুলি কর্মী নোডগুলিতে চলবে। কুবারনেটস ক্লাস্টারে যোগদানের সময় এই পদক্ষেপগুলি প্রতিটি কর্মী নোডে চালানো উচিত।

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

# hostnamectl set-hostname 'node-1'
# cat <<EOF>> /etc/hosts
10.128.0.27 master-node
10.128.0.29 node-1 worker-node-1
10.128.0.30 node-2 worker-node-2
EOF

আপনার আপডেট হওয়া হোস্টফাইল ঠিক আছে কিনা তা পরীক্ষা করতে আপনি মাস্টার-নোডকে পিং করতে পারেন।

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

# 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

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

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

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

# yum install kubeadm docker -y 

উভয় পরিষেবা চালু এবং সক্ষম করুন।

# systemctl enable docker
# systemctl start docker
# systemctl enable kubelet
# systemctl start kubelet

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

# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5  --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 

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

# kubectl get nodes

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

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

এই মুহুর্তে, আমরা সেন্টোস 7-তে একটি কুবারনেটস ক্লাস্টারটি সাফল্যের সাথে সম্পন্ন করেছি এবং আমরা দুটি কর্মী-নোডে সাফল্যের সাথে যাত্রা করেছি। আপনি এখন আপনার পোড তৈরি এবং আপনার পরিষেবা মোতায়েন শুরু করতে পারেন।