CentOS 7-de Kubernetes klasterini nädip gurmaly
“Google” tarapyndan “Opensource” jemgyýetine bagyşlanan Kubernetes indi konteýner dolandyryş guralyna öwrüldi. Diňe dok iş wagty däl, eýsem Konteýnerler we Rkt iş wagtlaryny hem dolandyryp we düzüp biler.
Adaty Kubernetes toparynda, adatça, esasy düwün we birnäçe işçi düwünleri ýa-da Minionlar bolýar. Soňra işçi düwünleri esasy düwünden dolandyrylýar, şeýlelik bilen toparyň merkezi nokatdan dolandyrylmagyny üpjün edýär.
Şeýle hem, bir düwünli Kubernetes toparyny ýerleşdirip bilersiňiz, adatça gaty ýeňil, önümçilik däl iş ýükleri üçin maslahat berilýär. Munuň üçin düwüniňizdäki wirtual maşynda bir düwünli Kubernetes toparyny işleýän gural bolan Minikube ulanyp bilersiňiz.
Maslahat berilýän okaň: CentOS 8-de Kubernetes klasterini nädip gurmaly
Bu gollanma üçin CentOS 7 Linux-da köp düwünli Kubernetes klaster gurnamasynyň üstünden bararys. Bu gollanma buýruk setirine esaslanýar, şonuň üçin terminal penjiräňize girmeli bolarsyňyz.
- Centos 7-de işleýän birnäçe serwer (1 Master düwün, 2 işçi düwün). Master Node-da azyndan 2 CPU bolmagy maslahat berilýär, ýöne bu gaty talap däl.
- nhli düwünleriňizde internet birikmesi. Kubernetes we doker paketlerini ammardan alarys. Şonuň bilen birlikde, ýum paket dolandyryjysynyň deslapky gurnalandygyna we paketleri uzakdan alyp biljekdigine göz ýetirmeli.
- Şeýle hem, sudo ýa-da kök aýratynlyklary bolan hasaby açmaly bolarsyňyz. Bu gollanmada kök hasabymy ulanaryn.
3 düwünli toparymyz şuňa meňzeş bir zat görüner:
Master-düwünde Kubernetes klasterini gurmak
Kubernetesiň işlemegi üçin konteýnerizasiýa motory gerek bolar. Bu gurnama üçin, iň meşhur bolany üçin dokeri ulanarys.
Aşakdaky ädimler Master-düwünde işlär.
Baş düwüniňizde, host adyny belläň we DNS serweriňiz ýok bolsa,/etc/host faýlyňyzy hem täzeläň.
# 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 buýrugy bilen täzelenen hostfaýlyňyzyň gowydygyny ýa-da ýokdugyny barlamak üçin işçi-node-1 we işçi-node-2-i basyp bilersiňiz.
# ping 10.128.0.29 # ping 10.128.0.30
Ondan soň, SElinux-y öçüriň we diwar gorag düzgünleriňizi täzeläň.
# setenforce 0 # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux # reboot
Portlarda aşakdaky diwar gorag düzgünlerini düzüň. Her firewall-cmd buýrugynyň üstünlik gazanýandygyna göz ýetiriň.
# 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
Kubernetes ammarlaryny el bilen goşmaly bolarsyňyz, sebäbi olar CentOS 7-de deslapky gurulmaýar.
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
Paket repo indi taýýar bolansoň, kubeadm we doker paketlerini gurup bilersiňiz.
# yum install kubeadm docker -y
Gurmak üstünlikli tamamlananda, iki hyzmaty işlediň we başlaň.
# systemctl enable kubelet # systemctl start kubelet # systemctl enable docker # systemctl start docker
Indi kubernetes ussady başlamaga taýyn, ýöne ondan ozal\kubeadm init\buýrugyny işletmek üçin swap-y öçürmeli.
# swapoff -a
Kubernetes ussady işe girizmek, işlejek\kubeadm init\buýrugy bilen dolandyrylýan doly awtomatlaşdyrylan prosesdir.
# kubeadm init
Iň soňky setiri göçürip, bir ýerde saklap bilersiňiz, sebäbi ony işçi düwünlerinde işletmeli bolarsyňyz.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Maslahat: Käwagt bu buýruk geçen argumentlerden (args) zeýrenip biler, şonuň üçin ýalňyşlyklardan gaça durmak üçin redaktirläň. Şeýlelik bilen, --token
bilen bilelikde '\'
nyşanyny pozarsyňyz we iň soňky buýrugyňyz şuňa meňzeýär.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Kubernetes-i üstünlikli başlanyňyzdan soň, ulanyjynyňyza klaster ulanyp başlamagyna rugsat bermeli bolarsyňyz. Biziň ýagdaýymyzda, bu gurnamany kök ulanyjy hökmünde işletmek isleýäris, şonuň üçin bu buýruklary kök hökmünde işlederis. Islän sudo mümkinçilikli ulanyjyňyzy üýtgedip bilersiňiz we sudo ulanyp aşakda işledip bilersiňiz.
Kök ulanmak üçin işlediň:
# mkdir -p $HOME/.kube # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # chown $(id -u):$(id -g) $HOME/.kube/config
Sudo açyk ulanyjyny ulanmak üçin işlediň:
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
Indi kubectl buýrugynyň işjeňdigini ýa-da ýokdugyny barlaň.
# kubectl get nodes
Bu pursatda baş düwüniň ýagdaýynyň “NotReady” bolandygyny görersiňiz. Munuň sebäbi entek pod toruny klasterde ýerleşdirmeli däl.
Pod Network, häzirki düwün torunyň üstünde ýerleşdirilen klaster üçin örtük torudyr. Ol podwodka birikmäge mümkinçilik berýär.
Tor toparyny ýerleşdirmek, zerurlyklaryňyza baglylykda ýokary çeýe prosesdir we köp wariant bar. Gurluşymyzy mümkin boldugyça ýönekeý saklamak isleýänimiz üçin, hiç hili konfigurasiýa ýa-da goşmaça kod talap etmeýän Weavenet pluginini ulanarys we bu pod üçin bir IP adresi üpjün edýär. Has köp wariant görmek isleseňiz, şu ýere göz aýlaň.
Bu buýruklar pod toruny gurmak üçin möhümdir.
# export kubever=$(kubectl version | base64 | tr -d '\n') # kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
Indi baş düwüniňiziň ýagdaýyny barlasaňyz, “Taýýar” bolmaly.
# kubectl get nodes
Soň bolsa, topara işçi düwünlerini goşýarys.
Kubernetes toparyna goşulmak üçin işçi düwünlerini düzmek
Aşakdaky ädimler işçi düwünlerinde işlär. Kubernetes toparyna goşulanda bu ädimler her işçi düwüninde işlemeli.
Işçi-düwün-1 we işçi-düwün-2-de host adyny belläň we DNS serweriňiz ýok bolsa, baş we işçi düwünleriňizi/etc/host faýlynda täzeläň.
# 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
Täzelenen hostfaýlyňyzyň gowydygyny ýa-da ýokdugyny barlamak üçin master-node düwmesini basyp bilersiňiz.
Ondan soň, SElinux-y öçüriň we diwar gorag düzgünleriňizi täzeläň.
# setenforce 0 # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Portlarda aşakdaky diwar gorag düzgünlerini düzüň. Firewall-cmd buýruklarynyň hemmesine üstünlik gazanyň.
# 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
Kubernetes ammarlaryny CentOS 7-de öňünden gurulmandygy sebäpli el bilen goşmaly bolarsyňyz.
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
Paket repo indi taýýar bolansoň, kubeadm we doker paketlerini gurup bilersiňiz.
# yum install kubeadm docker -y
Iki hyzmaty başlaň we işlediň.
# systemctl enable docker # systemctl start docker # systemctl enable kubelet # systemctl start kubelet
Indi, topara goşulmak üçin kubeadm initiň döreden nyşanyny talap edýäris. Bir ýerden göçüren bolsaňyz, düwün-1 we düwün-2-ä göçürip alyp bilersiňiz.
# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Iň soňky setirde görkezilişi ýaly, baş düwüniňize gaýdyp, işçi düwün-1 we işçi düwün-2 aşakdaky buýrugy ulanyp topara goşulandygyny ýa-da ýokdugyny barlaň.
# kubectl get nodes
Thehli ädimler üstünlikli işleýän bolsa, baş düwünde düwün-1 we düwün-2-ni taýýar ýagdaýda görmeli.
Maslahat berilýän okaň: Kubernetes toparynda Nginx-i nädip ýerleşdirmeli
Bu pursatda, Centos 7-de Kubernetes klasterini gurnamagy üstünlikli tamamladyk we iki işçi düwünine üstünlikli çykdyk. Indi podwodkalary döredip we hyzmatlaryňyzy ýerleşdirip bilersiňiz.