Hvernig á að setja upp Kubernetes þyrping á CentOS 7


Kubernetes, sem Google gaf til Opensource samfélagsins, hefur nú orðið valið gámastjórnunartæki. Það getur stjórnað og skipulagt ekki bara keyrslutíma docker heldur einnig gáma og Rkt keyrslutíma.

Dæmigerður Kubernetes þyrping myndi almennt hafa aðalhnút og nokkra verkamannahnúta eða Minions. Starfsmannahnútunum er síðan stjórnað frá aðalhnútnum, þannig að tryggt sé að þyrpingunni sé stjórnað frá miðlægum punkti.

Það er líka mikilvægt að nefna að þú getur líka sett upp Kubernetes þyrping með einum hnút sem almennt er mælt með fyrir mjög létt vinnuálag sem ekki er í framleiðslu. Fyrir þetta geturðu notað Minikube, sem er tól sem keyrir einn hnút Kubernetes þyrping í sýndarvél á hnútnum þínum.

Mælt með að lesa: Hvernig á að setja upp Kubernetes þyrping á CentOS 8

Fyrir þessa kennslu munum við fara í gegnum fjölhnúta Kubernetes klasauppsetningu á CentOS 7 Linux. Þessi kennsla er skipanalínu byggð svo þú þarft aðgang að flugstöðinni þinni.

  1. Margir netþjónar sem keyra Centos 7 (1 Master Node, 2 Worker Nodes). Mælt er með því að Master Node hafi að minnsta kosti 2 örgjörva, þó það sé ekki ströng krafa.
  2. Internettenging á öllum hnútunum þínum. Við munum sækja Kubernetes og docker pakka úr geymslunni. Á sama hátt þarftu að ganga úr skugga um að yum pakkastjórinn sé sjálfgefið uppsettur og geti sótt pakka úr fjarska.
  3. Þú þarft líka aðgang að reikningi með sudo eða rótarréttindi. Í þessari kennslu mun ég nota rótarreikninginn minn.

Þriggja hnúta þyrpingin okkar mun líta eitthvað svona út:

Uppsetning á Kubernetes klasa á Master-Node

Til að Kubernetes virki þarftu gámavél. Fyrir þessa uppsetningu munum við nota docker þar sem það er vinsælast.

Eftirfarandi skref munu keyra á Master-Node.

Á aðalhnútnum þínum skaltu stilla hýsingarheitið og ef þú ert ekki með DNS netþjón, uppfærðu þá /etc/hosts skrána þína líka.

# 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

Þú getur pingað worker-node-1 og worker-node-2 til að prófa hvort uppfærða hýsingarskráin þín sé í lagi með því að nota ping skipun.

# ping 10.128.0.29
# ping 10.128.0.30

Næst skaltu slökkva á SElinux og uppfæra eldveggsreglurnar þínar.

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

Stilltu eftirfarandi eldveggsreglur á höfnum. Gakktu úr skugga um að hver eldvegg-cmd skipun skili árangri.

# 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

Þú þarft að bæta Kubernetes geymslum við handvirkt þar sem þær eru ekki sjálfgefnar uppsettar á 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

Með pakkann tilbúinn geturðu haldið áfram og sett upp kubeadm og docker pakka.

# yum install kubeadm docker -y 

Þegar uppsetningunni er lokið skaltu virkja og ræsa báðar þjónusturnar.

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

Nú erum við tilbúin til að frumstilla kubernetes master, en áður en það gerist þarftu að slökkva á swap til að keyra \kubeadm init\ skipunina.

# swapoff -a

Frumstilling Kubernetes master er fullkomlega sjálfvirkt ferli sem er stjórnað af \kubeadm init\ skipuninni sem þú munt keyra.

# kubeadm init

Þú gætir viljað afrita síðustu línuna og vista hana einhvers staðar vegna þess að þú þarft að keyra hana á vinnuhnútunum.

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

Ábending: Stundum gæti þessi skipun kvartað yfir röksemdunum (args) sem voru send, svo breyttu henni til að forðast allar villur. Þannig að þú munt eyða ‘\’ stafnum sem fylgir --token og lokaskipunin þín mun líta svona út.

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

