Giunsa ang Pag-install sa Kubernetes Cluster sa CentOS 7


Gidonar sa Google sa komunidad sa Opensource, ang Kubernetes nahimo na karon nga himan sa pagdumala sa sulud nga kapilian. Makadumala ug maka-orkestrate kini dili lang sa mga runtime sa docker kondili usab sa mga Container ug Rkt runtime.

Ang kasagarang Kubernetes cluster kasagaran adunay master node ug daghang worker-node o Minions. Ang mga worker-node unya gidumala gikan sa master node, sa ingon nagsiguro nga ang cluster gidumala gikan sa usa ka sentro nga punto.

Importante usab nga hisgutan nga mahimo ka usab nga mag-deploy og usa ka node nga Kubernetes cluster nga kasagaran girekomenda alang sa kaayo nga gaan, dili produksiyon nga mga workloads. Alang niini, mahimo nimong gamiton ang Minikube, nga usa ka himan nga nagpadagan sa usa ka node nga Kubernetes cluster sa usa ka virtual machine sa imong node.

Girekomenda nga Basaha: Giunsa Pag-install ang Kubernetes Cluster sa CentOS 8

Alang sa kini nga panudlo, maglakaw kami sa usa ka multi-node Kubernetes cluster installation sa CentOS 7 Linux. Kini nga panudlo gibase sa command-line mao nga kinahanglan nimo ang access sa imong terminal window.

  1. Daghang mga server nga nagpadagan sa Centos 7 (1 Master Node, 2 Worker Nodes). Girekomenda nga ang imong Master Node adunay labing menos 2 ka mga CPU, bisan kung kini dili usa ka higpit nga kinahanglanon.
  2. Pagdugtong sa internet sa tanan nimong node. Magkuha kami mga Kubernetes ug docker packages gikan sa repository. Sa parehas nga paagi, kinahanglan nimo nga sigurohon nga ang manager sa yum package na-install sa default ug mahimo’g makuha ang mga pakete sa layo.
  3. Magkinahanglan ka usab og access sa usa ka account nga adunay sudo o root nga mga pribilehiyo. Niini nga tutorial, akong gamiton ang akong root account.

Ang among 3-node cluster mahimong sama niini:

Pag-instalar sa Kubernetes Cluster sa Master-Node

Para mugana ang Kubernetes, magkinahanglan ka ug containerization engine. Alang sa kini nga pag-install, gamiton namon ang docker tungod kay kini ang labing inila.

Ang mosunod nga mga lakang modagan sa Master-Node.

Sa imong master node, ibutang ang hostname ug kung wala kay DNS server, unya i-update usab ang imong /etc/hosts file.

# 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

Mahimo nimong i-ping ang worker-node-1 ug worker-node-2 aron masulayan kung maayo ba ang imong na-update nga hostfile gamit ang ping command.

# ping 10.128.0.29
# ping 10.128.0.30

Sunod, i-disable ang SElinux ug i-update ang imong mga lagda sa firewall.

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

Ibutang ang mosunod nga mga lagda sa firewall sa mga pantalan. Siguroha nga ang matag firewall-cmd nga sugo, mobalik sa usa ka kalampusan.

# 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

Kinahanglan nimo nga idugang ang mga repositoryo sa Kubernetes nga mano-mano tungod kay wala kini ma-install nga default sa 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

Sa andam na ang package repo, mahimo ka nga magpadayon ug mag-install sa mga kubeadm ug docker nga mga pakete.

# yum install kubeadm docker -y 

Kung malampuson nga makompleto ang pag-install, i-enable ug sugdi ang duha nga mga serbisyo.

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

Karon andam na kami sa pagsugod sa kubernetes master, apan sa dili pa kana kinahanglan nimong i-disable ang swap aron makadagan ang \kubeadm init\ nga sugo.

# swapoff -a

Ang pagsugod sa Kubernetes master usa ka bug-os nga automated nga proseso nga gidumala sa \kubeadm init\ nga sugo nga imong ipadagan.

# kubeadm init

Mahimo nimong kopyahon ang katapusang linya ug i-save kini sa usa ka lugar tungod kay kinahanglan nimo nga ipadagan kini sa mga node sa trabahante.

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

Sugyot: Usahay kini nga sugo mahimong magreklamo bahin sa mga argumento (args) nga gipasa, busa usba kini aron malikayan ang bisan unsang mga sayup. Busa, imong papason ang ‘\’ karakter nga kauban sa --token ug ang imong kataposang sugo mahimong sama niini.

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

