Kif Tinstalla Kubernetes Cluster fuq CentOS 7


Donata minn Google lill-komunità Opensource, Kubernetes issa sar l-għodda tal-ġestjoni tal-kontejners tal-għażla. Jista' jamministra u jorkestra mhux biss runtimes docker iżda wkoll runtimes Containers u Rkt.

Cluster tipiku ta 'Kubernetes ġeneralment ikollu node prinċipali u diversi nodi tal-ħaddiema jew Minions. In-nodi tal-ħaddiema mbagħad jiġu ġestiti min-nodu prinċipali, u b'hekk jiġi żgurat li l-cluster jiġi ġestit minn punt ċentrali.

Huwa importanti wkoll li ssemmi li tista 'wkoll tuża raggruppament ta' Kubernetes b'node wieħed li ġeneralment huwa rakkomandat għal xogħolijiet ħfief ħafna u mhux tal-produzzjoni. Għal dan, tista 'tuża Minikube, li hija għodda li tmexxi cluster Kubernetes b'node wieħed f'magna virtwali fuq in-nodu tiegħek.

Aqra Rakkomandat: Kif Tinstalla Kubernetes Cluster fuq CentOS 8

Għal dan it-tutorja, aħna se nimxu permezz ta 'installazzjoni ta' cluster Kubernetes b'ħafna nodi fuq CentOS 7 Linux. Dan it-tutorja huwa bbażat fuq il-linja tal-kmand għalhekk ser ikollok bżonn aċċess għat-tieqa tat-terminal tiegħek.

  1. Servers multipli li jħaddmu Centos 7 (1 Nodu Master, 2 Nodi tal-Ħaddiem). Huwa rakkomandat li l-Master Node tiegħek ikollu mill-inqas 2 CPUs, għalkemm dan mhuwiex rekwiżit strett.
  2. Konnettività tal-internet fuq in-nodi kollha tiegħek. Se nkunu qed inġibu Kubernetes u pakketti docker mir-repożitorju. Bl-istess mod, ser ikollok bżonn tiżgura li l-maniġer tal-pakketti yum huwa installat awtomatikament u jista 'jġib il-pakketti mill-bogħod.
  3. Ikollok bżonn ukoll aċċess għal kont bi privileġġi sudo jew root. F'dan it-tutorja, se nkun qed nuża l-kont root tiegħi.

Il-cluster tagħna bi 3 nodi se jidher xi ħaġa bħal din:

Installazzjoni ta' Kubernetes Cluster fuq Master-Node

Biex Kubernetes jaħdem, ser ikollok bżonn magna tal-kontejners. Għal din l-installazzjoni, se nużaw docker peress li huwa l-aktar popolari.

Il-passi li ġejjin se jimxu fuq il-Master-Node.

Fuq in-node prinċipali tiegħek, issettja l-isem tal-host u jekk ma jkollokx server DNS, imbagħad aġġorna wkoll il-fajl /etc/hosts tiegħek.

# 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

Tista 'ping worker-node-1 u worker-node-2 biex tittestja jekk il-hostfile aġġornat tiegħek hux tajjeb billi tuża kmand ping.

# ping 10.128.0.29
# ping 10.128.0.30

Sussegwentement, iddiżattiva SElinux u aġġorna r-regoli tal-firewall tiegħek.

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

Issettja r-regoli tal-firewall li ġejjin fuq il-portijiet. Kun żgur li kull kmand firewall-cmd, jirritorna suċċess.

# 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

Ikollok bżonn iżżid repożitorji Kubernetes manwalment peress li ma jiġux installati awtomatikament fuq 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

Bil-pakkett repo issa lest, tista 'tkompli u tinstalla pakketti kubeadm u docker.

# yum install kubeadm docker -y 

Meta l-installazzjoni titlesta b'suċċess, ippermetti u ibda ż-żewġ servizzi.

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

Issa aħna lesti biex inizjalizzaw kubernetes master, iżda qabel ma trid tiddiżattiva tpartit sabiex tmexxi kmand \kubeadm init\.

# swapoff -a

L-inizjalizzazzjoni tal-Kubernetes master huwa proċess kompletament awtomatizzat li huwa mmexxi mill-kmand \kubeadm init\ li inti se tmexxi.

# kubeadm init

Tista 'tkun trid tikkopja l-aħħar linja u ssejvjaha x'imkien għax ikollok bżonn tmexxiha fuq in-nodi tal-ħaddiema.

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

