Kubernetese klastri installimine CentOS 7-sse


Google on annetanud kogukonnale Opensource, Kubernetesest on nüüd saanud valitud konteinerite haldamise tööriist. See suudab hallata ja orkestreerida mitte ainult dokkimisaja, vaid ka konteinerite ja Rkt käitusi.

Tüüpilisel Kubernetese klastril oleks üldjuhul põhisõlm ja mitu töölisesõlme ehk Minioni. Töötajate sõlmi hallatakse seejärel põhisõlmest, tagades seega klastri haldamise kesksest punktist.

Samuti on oluline mainida, et saate juurutada ka ühe sõlmpunkti Kubernetese klastri, mida soovitatakse tavaliselt väga väikeste, tootmisega mitteseotud töökoormuste korral. Selleks saate kasutada Minikube'i, mis on tööriist, mis käitab teie sõlme virtuaalses masinas ühe sõlmpunkti Kubernetes.

Soovitatav lugemine: Kuidas installida Kubernetes klastrit CentOS 8-le

Selle õpetuse jaoks tutvustame CentOS 7 Linuxis mitme sõlmega Kubernetes klastri installimist. See õpetus on käsureal põhinev, nii et teil on vaja juurdepääsu terminaliaknale.

  1. mitu serverit, mis käitavad Centos 7 (1 põhisõlm, 2 töölissõlme). Soovitav on, et teie põhisõlmel oleks vähemalt 2 protsessorit, kuigi see pole range nõue.
  2. Interneti-ühendus kõigis teie sõlmedes. Toome hoidlast Kubernetese ja dokkeri pakette. Samamoodi peate veenduma, et yumi paketihaldur on vaikimisi installitud ja suudab pakette kaugtõmmata.
  3. Teil on vaja juurdepääsu ka sudo või root õigustega kontole. Selles õpetuses kasutan oma juurkontot.

Meie kolmesõlmeline klaster näeb välja umbes selline:

Kubernetes klastri installimine Master-Node'ile

Kubernetese töötamiseks vajate konteinerimootorit. Selle installi jaoks kasutame dokkijat, kuna see on kõige populaarsem.

Järgmised toimingud käivitatakse Master-Node'is.

Määrake oma põhisõlmes hostinimi ja kui teil pole DNS-serverit, värskendage ka oma faili/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

Võite ping-käsu abil pingutada töötaja-sõlm-1 ja töötaja-sõlm-2, et testida, kas teie värskendatud hostifail on korras.

# ping 10.128.0.29
# ping 10.128.0.30

Järgmisena keelake SElinux ja värskendage oma tulemüüri reegleid.

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

Pordides määrake järgmised tulemüüri reeglid. Veenduge, et iga tulemüüri cmd käsk tagastaks edukuse.

# 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

Peate Kubernetese hoidlad käsitsi lisama, kuna neid pole CentOS 7-s vaikimisi installitud.

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

Kui pakettide repo on nüüd valmis, saate jätkata ja installida pakette kubeadm ja docker.

# yum install kubeadm docker -y 

Kui installimine on edukalt lõpule jõudnud, lubage ja käivitage mõlemad teenused.

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

Nüüd oleme valmis kubernetese master initsialiseerima, kuid enne seda peate käsu „kubeadm init“ käivitamiseks keelama vahetamise.

# swapoff -a

Kubernetes master'i lähtestamine on täielikult automatiseeritud protsess, mida haldab käsk "kubeadm init", mida käivitate.

# kubeadm init

Võimalik, et soovite viimase rea kopeerida ja kuhugi salvestada, kuna peate selle käivitama töötaja sõlmedes.

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

Nõuanne. Mõnikord võib see käsk kurta vastuvõetud argumentide üle, nii et vigade vältimiseks muutke seda. Niisiis, kustutate tähisega --token kaasneva tähe ‘\’ ja teie viimane käsk näeb välja selline.

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

Kui Kubernetes on edukalt lähtestatud, peate lubama kasutajal klastrit kasutama hakata. Meie puhul tahame selle installi käivitada juurkasutajana, seetõttu jätkame neid käske juurkasutajana. Võite minna eelistatult sudo-toega kasutajaks ja käivitada sudo abil allpool toodud juhised.

Juure kasutamiseks käivitage:

# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config

Sudo-toega kasutaja kasutamiseks käivitage:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

Nüüd kontrollige, kas käsk kubectl on aktiveeritud.

# kubectl get nodes

Siinkohal märkate ka, et põhisõlme olek on ‘NotReady’. Seda seetõttu, et meil pole veel pod-võrku klastrisse juurutatud.

Pod-võrk on klastri ülekattevõrk, mis on paigutatud praeguse sõlmevõrgu peale. See on loodud ühendamiseks kogu kaussi ulatuses.

Võrguklastri juurutamine on teie vajadustest sõltuvalt väga paindlik protsess ja saadaval on palju võimalusi. Kuna soovime oma installi võimalikult lihtsana hoida, kasutame Weaveneti pistikprogrammi, mis ei vaja konfigureerimist ega lisakoodi ja pakub ühe IP-aadressi ühe kauna kohta, mis on meie jaoks suurepärane. Kui soovite näha rohkem võimalusi, kontrollige siin.

Need käsud on pod-võrgu seadistamise jaoks olulised.

# export kubever=$(kubectl version | base64 | tr -d '\n')
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"

Kui kontrollite nüüd oma põhisõlme olekut, peaks see olema ‘Valmis’.

# kubectl get nodes

Järgmisena lisame klastrisse töötaja sõlmed.

Töötajate sõlmede seadistamine Kubernetes klastriga liitumiseks

Töötaja sõlmedes käivitatakse järgmised toimingud. Need sammud tuleks Kubernetes klastriga liitumisel käivitada igas töösõlmes.

Seadistage oma töötaja-sõlm-1 ja töötaja-sõlm-2 hostinimi ning kui teil pole DNS-serverit, värskendage ka failis/etc/hosts faili põhi- ja töösõlmed.

# 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

Võite pingutada master-sõlme, et testida, kas teie värskendatud hostifail on korras.

Järgmisena keelake SElinux ja värskendage oma tulemüüri reegleid.

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

Pordides määrake järgmised tulemüüri reeglid. Veenduge, et kõik tulemüüri cmd käsud tagastaksid edu.

# 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

Peate Kubernetese hoidlad käsitsi lisama, kuna need pole CentOS 7-sse eelinstallitud.

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

Kui pakettide repo on nüüd valmis, saate jätkata ja installida pakette kubeadm ja docker.

# yum install kubeadm docker -y 

Käivitage ja lubage mõlemad teenused.

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

Nüüd vajame klastriga liitumiseks kubeadm init loodud luba. Võite selle kopeerida ja kleepida oma sõlme-1 ja sõlme-2, kui olete selle kuhugi kopeerinud.

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

Nagu viimasel real soovitatud, minge tagasi oma põhisõlme juurde ja kontrollige, kas töötaja sõlm-1 ja töötaja sõlm-2 on klastriga liitunud järgmise käsu abil.

# kubectl get nodes

Kui kõik etapid õnnestuvad edukalt, peaksite nägema põhisõlmes sõlme 1 ja sõlme 2 valmisolekus.

Soovitatav lugemine: Nginxi juurutamine Kubernetese klastrisse

Sel hetkel oleme Centern 7-s edukalt lõpetanud Kubernetese klastri installimise ja oleme edukalt integreerinud kaks töölisesõlme. Nüüd saate alustada oma taskute loomist ja teenuste juurutamist.