Jinsi ya Kufunga Nguzo ya Kubernetes kwenye CentOS 7


Imechangiwa na Google kwa jumuiya ya Opensource, Kubernetes sasa imekuwa chombo bora zaidi cha usimamizi wa kontena. Inaweza kudhibiti na kupanga sio tu nyakati za uendeshaji za kizimbani bali pia Vyombo na nyakati za kukimbia za Rkt.

Kundi la kawaida la Kubernetes kwa ujumla lingekuwa na nodi kuu na nodi kadhaa za wafanyakazi au Marafiki. Nodi za wafanyikazi basi husimamiwa kutoka kwa nodi kuu, na hivyo kuhakikisha kuwa nguzo inasimamiwa kutoka kwa sehemu kuu.

Ni muhimu pia kutaja kuwa unaweza pia kusambaza nguzo ya nodi moja ya Kubernetes ambayo kwa ujumla inapendekezwa kwa kazi nyepesi sana, zisizo za uzalishaji. Kwa hili, unaweza kutumia Minikube, ambayo ni zana inayoendesha nguzo ya nodi moja ya Kubernetes kwenye mashine pepe kwenye nodi yako.

Soma Inayopendekezwa: Jinsi ya Kusakinisha Kubernetes Cluster kwenye CentOS 8

Kwa mafunzo haya, tutapitia usakinishaji wa nguzo wa Kubernetes wa nodi nyingi kwenye CentOS 7 Linux. Mafunzo haya yanategemea mstari wa amri kwa hivyo utahitaji ufikiaji wa dirisha la terminal yako.

  1. Seva nyingi zinazoendesha Centos 7 (Njia Kuu 1, Nodi 2 za Wafanyikazi). Inapendekezwa kuwa Master Node yako iwe na angalau CPU 2, ingawa hili si hitaji kali.
  2. Muunganisho wa mtandao kwenye nodi zako zote. Tutakuwa tukichukua Kubernetes na vifurushi vya docker kutoka kwa hazina. Vile vile, utahitaji kuhakikisha kuwa kidhibiti kifurushi cha yum kimesakinishwa kwa chaguomsingi na kinaweza kuleta vifurushi kwa mbali.
  3. Utahitaji pia ufikiaji wa akaunti iliyo na sudo au haki za mizizi. Katika somo hili, nitakuwa nikitumia akaunti yangu ya mizizi.

Nguzo yetu ya nodi 3 itaonekana kitu kama hiki:

Ufungaji wa Kubernetes Cluster kwenye Master-Node

Ili Kubernetes ifanye kazi, utahitaji injini ya uwekaji vyombo. Kwa usakinishaji huu, tutatumia docker kwani ndio maarufu zaidi.

Hatua zifuatazo zitaendeshwa kwenye Njia kuu.

Kwenye nodi yako kuu, weka jina la mwenyeji na ikiwa huna seva ya DNS, basi pia sasisha /etc/hosts faili yako.

# 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

Unaweza kubandika worker-node-1 na worker-node-2 ili kujaribu ikiwa faili yako ya mwenyeji iliyosasishwa ni sawa kwa kutumia ping amri.

# ping 10.128.0.29
# ping 10.128.0.30

Ifuatayo, zima SElinux na usasishe sheria zako za ngome.

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

Weka sheria zifuatazo za ngome kwenye bandari. Hakikisha kwamba kila amri ya firewall-cmd inaleta mafanikio.

# 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

Utahitaji kuongeza hazina za Kubernetes kwa mikono kwani hazijasakinishwa kwa chaguo-msingi kwenye 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

Repo ya kifurushi ikiwa tayari, unaweza kwenda mbele na kusakinisha kubeadm na vifurushi vya docker.

# yum install kubeadm docker -y 

Wakati usakinishaji ukamilika kwa mafanikio, wezesha na uanze huduma zote mbili.

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

Sasa tuko tayari kuanzisha kubernetes master, lakini kabla ya hapo unahitaji kuzima ubadilishanaji ili kutekeleza amri ya \kubeadm init\.

# swapoff -a

Kuanzisha Kubernetes master ni mchakato otomatiki kikamilifu ambao unasimamiwa na amri ya \kubeadm init\ ambayo utaendesha.

# kubeadm init

Unaweza kutaka kunakili laini ya mwisho na kuihifadhi mahali pengine kwa sababu utahitaji kuiendesha kwenye nodi za wafanyikazi.

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

Kidokezo: Wakati mwingine amri hii inaweza kulalamika kuhusu hoja (args) zilizopitishwa, kwa hivyo ihariri ili kuzuia makosa yoyote. Kwa hivyo, utafuta ‘\’ herufi inayoambatana na --token na amri yako ya mwisho itaonekana hivi.

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

