CentOS 8-ൽ ഒരു Kubernetes ക്ലസ്റ്റർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


CentOS 8-ൽ ഒരു Kubernetes ക്ലസ്റ്റർ ഇൻസ്റ്റാൾ ചെയ്യുന്ന പ്രക്രിയ CentOS 7-ലേതിന് സമാനമാണ് (നിങ്ങൾക്ക് ഇവിടെ പോകാം), എന്നാൽ ഇവിടെയുള്ള പ്രക്രിയയ്ക്ക് കുറച്ച് മാറ്റങ്ങളുണ്ട്. ഈ മാറ്റങ്ങൾ, കൂടുതലും ഡോക്കറിന്റെ ഇൻസ്റ്റാളേഷനെ ചുറ്റിപ്പറ്റിയാണ്.

CentOS 8 മുതൽ (കൂടാതെ RHEL 8 വിപുലീകരണത്തിലൂടെ), ഡോക്കറിന് പകരം പോഡ്uമാനും ബിൽഡയും ഉപയോഗിച്ചു, അവ റെഡ്ഹാറ്റിൽ നിന്നുള്ള ഉപകരണങ്ങളാണ്. യഥാർത്ഥത്തിൽ, ഡോക്കർ പാക്കേജ് ഇപ്പോൾ ഡിഫോൾട്ട് പാക്കേജ് റിപ്പോസിറ്ററിയിൽ നിന്ന് നീക്കം ചെയ്തു.

ഈ നീക്കത്തിലൂടെ, പ്രത്യേക അനുമതികൾ ആവശ്യമില്ലാതെ തന്നെ കണ്ടെയ്uനറുകൾ സൃഷ്uടിക്കുകയും ഉപയോഗിക്കുകയും ചെയ്യുന്ന പ്രക്രിയ ലളിതമാക്കാൻ റെഡ്ഹാറ്റ് ടീം ലക്ഷ്യമിടുന്നു, അതേസമയം, ഡോക്കർ ചിത്രങ്ങളുമായി അനുയോജ്യത നിലനിർത്തുകയും ഡെമൺ ആവശ്യമില്ലാതെ അവ പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു. കുബർനെറ്റസ് പരിതസ്ഥിതികളിൽ പ്രവർത്തിക്കുമ്പോൾ കൂടുതൽ വഴക്കം നൽകുമെന്ന് പോഡ്മാൻ വാഗ്ദാനം ചെയ്യുന്നു, പക്ഷേ ജൂറി അവിടെ തന്നെ തുടരുന്നു.