Tip: Xi drabi dan il-kmand jista' jilmenta dwar l-argumenti (args) li għaddew, għalhekk editjah biex tevita kwalunkwe żball. Għalhekk, int se tħassar il-karattru ‘\’ li jakkumpanja t---token u l-kmand finali tiegħek se jidher bħal dan.

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

Wara li inizjalizza Kubernetes b'suċċess, ser ikollok bżonn li l-utent tiegħek jibda juża l-cluster. Fil-każ tagħna, irridu nħaddmu din l-installazzjoni bħala utent root, għalhekk se nibqgħu għaddejjin u nħaddmu dawn il-kmandi bħala root. Tista 'tbiddel għal utent ppermettiet sudo li tippreferi u tmexxi l-hawn taħt billi tuża sudo.

Biex tuża l-għeruq, mexxi:

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

Biex tuża utent abilitat sudo, mexxi:

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

Issa iċċekkja biex tara jekk il-kmand kubectl huwiex attivat.

# kubectl get nodes

F'dan il-punt, tinnota wkoll li l-istatus tal-master-node huwa 'NotReady'. Dan għaliex għadna rridu nħaddmu n-netwerk tal-pods fil-cluster.

In-Netwerk tal-pods huwa n-netwerk overlay għall-cluster, li huwa skjerat fuq in-netwerk tan-nodi preżenti. Hija mfassla biex tippermetti konnettività madwar il-pod.

L-iskjerament tal-cluster tan-netwerk huwa proċess flessibbli ħafna li jiddependi fuq il-bżonnijiet tiegħek u hemm ħafna għażliet disponibbli. Peress li rridu nżommu l-installazzjoni tagħna sempliċi kemm jista 'jkun, se nużaw il-plugin Weavenet li ma jeħtieġ ebda konfigurazzjoni jew kodiċi żejjed u jipprovdi indirizz IP wieħed għal kull pod li huwa kbir għalina. Jekk trid tara aktar għażliet, jekk jogħġbok iċċekkja hawn.

Dawn il-kmandi se jkunu importanti biex tinkiseb is-setup tan-netwerk tal-pods.

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

Issa jekk tiċċekkja l-istatus tal-master-node tiegħek, għandu jkun Let.

# kubectl get nodes

Sussegwentement, inżidu n-nodi tal-ħaddiema mal-cluster.

Twaqqif ta' Nodi tal-Ħaddiema biex Jingħaqdu ma' Kubernetes Cluster

Il-passi li ġejjin se jimxu fuq in-nodi tal-ħaddiema. Dawn il-passi għandhom jitmexxew fuq kull nodu tal-ħaddiem meta tingħaqad mal-cluster Kubernetes.

Fuq il-worker-node-1 u l-worker-node-2 tiegħek, issettja l-isem tal-host u f'każ li ma jkollokx server DNS, imbagħad aġġorna wkoll in-nodi tal-kaptan u tal-ħaddiem tiegħek fuq il-fajl /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

Tista 'ping master-node biex tittestja jekk il-hostfile aġġornat tiegħek hux tajjeb.

Sussegwentement, iddiżattiva SElinux u aġġorna r-regoli tal-firewall tiegħek.

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

Issettja r-regoli tal-firewall li ġejjin fuq il-portijiet. Kun żgur li l-kmandi kollha tal-firewall-cmd, jirritornaw is-suċċess.

# 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

Ikollok bżonn iżżid repożitorji Kubernetes manwalment peress li ma jiġux installati minn qabel fuq 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

Bil-pakkett repo issa lest, tista 'tkompli u tinstalla pakketti kubeadm u docker.

# yum install kubeadm docker -y 

Ibda u ppermettiet iż-żewġ servizzi.

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

Issa neħtieġu t-token li ġġenera kubeadm init, biex jingħaqad mal-cluster. Tista' tikkopjaha u tippejstja man-node-1 u n-node-2 tiegħek jekk kont ikkupjatha x'imkien.

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

Kif issuġġerit fl-aħħar linja, mur lura għall-master-node tiegħek u iċċekkja jekk ħaddiem node-1 u ħaddiem node-2 ingħaqdux mal-cluster billi tuża l-kmand li ġej.

# kubectl get nodes

Jekk il-passi kollha jimxu b'suċċess, allura, għandek tara node-1 u node-2 fi stat lest fuq il-master-node.

Aqra Rakkomandat: Kif Tiskjera Nginx fuq Cluster Kubernetes

F'dan il-punt, lestejna b'suċċess installazzjoni ta 'cluster ta' Kubernetes fuq Centos 7 u ddejna b'suċċess żewġ nodi tal-ħaddiema. Issa tista' tibda toħloq il-miżwed tiegħek u tuża s-servizzi tiegħek.