Baada ya kuanzisha Kubernetes kwa mafanikio, utahitaji kuruhusu mtumiaji wako kuanza kutumia nguzo. Kwa upande wetu, tunataka kuendesha usakinishaji huu kama mtumiaji wa mizizi, kwa hivyo tutaendelea na kutekeleza amri hizi kama mzizi. Unaweza kubadilisha kwa mtumiaji aliyewezeshwa na sudo unayependelea na uendeshe yaliyo chini kwa kutumia sudo.

Ili kutumia mzizi, endesha:

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

Ili kutumia mtumiaji aliyewezeshwa na sudo, endesha:

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

Sasa angalia ikiwa amri ya kubectl imeamilishwa.

# kubectl get nodes

Katika hatua hii, utaona pia kuwa hali ya nodi kuu ni 'NotReady'. Hii ni kwa sababu bado hatujapeleka mtandao wa pod kwenye nguzo.

Mtandao wa ganda ni mtandao unaowekelea kwa nguzo, ambao unawekwa juu ya mtandao wa sasa wa nodi. Imeundwa ili kuruhusu muunganisho kwenye ganda.

Kupeleka kundi la mtandao ni mchakato unaonyumbulika sana kulingana na mahitaji yako na kuna chaguo nyingi zinazopatikana. Kwa kuwa tunataka kufanya usakinishaji wetu iwe rahisi iwezekanavyo, tutatumia programu-jalizi ya Weavenet ambayo haihitaji usanidi wowote au msimbo wa ziada na inatoa anwani moja ya IP kwa kila ganda ambayo ni nzuri kwetu. Ikiwa ungependa kuona chaguo zaidi, tafadhali angalia hapa.

Amri hizi zitakuwa muhimu kupata usanidi wa mtandao wa pod.

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

Sasa ukiangalia hali ya nodi yako kuu, inapaswa kuwa 'Tayari'.

# kubectl get nodes

Ifuatayo, tunaongeza nodes za mfanyakazi kwenye nguzo.

Kuweka Nodi za Wafanyikazi ili Kujiunga na Kundi la Kubernetes

Hatua zifuatazo zitaendeshwa kwenye nodi za wafanyikazi. Hatua hizi zinapaswa kuendeshwa kwa kila nodi ya wafanyikazi wakati wa kujiunga na nguzo ya Kubernetes.

Kwenye nodi yako ya mfanyakazi-1 na nodi ya mfanyakazi-2, weka jina la mwenyeji na ikiwa huna seva ya DNS, basi pia sasisha nodi zako za bwana na mfanyakazi kwenye /etc/hosts faili.

# 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

Unaweza kubandika nodi kuu ili kujaribu ikiwa faili yako ya mwenyeji iliyosasishwa ni sawa.

Ifuatayo, zima SElinux na usasishe sheria zako za ngome.

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

Weka sheria zifuatazo za ngome kwenye bandari. Hakikisha kwamba amri zote za firewall-cmd, rudisha mafanikio.

# 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

Utahitaji kuongeza hazina za Kubernetes kwa mikono kwani hazijasanikishwa mapema kwenye 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

Repo ya kifurushi ikiwa tayari, unaweza kwenda mbele na kusakinisha kubeadm na vifurushi vya docker.

# yum install kubeadm docker -y 

Anzisha na uwashe huduma zote mbili.

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

Sasa tunahitaji tokeni ambayo kubeadm init ilitengeneza, ili kujiunga na nguzo. Unaweza kunakili na kuibandika kwenye nodi-1 na nodi-2 ikiwa ulikuwa umeinakili mahali fulani.

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

Kama inavyopendekezwa kwenye mstari wa mwisho, rudi kwenye nodi yako kuu na uangalie ikiwa nodi ya mfanyakazi-1 na nodi ya mfanyakazi-2 wamejiunga na nguzo kwa kutumia amri ifuatayo.

# kubectl get nodes

Ikiwa hatua zote zinakwenda kwa mafanikio, basi, unapaswa kuona node-1 na node-2 katika hali tayari kwenye node-master.

Imependekezwa Soma: Jinsi ya Kupeleka Nginx kwenye Kundi la Kubernetes

Kwa hatua hii, tumekamilisha usakinishaji wa nguzo ya Kubernetes kwenye Centos 7 na tumefanikiwa kuabiri nodi mbili za wafanyikazi. Sasa unaweza kuanza kuunda maganda yako na kupeleka huduma zako.