ഈ ലേഖനത്തിനായി, ഡോക്കർ-സിഇ (കമ്മ്യൂണിറ്റി എഡിഷൻ)-ൽ പ്രവർത്തിക്കുന്ന ഒരു CentOS 8 പ്ലാറ്റ്uഫോമിൽ Kubernetes ഇൻസ്റ്റാൾ ചെയ്യുന്ന പ്രക്രിയയിലൂടെ ഞങ്ങൾ പ്രവർത്തിക്കും. പിന്നീടുള്ള ലേഖനത്തിൽ, ഞങ്ങളുടെ കണ്ടെയ്uനറുകൾക്കായി പോഡ്uമാൻ ഉപയോഗിച്ച് സമാനമായ ഒരു ഇൻസ്റ്റാളേഷനിലൂടെയും ഞങ്ങൾ പ്രവർത്തിക്കും.

  1. CentOS 8 - 1 മാസ്റ്റർ നോഡും 2 വർക്കർ നോഡും പ്രവർത്തിക്കുന്ന മൂന്ന് സെർവറുകൾ.
  2. നിങ്ങളുടെ നോഡുകൾക്ക് ഓരോ മെഷീനിലും 2GB റാമോ അതിലധികമോ ഉള്ള 2 CPU-കളെങ്കിലും ഉണ്ടായിരിക്കണമെന്ന് ശുപാർശ ചെയ്യുന്നു. ഇത് ഒരു കർശനമായ ആവശ്യകതയല്ല, എന്നാൽ നിങ്ങൾ പ്രവർത്തിപ്പിക്കാൻ ഉദ്ദേശിക്കുന്ന ആപ്ലിക്കേഷന്റെ ആവശ്യങ്ങളാൽ നയിക്കപ്പെടുന്നു.
  3. നിങ്ങളുടെ എല്ലാ നോഡുകളിലും ഇന്റർനെറ്റ് കണക്റ്റിവിറ്റി. ഞങ്ങൾ ശേഖരത്തിൽ നിന്ന് കുബർനെറ്റുകളും ഡോക്കർ പാക്കേജുകളും ലഭ്യമാക്കും. അതുപോലെ, ഡിഎൻഎഫ് പാക്കേജ് മാനേജർ ഡിഫോൾട്ടായി ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്നും വിദൂരമായി പാക്കേജുകൾ ലഭ്യമാക്കാൻ കഴിയുമെന്നും നിങ്ങൾ ഉറപ്പാക്കേണ്ടതുണ്ട്.
  4. നിങ്ങളുടെ എല്ലാ നോഡുകൾക്കും പരസ്പരം ബന്ധിപ്പിക്കാൻ കഴിയണം, ഒന്നുകിൽ ഒരു സ്വകാര്യ അല്ലെങ്കിൽ പൊതു നെറ്റ്uവർക്കിൽ, ഏതാണ് ലഭ്യമാണോ അത്.
  5. സുഡോ അല്ലെങ്കിൽ റൂട്ട് പ്രത്യേകാവകാശങ്ങളുള്ള ഒരു അക്കൗണ്ടിലേക്കും നിങ്ങൾക്ക് ആക്സസ് ആവശ്യമാണ്. ഈ ട്യൂട്ടോറിയലിൽ, ഞാൻ എന്റെ റൂട്ട് അക്കൗണ്ട് ഉപയോഗിക്കും.

മിക്ക നോഡുകളും സാധാരണയായി അദ്വിതീയ MAC വിലാസങ്ങളോടെയാണ് വരുന്നത്, എന്നിരുന്നാലും, ചില സവിശേഷ സന്ദർഭങ്ങളിൽ, ചില വെർച്വൽ മെഷീനുകൾക്ക് സമാനമായ MAC വിലാസങ്ങൾ ഉണ്ടായിരിക്കാം. അതിനാൽ, Product_UUID ഉം MAC വിലാസവും ഒരു നോഡിലും സമാനമല്ലെന്ന് സ്ഥിരീകരിക്കാൻ ശുപാർശ ചെയ്യുന്നു.

ക്ലസ്റ്ററിലെ നോഡുകൾ അദ്വിതീയമായി തിരിച്ചറിയാൻ കുബർനെറ്റസ് ഈ മൂല്യങ്ങൾ ഉപയോഗിക്കുന്നു. ഈ മൂല്യങ്ങൾ ഓരോ നോഡിനും അദ്വിതീയമല്ലെങ്കിൽ, ഇൻസ്റ്റലേഷൻ പ്രക്രിയ പരാജയപ്പെടാം.

നെറ്റ്uവർക്ക് ഇന്റർഫേസിന്റെ MAC വിലാസം പരിശോധിച്ച് താരതമ്യം ചെയ്യാൻ.

# ip link

product_uuid പരിശോധിച്ച് താരതമ്യം ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

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

വർക്കർ നോഡുകളെ നിയന്ത്രിക്കുന്ന മാസ്റ്റർ-നോഡ് ഉള്ളതിനാണ് ഞങ്ങളുടെ ഇൻസ്റ്റാളേഷൻ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. ഈ ഇൻസ്റ്റാളേഷന്റെ അവസാനം, ഞങ്ങളുടെ ലോജിക്കൽ ആർക്കിടെക്ചർ ഇതുപോലെ കാണപ്പെടും.

