Kā instalēt Kubernetes kopu CentOS 7
Google ziedojis Openource kopienai, Kubernetes tagad ir kļuvis par izvēlēto konteineru pārvaldības rīku. Tas var pārvaldīt un vadīt ne tikai dokeru, bet arī konteineru un Rkt izpildlaikus.
Tipiskai Kubernetes kopai parasti būtu galvenais mezgls un vairāki strādnieku mezgli vai Minions. Pēc tam strādājošie mezgli tiek pārvaldīti no galvenā mezgla, tādējādi nodrošinot, ka kopa tiek pārvaldīta no centrālā punkta.
Ir svarīgi arī pieminēt, ka varat arī izvietot viena mezgla Kubernetes kopu, kas parasti ir ieteicama ļoti nelielām, ar ražošanu nesaistītām slodzēm. Šim nolūkam varat izmantot Minikube, kas ir rīks, kas palaiž viena mezgla Kubernetes kopu jūsu mezgla virtuālajā mašīnā.
Ieteicams lasīt: Kā instalēt Kubernetes kopu CentOS 8
Šajā apmācībā mēs iepazīsimies ar vairāku mezglu Kubernetes klastera instalēšanu CentOS 7 Linux. Šī apmācība ir balstīta uz komandrindu, tāpēc jums būs nepieciešama piekļuve termināla logam.
- Vairāki serveri, kuros darbojas Centos 7 (1 galvenais mezgls, 2 strādnieku mezgli). Ieteicams, lai jūsu galvenajam mezglam būtu vismaz 2 centrālie procesori, lai gan tā nav stingra prasība.
- Interneta savienojamība visos jūsu mezglos. Mēs no krātuves ienesīsim Kubernetes un docker paketes. Tāpat jums būs jāpārliecinās, ka yum pakotņu pārvaldnieks pēc noklusējuma ir instalēts un var pakotnes ienest attālināti.
- Jums būs nepieciešama arī piekļuve kontam ar sudo vai root tiesībām. Šajā apmācībā es izmantošu savu saknes kontu.
Mūsu 3 mezglu kopa izskatīsies apmēram šādi:
Kubernetes klastera instalēšana Master-Node
Lai Kubernetes darbotos, jums būs nepieciešams konteineru dzinējs. Šajā instalācijā mēs izmantosim docker, jo tas ir vispopulārākais.
Galvenajā mezglā tiks veiktas šādas darbības.
Galvenajā mezglā iestatiet resursdatora nosaukumu un, ja jums nav DNS servera, atjauniniet arī failu/etc/hosts.
# 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
Lai pārbaudītu, vai atjauninātais resursdators ir kārtībā, izmantojot ping komandu, varat ping ping-worker-node-1 un worker-node-2.
# ping 10.128.0.29 # ping 10.128.0.30
Pēc tam atspējojiet SElinux un atjauniniet ugunsmūra noteikumus.
# setenforce 0 # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux # reboot
Iestatiet šādus ugunsmūra noteikumus ostās. Pārliecinieties, ka katra ugunsmūra cmd komanda atgūst panākumus.
# 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
Jums Kubernetes krātuves būs jāpievieno manuāli, jo tās pēc noklusējuma nav instalētas CentOS 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
Kad paketes repo tagad ir gatavs, varat turpināt instalēt kubeadm un docker paketes.
# yum install kubeadm docker -y
Kad instalēšana ir veiksmīgi pabeigta, iespējojiet un sāciet abus pakalpojumus.
# systemctl enable kubelet # systemctl start kubelet # systemctl enable docker # systemctl start docker
Tagad mēs esam gatavi inicializēt kubernetes master, bet pirms tam jums jāatspējo mijmaiņa, lai palaistu komandu “kubeadm init”.
# swapoff -a
Kubernetes master inicializēšana ir pilnībā automatizēts process, ko pārvalda komanda “kubeadm init”, kuru palaidīsit.
# kubeadm init
Iespējams, vēlēsities kopēt pēdējo rindiņu un to kaut kur saglabāt, jo tā būs jāpalaiž darba ņēmēja mezglos.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Padoms. Dažreiz šī komanda var sūdzēties par argumentiem (argumentiem), tāpēc rediģējiet to, lai izvairītos no kļūdām. Tātad jūs izdzēsīsit ‘\’
rakstzīmi, kas pievienota --token
, un jūsu galīgā komanda izskatīsies šādi.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Pēc Kubernetes veiksmīgas inicializācijas jums būs jāļauj lietotājam sākt izmantot kopu. Mūsu gadījumā mēs vēlamies palaist šo instalāciju kā root lietotāju, tāpēc mēs turpināsim un palaidīsim šīs komandas kā root. Jūs varat pārslēgties uz vēlamo sudo iespējotu lietotāju un palaist zemāk, izmantojot sudo.
Lai izmantotu sakni, palaidiet:
# mkdir -p $HOME/.kube # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # chown $(id -u):$(id -g) $HOME/.kube/config
Lai izmantotu sudo iespējotu lietotāju, palaidiet:
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
Tagad pārbaudiet, vai ir aktivizēta komanda kubectl.
# kubectl get nodes
Šajā brīdī jūs arī pamanīsit, ka galvenā mezgla statuss ir ‘NotReady’. Tas ir tāpēc, ka mums vēl nav jāizvieto pod tīkls klasterī.
Pod tīkls ir klastera pārklājuma tīkls, kas izvietots virs pašreizējā mezglu tīkla. Tas ir paredzēts, lai ļautu savienot pāri pākstim.
Tīkla kopas izvietošana ir ļoti elastīgs process atkarībā no jūsu vajadzībām, un ir pieejamas daudzas iespējas. Tā kā mēs vēlamies, lai mūsu instalēšana būtu pēc iespējas vienkāršāka, mēs izmantosim Weavenet spraudni, kuram nav nepieciešama nekāda konfigurācija vai papildu kods, un tas katram podam nodrošina vienu IP adresi, kas mums ir lieliski. Ja vēlaties redzēt vairāk iespēju, lūdzu, pārbaudiet šeit.
Šīs komandas būs svarīgas, lai iegūtu pod tīkla iestatīšanu.
# export kubever=$(kubectl version | base64 | tr -d '\n') # kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
Tagad, ja pārbaudāt galvenā mezgla statusu, tam jābūt “Gatavs”.
# kubectl get nodes
Pēc tam mēs kopai pievienojam darba ņēmēja mezglus.
Darbinieku mezglu iestatīšana, lai pievienotos Kubernetes kopai
Darbinieka mezglos tiks veiktas šādas darbības. Šīs darbības jāveic katrā darba ņēmēja mezglā, pievienojoties Kubernetes kopai.
Darbiniekos-mezgls-1 un strādnieks-mezgls-2 iestatiet resursdatora nosaukumu un, ja jums nav DNS servera, pēc tam atjauniniet arī galveno/darbinieku mezglus failā/etc/hosts.
# 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
Varat pingēt galveno mezglu, lai pārbaudītu, vai atjauninātais resursdators ir kārtībā.
Pēc tam atspējojiet SElinux un atjauniniet ugunsmūra noteikumus.
# setenforce 0 # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Iestatiet šādus ugunsmūra noteikumus ostās. Pārliecinieties, vai visas ugunsmūra cmd komandas atgriež panākumus.
# 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
Jums būs manuāli jāpievieno Kubernetes krātuves, jo tās nav iepriekš instalētas CentOS 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
Kad paketes repo tagad ir gatavs, varat turpināt instalēt kubeadm un docker paketes.
# yum install kubeadm docker -y
Sāciet un iespējojiet abus pakalpojumus.
# systemctl enable docker # systemctl start docker # systemctl enable kubelet # systemctl start kubelet
Tagad mums ir nepieciešams kubeadm init ģenerētais marķieris, lai pievienotos kopai. Varat to nokopēt un ielīmēt mezglā-1 un mezglā-2, ja esat to kaut kur nokopējis.
# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Kā ieteikts pēdējā rindā, atgriezieties pie galvenā mezgla un pārbaudiet, vai strādājošais mezgls-1 un darbinieka mezgls-2 ir pievienojies kopai, izmantojot šādu komandu.
# kubectl get nodes
Ja visas darbības tiek veiksmīgi izpildītas, galvenajā mezglā jums vajadzētu redzēt mezglu 1 un mezglu 2 gatavībā.
Ieteicams lasīt: Kā izvietot Nginx Kubernetes kopā
Šajā brīdī mēs esam veiksmīgi pabeiguši Kubernetes kopas instalēšanu Centos 7 un esam veiksmīgi iekļāvuši divus darbinieka mezglus. Tagad jūs varat sākt veidot savas pākstis un izvietot savus pakalpojumus.