Eftir að hafa frumstillt Kubernetes með góðum árangri þarftu að leyfa notandanum að byrja að nota þyrpinguna. Í okkar tilviki viljum við keyra þessa uppsetningu sem rótnotanda, þess vegna munum við halda áfram og keyra þessar skipanir sem rót. Þú getur breytt í sudo-virkan notanda sem þú kýst og keyrt eftirfarandi með sudo.

Til að nota rót skaltu keyra:

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

Til að nota sudo virkan notanda skaltu keyra:

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

Athugaðu nú hvort kubectl skipunin sé virkjuð.

# kubectl get nodes

Á þessum tímapunkti muntu líka taka eftir því að staða aðalhnútsins er „Ekki tilbúin“. Þetta er vegna þess að við eigum enn eftir að dreifa fræbelgnetinu í þyrpinguna.

Pod Network er yfirlagsnet fyrir þyrpinguna, sem er sett ofan á núverandi hnútanet. Það er hannað til að leyfa tengingu yfir belginn.

Að dreifa netklasanum er mjög sveigjanlegt ferli eftir þörfum þínum og það eru margir möguleikar í boði. Þar sem við viljum hafa uppsetninguna okkar eins einfalda og mögulegt er, munum við nota Weavenet viðbót sem krefst ekki neinar stillingar eða aukakóða og það gefur upp eina IP tölu á hvern pod sem er frábært fyrir okkur. Ef þú vilt sjá fleiri valkosti, vinsamlegast athugaðu hér.

Þessar skipanir munu vera mikilvægar til að setja upp pod netkerfi.

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

Nú ef þú athugar stöðu aðalhnútsins þíns ætti hann að vera „Tilbúinn“.

# kubectl get nodes

Næst bætum við vinnuhnútunum við þyrpinguna.

Uppsetning starfsmannahnúta til að ganga í Kubernetes klasa

Eftirfarandi skref munu keyra á starfshnútum. Þessi skref ættu að vera keyrð á hverjum starfshnút þegar þú tengist Kubernetes klasanum.

Á worker-node-1 og worker-node-2 skaltu stilla hýsingarheitið og ef þú ert ekki með DNS netþjón, uppfærðu þá líka master og worker hnúta þína á /etc/hosts skránni.

# 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

Þú getur pingað master-node til að prófa hvort uppfærða hýsingarskráin þín sé í lagi.

Næst skaltu slökkva á SElinux og uppfæra eldveggsreglurnar þínar.

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

Stilltu eftirfarandi eldveggsreglur á höfnum. Gakktu úr skugga um að allar firewall-cmd skipanir skili árangri.

# 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

Þú þarft að bæta Kubernetes geymslum við handvirkt þar sem þær eru ekki foruppsettar á 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

Með pakkann tilbúinn geturðu haldið áfram og sett upp kubeadm og docker pakka.

# yum install kubeadm docker -y 

Byrjaðu og virkjaðu báðar þjónusturnar.

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

Við krefjumst nú táknsins sem kubeadm init bjó til, til að sameinast þyrpingunni. Þú getur afritað og límt það á hnút-1 og hnút-2 ef þú hefðir afritað það einhvers staðar.

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

Eins og lagt er til í síðustu línu, farðu aftur í aðalhnútinn þinn og athugaðu hvort starfsmaður hnútur-1 og starfsmaður hnútur-2 hafi sameinast þyrpingunni með því að nota eftirfarandi skipun.

# kubectl get nodes

Ef öll skrefin ganga vel, þá ættir þú að sjá hnút-1 og hnút-2 í tilbúnum stöðu á aðalhnútnum.

Mælt með lestri: Hvernig á að dreifa Nginx á Kubernetes þyrping

Á þessum tímapunkti höfum við lokið uppsetningu á Kubernetes klasa á Centos 7 með góðum árangri og við höfum náð góðum árangri um borð í tveimur starfsmannahnútum. Þú getur nú byrjað að búa til belg og innleiða þjónustu þína.