മാസ്റ്റർ നോഡ് - ഈ മെഷീൻ പൊതുവെ കൺട്രോൾ പ്ലെയിനായി പ്രവർത്തിക്കുകയും ക്ലസ്റ്റർ ഡാറ്റാബേസും API സെർവറും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു (ഇതുമായി kubectl CLI ആശയവിനിമയം നടത്തുന്നു).

ഞങ്ങളുടെ 3-നോഡ് കുബർനെറ്റസ് ക്ലസ്റ്റർ ഇതുപോലെയായിരിക്കും:

മാസ്റ്റർ-നോഡിൽ കുബർനെറ്റസ് ക്ലസ്റ്ററിന്റെ ഇൻസ്റ്റാളേഷൻ

Kubernetes പ്രവർത്തിക്കുന്നതിന്, നിങ്ങൾക്ക് ഒരു കണ്ടെയ്നറൈസേഷൻ എഞ്ചിൻ ആവശ്യമാണ്. സൂചിപ്പിച്ചതുപോലെ, ഞങ്ങൾ ഡോക്കർ-സിഇ ഉപയോഗിക്കും.

ഇനിപ്പറയുന്ന സ്ഥാപനങ്ങൾ CentOS 8 Master-Node-ൽ നിർവഹിക്കും.

നിങ്ങളുടെ CentOS 8 മാസ്റ്റർ-നോഡിൽ, സിസ്റ്റം ഹോസ്റ്റ്നാമം സജ്ജമാക്കി നിങ്ങളുടെ /etc/hosts ഫയലിൽ DNS അപ്ഡേറ്റ് ചെയ്യുക.

# 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

അടുത്തതായി, നിങ്ങളുടെ അപ്uഡേറ്റ് ചെയ്uത ഹോസ്റ്റ് ഫയൽ പിംഗ് കമാൻഡ് ഉപയോഗിച്ച് ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കാൻ നിങ്ങളുടെ വർക്കർ-നോഡ്-1, വർക്കർ-നോഡ്-2 എന്നിവ പിംഗ് ചെയ്യുക.

# ping 192.168.0.48
# ping 192.168.0.49

അടുത്തതായി, സെലിനക്സ് പ്രവർത്തനരഹിതമാക്കുക, കാരണം പോഡ് നെറ്റ്uവർക്കുകൾക്കും മറ്റ് സേവനങ്ങൾക്കും ആവശ്യമായ ഹോസ്റ്റ് ഫയൽസിസ്റ്റം ആക്uസസ് ചെയ്യാൻ കണ്ടെയ്uനറുകളെ അനുവദിക്കുന്നതിന് ഇത് ആവശ്യമാണ്.

# setenforce 0

setenforce 0 ആയി സജ്ജീകരിക്കുന്നത് SELinux-നെ അനുവദനീയമായി സജ്ജമാക്കുന്നു, ഇത് അടുത്ത റീബൂട്ട് വരെ SELinux-നെ ഫലപ്രദമായി പ്രവർത്തനരഹിതമാക്കുന്നു. ഇത് പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കുന്നതിന്, താഴെയുള്ള കമാൻഡ് ഉപയോഗിച്ച് റീബൂട്ട് ചെയ്യുക.

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

ആശയവിനിമയത്തിനും ആക്uസസ്സിനുമായി കുബർനെറ്റസ് വിവിധ പോർട്ടുകൾ ഉപയോഗിക്കുന്നു, ഈ പോർട്ടുകൾ ഫയർവാളിൽ പരിമിതപ്പെടുത്താതെ കുബർനെറ്റുകൾക്ക് ആക്uസസ് ചെയ്യേണ്ടതുണ്ട്.

പോർട്ടുകളിൽ ഫയർവാൾ നിയമങ്ങൾ കോൺഫിഗർ ചെയ്യുക.

