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.

  1. 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.
  2. 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.
  3. 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.