Kung malampuson nga nasugdan ang Kubernetes, kinahanglan nimo nga tugutan ang imong user nga magsugod sa paggamit sa cluster. Sa among kaso, gusto namon nga ipadagan kini nga pag-install ingon gamut nga tiggamit, busa magpadayon kami ug padaganon kini nga mga mando ingon gamut. Mahimo ka magbag-o sa usa ka sudo enabled user nga gusto nimo ug ipadagan ang ubos gamit ang sudo.

Aron magamit ang gamut, pagdagan:

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

Aron magamit ang usa ka sudo enabled user, pagdagan:

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

Karon susiha aron makita kung ang kubectl nga sugo gi-activate.

# kubectl get nodes

Niini nga punto, mamatikdan usab nimo nga ang kahimtang sa master-node mao ang 'NotReady'. Kini tungod kay wala pa namo ma-deploy ang pod network sa cluster.

Ang pod Network mao ang overlay network alang sa cluster, nga gibutang sa ibabaw sa karon nga node network. Gidisenyo kini aron tugutan ang pagkonekta sa tibuuk nga pod.

Ang pag-deploy sa kumpol sa network usa ka labi ka dali nga proseso depende sa imong mga panginahanglanon ug adunay daghang mga kapilian nga magamit. Tungod kay gusto namon nga ipadayon ang among pag-install nga yano kutob sa mahimo, gamiton namon ang Weavenet plugin nga wala magkinahanglan bisan unsang pag-configure o dugang nga code ug naghatag kini usa ka IP address matag pod nga maayo alang kanamo. Kung gusto nimo makakita og dugang nga mga kapilian, palihug susiha dinhi.

Kini nga mga sugo mahimong importante aron makuha ang pod network setup.

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

Karon kung imong susihon ang kahimtang sa imong master-node, kini kinahanglan nga 'Andam'.

# kubectl get nodes

Sunod, among idugang ang mga worker node sa cluster.

Pag-set up sa Worker Nodes aron Apil sa Kubernetes Cluster

Ang mosunod nga mga lakang modagan sa mga worker node. Kini nga mga lakang kinahanglan ipadagan sa matag worker node kung moapil sa Kubernetes cluster.

Sa imong worker-node-1 ug worker-node-2, ibutang ang hostname ug kung wala kay DNS server, unya i-update usab ang imong master ug worker nodes sa /etc/hosts file.

# 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

Mahimo nimong i-ping ang master-node aron masulayan kung maayo ang imong na-update nga hostfile.

Sunod, i-disable ang SElinux ug i-update ang imong mga lagda sa firewall.

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

Ibutang ang mosunod nga mga lagda sa firewall sa mga pantalan. Siguruha nga ang tanan nga mga mando sa firewall-cmd, ibalik ang kalampusan.

# 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

Kinahanglan nimo nga idugang ang mga repositoryo sa Kubernetes nga mano-mano tungod kay wala kini na-pre-install sa 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

Sa andam na ang package repo, mahimo ka nga magpadayon ug mag-install sa mga kubeadm ug docker nga mga pakete.

# yum install kubeadm docker -y 

Pagsugod ug pagpagana sa duha ka serbisyo.

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

Nanginahanglan na kami sa timaan nga namugna sa kubeadm init, aron makaapil sa cluster. Mahimo nimong kopyahon ug idikit kini sa imong node-1 ug node-2 kung gikopya nimo kini bisan asa.

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

Sama sa gisugyot sa katapusang linya, balik sa imong master-node ug susiha kung ang worker node-1 ug worker node-2 miapil sa cluster gamit ang mosunod nga command.

# kubectl get nodes

Kung ang tanan nga mga lakang malampuson nga modagan, nan, kinahanglan nimo nga makita ang node-1 ug node-2 sa andam nga kahimtang sa master-node.

Girekomenda nga Basaha: Giunsa ang Pag-deploy sa Nginx sa usa ka Kubernetes Cluster

Niining puntoha, malampuson namong nakompleto ang pag-instalar sa usa ka Kubernetes cluster sa Centos 7 ug malampuson kaming nakasakay sa duha ka worker-nodes. Makasugod ka na sa paghimo sa imong mga pod ug pag-deploy sa imong mga serbisyo.