# 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 config-manager കമാൻഡ് ഉപയോഗിച്ച് ഡിഫോൾട്ട് പാക്കേജ് ലിസ്റ്റിൽ ഇനിമുതൽ ഡോക്കർ റിപ്പോസിറ്ററി ഇല്ലാത്തതിനാൽ നിങ്ങൾ ആദ്യം അത് ചേർക്കേണ്ടതുണ്ട്.

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

ഇമേജ് ട്രാൻസ്ഫർ, സ്റ്റോറേജ്, കണ്ടെയ്uനർ എക്uസിക്യൂഷൻ, മേൽനോട്ടം, ലോ-ലെവൽ സ്uറ്റോറേജ്, നെറ്റ്uവർക്ക് അറ്റാച്ച്uമെന്റുകൾ, അതിനപ്പുറവും വരെ അതിന്റെ ഹോസ്റ്റ് സിസ്റ്റത്തിന്റെ പൂർണ്ണമായ കണ്ടെയ്uനർ ലൈഫ് സൈക്കിൾ നിയന്ത്രിക്കുന്ന ഡെമണായി ലഭ്യമാകുന്ന കണ്ടെയ്uനർഡ്.ഐഒ പാക്കേജും ഇൻസ്റ്റാൾ ചെയ്യുക.

# 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

അടുത്തതായി, CentOS 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

മികച്ച പ്രവർത്തനങ്ങളുമായി പൊരുത്തപ്പെടുന്ന ഏറ്റവും കുറഞ്ഞ ലാഭകരമായ കുബർനെറ്റസ് ക്ലസ്റ്റർ ബൂട്ട്സ്ട്രാപ്പ് ചെയ്യാൻ Kubeadm നിങ്ങളെ സഹായിക്കുന്നു. kubeadm ഉപയോഗിച്ച്, നിങ്ങളുടെ ക്ലസ്റ്റർ Kubernetes Conformance ടെസ്റ്റുകളിൽ വിജയിക്കണം.

അപ്uഗ്രേഡുകൾ, തരംതാഴ്ത്തൽ, ബൂട്ട്uസ്uട്രാപ്പ് ടോക്കണുകൾ നിയന്ത്രിക്കൽ തുടങ്ങിയ മറ്റ് ക്ലസ്റ്റർ ലൈഫ് സൈക്കിൾ ഫംഗ്uഷനുകളും Kubeadm പിന്തുണയ്ക്കുന്നു. Ansible, Terraform പോലെയുള്ള മറ്റ് ഓർക്കസ്ട്രേഷൻ ടൂളുകളുമായുള്ള സംയോജന-സൗഹൃദമാണ് Kubeadm.

പാക്കേജ് റിപ്പോ ഇപ്പോൾ തയ്യാറായിക്കഴിഞ്ഞാൽ, നിങ്ങൾക്ക് മുന്നോട്ട് പോയി kubeadm പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാം.

# dnf install kubeadm -y 

ഇൻസ്റ്റാളേഷൻ വിജയകരമായി പൂർത്തിയാകുമ്പോൾ, സേവനം പ്രവർത്തനക്ഷമമാക്കി ആരംഭിക്കുക.

# systemctl enable kubelet
# systemctl start kubelet

ക്ലസ്റ്ററിനായുള്ള നിയന്ത്രണ തലം ആയി പ്രവർത്തിക്കുന്ന കുബർനെറ്റസ് മാസ്റ്റർ ക്ലസ്റ്ററിന് ആവശ്യമായ ചില നിർണായക സേവനങ്ങൾ പ്രവർത്തിപ്പിക്കുന്നു. അതുപോലെ, കുബെർനെറ്റസ് പ്രവർത്തിപ്പിക്കാൻ മെഷീൻ തയ്യാറാണെന്ന് ഉറപ്പാക്കാൻ ഇനീഷ്യലൈസേഷൻ പ്രക്രിയ പ്രീ-ചെക്കുകളുടെ ഒരു പരമ്പര നടത്തും. ഈ മുൻകരുതലുകൾ മുന്നറിയിപ്പുകൾ വെളിപ്പെടുത്തുകയും പിശകുകളിൽ നിന്ന് പുറത്തുകടക്കുകയും ചെയ്യുന്നു. kubeadm init പിന്നീട് ക്ലസ്റ്റർ കൺട്രോൾ പ്ലെയിൻ ഘടകങ്ങൾ ഡൗൺലോഡ് ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യുന്നു.

ഇപ്പോൾ Kubernetes master ആരംഭിക്കാനുള്ള സമയമാണ്, എന്നാൽ അതിനുമുമ്പ്, \kubeadm init\ കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നതിന് നിങ്ങൾ സ്വാപ്പ് പ്രവർത്തനരഹിതമാക്കണം.

# swapoff -a

കാണിക്കുന്നത് പോലെ \kubeadm init\ കമാൻഡ് നിയന്ത്രിയ്ക്കുന്ന ഒരു പൂർണ്ണ ഓട്ടോമേറ്റഡ് പ്രക്രിയയാണ് Kubernetes master ആരംഭിക്കുന്നത്.

# 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

Kubernetes വിജയകരമായി ആരംഭിച്ചുകഴിഞ്ഞാൽ, ക്ലസ്റ്റർ ഉപയോഗിച്ച് തുടങ്ങാൻ നിങ്ങളുടെ ഉപയോക്താവിനെ പ്രവർത്തനക്ഷമമാക്കണം. ഞങ്ങളുടെ സാഹചര്യത്തിൽ, ഞങ്ങൾ റൂട്ട് ഉപയോക്താവിനെ ഉപയോഗിക്കും. കാണിച്ചിരിക്കുന്നതുപോലെ സുഡോ ഉപയോക്താവിനെ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ക്ലസ്റ്റർ ആരംഭിക്കാനും കഴിയും.

റൂട്ട് ഉപയോഗിക്കുന്നതിന്, പ്രവർത്തിപ്പിക്കുക:

# 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 കമാൻഡ് സജീവമാക്കിയെന്ന് സ്ഥിരീകരിക്കുക.

# kubectl get nodes

ഈ നിമിഷം, മാസ്റ്റർ-നോഡിന്റെ സ്റ്റാറ്റസ് 'നോട്ട് റെഡി' ആണെന്ന് നിങ്ങൾ കാണും. ഞങ്ങൾ ഇതുവരെ പോഡ് നെറ്റ്uവർക്ക് ക്ലസ്റ്ററിലേക്ക് വിന്യസിച്ചിട്ടില്ല എന്നതിനാലാണിത്.

നിലവിലെ നോഡ് നെറ്റ്uവർക്കിന് മുകളിൽ വിന്യസിച്ചിരിക്കുന്ന ക്ലസ്റ്ററിനായുള്ള ഓവർലേ നെറ്റ്uവർക്കാണ് പോഡ് നെറ്റ്uവർക്ക്. പോഡിലുടനീളം കണക്റ്റിവിറ്റി അനുവദിക്കുന്നതിനാണ് ഇത് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.

നെറ്റ്uവർക്ക് ക്ലസ്റ്റർ വിന്യസിക്കുന്നത് നിങ്ങളുടെ ആവശ്യങ്ങൾക്കനുസരിച്ച് വളരെ വഴക്കമുള്ള ഒരു പ്രക്രിയയാണ്, കൂടാതെ നിരവധി ഓപ്ഷനുകൾ ലഭ്യമാണ്. ഞങ്ങളുടെ ഇൻസ്റ്റാളേഷൻ കഴിയുന്നത്ര ലളിതമാക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നതിനാൽ, കോൺഫിഗറേഷനോ അധിക കോഡോ ആവശ്യമില്ലാത്ത Weavenet പ്ലഗിൻ ഞങ്ങൾ ഉപയോഗിക്കും, ഇത് ഓരോ പോഡിനും ഒരു IP വിലാസം നൽകുന്നു, അത് ഞങ്ങൾക്ക് മികച്ചതാണ്. നിങ്ങൾക്ക് കൂടുതൽ ഓപ്ഷനുകൾ കാണണമെങ്കിൽ, ദയവായി ഇവിടെ പരിശോധിക്കുക.

പോഡ് നെറ്റ്uവർക്ക് സജ്ജീകരണം ലഭിക്കുന്നതിന് ഈ കമാൻഡുകൾ പ്രധാനമാണ്.

# 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/hosts ഫയലിലേക്ക് ചേർക്കുക.

# 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

അടുത്തതായി, പിംഗ് കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങളുടെ അപ്uഡേറ്റ് ചെയ്uത ഹോസ്റ്റ് ഫയൽ നന്നായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിക്കുന്നതിന് നിങ്ങളുടെ വർക്കർ നോഡുകളിൽ നിന്ന് നിങ്ങളുടെ മാസ്റ്റർ നോഡ് പിംഗ് ചെയ്യുക.

# 192.168.0.47

അടുത്തതായി, SElinux പ്രവർത്തനരഹിതമാക്കി നിങ്ങളുടെ ഫയർവാൾ നിയമങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക.

# 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 ഉപയോഗിച്ച് ആദ്യം ഡോക്കർ റിപ്പോസിറ്ററി ചേർക്കുക.

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

അടുത്തതായി, containerd.io പാക്കേജ് ചേർക്കുക.

# 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

CentOS 8-ൽ പ്രീ-ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലാത്തതിനാൽ, നിങ്ങൾ Kubernetes ശേഖരണങ്ങൾ സ്വമേധയാ ചേർക്കേണ്ടതുണ്ട്.

# 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

പാക്കേജ് റിപ്പോ ഇപ്പോൾ തയ്യാറായിക്കഴിഞ്ഞാൽ, നിങ്ങൾക്ക് മുന്നോട്ട് പോയി kubeadm ഇൻസ്റ്റാൾ ചെയ്യാം.

# dnf install kubeadm -y 

സേവനം ആരംഭിച്ച് പ്രവർത്തനക്ഷമമാക്കുക.

# systemctl enable kubelet
# systemctl start kubelet

ക്ലസ്റ്ററിൽ ചേരുന്നതിന്, kubeadm init സൃഷ്ടിച്ച ടോക്കൺ ഞങ്ങൾക്ക് ഇപ്പോൾ ആവശ്യമാണ്. നിങ്ങൾ എവിടെയെങ്കിലും പകർത്തിയിട്ടുണ്ടെങ്കിൽ അത് നിങ്ങളുടെ നോഡ്-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 എന്നിവ മാസ്റ്റർ-നോഡിൽ റെഡി സ്റ്റാറ്റസിൽ കാണും. ഈ ഘട്ടത്തിൽ, നിങ്ങൾ ഇപ്പോൾ CentOS 8-ൽ ഒരു Kubernetes ക്ലസ്റ്റർ വിജയകരമായി വിന്യസിച്ചു.

ശുപാർശ ചെയ്uത വായന: ഒരു കുബർനെറ്റസ് ക്ലസ്റ്ററിൽ Nginx എങ്ങനെ വിന്യസിക്കാം

ഞങ്ങൾ ഇവിടെ സൃഷ്uടിച്ച ക്ലസ്റ്ററിന് ഒരൊറ്റ മാസ്റ്റർ നോഡ് ഉണ്ട്, അതിനാൽ, മാസ്റ്റർ നോഡ് പരാജയപ്പെടുകയാണെങ്കിൽ, നിങ്ങളുടെ ക്ലസ്റ്ററിന് ഡാറ്റ നഷ്uടപ്പെട്ടേക്കാം, അത് ആദ്യം മുതൽ വീണ്ടും സൃഷ്uടിക്കേണ്ടി വന്നേക്കാം.

ഇക്കാരണത്താൽ, വളരെ ലഭ്യമായ ഒരു സജ്ജീകരണം ഞാൻ ശുപാർശ ചെയ്യുന്നു.