Otu esi etinye ụyọkọ Kubernetes na CentOS 7


Google nyere ndị obodo Opensource onyinye, Kubernetes abụrụla ngwa njikwa akpa nke nhọrọ. Ọ nwere ike ijikwa ma hazie ọ bụghị naanị oge ịgba ọsọ docker kamakwa Containers na Rkt runtimes.

Otu ụyọkọ Kubernetes na-ahụkarị ga-enwekarị ọnụ ọnụ ụlọ na ọtụtụ ndị ọrụ-ọnụ ma ọ bụ Minions. A na-ejikwa ọnụ ọnụ onye ọrụ ahụ site na ọnụ ụlọ nna ukwu, si otú a hụ na a na-ejikwa ụyọkọ ahụ site na etiti etiti.

Ọ dịkwa mkpa ikwupụta na ị nwekwara ike ibunye ụyọkọ Kubernetes otu ọnụ nke a na-akwadokarị maka nnukwu ọrụ na-adịghị arụ ọrụ. Maka nke a, ị nwere ike iji Minikube, nke bụ ngwá ọrụ na-arụ otu-node Kubernetes ụyọkọ na igwe mebere na ọnụ gị.

Akwadoro Gụọ: Otu esi etinye ụyọkọ Kubernetes na CentOS 8

Maka nkuzi a, anyị ga-aga-site na nrụnye ụyọkọ Kubernetes ọtụtụ ọnụ na CentOS 7 Linux. Nkuzi a dabere na ahịrị iwu, yabụ ị ga-achọ ịnweta windo ọnụ ọnụ gị.

  1. Ọtụtụ sava na-agba Centos 7 (1 Master Node, 2 Worker Nodes). A na-atụ aro ka Master Node nwere opekata mpe 2 CPU, n'agbanyeghị na nke a abụghị ihe siri ike chọrọ.
  2. Njikọ ịntanetị na ọnụ gị niile. Anyị ga na-ebubata Kubernetes na ngwugwu docker site na ebe nchekwa. N'otu aka ahụ, ị ga-achọ ijide n'aka na arụnyere onye njikwa ngwugwu yum na ndabara ma nwee ike weta ngwugwu n'ime oge.
  3. Ị ga-achọkwa ịnweta akaụntụ nwere ikike sudo ma ọ bụ mgbọrọgwụ. N'ime nkuzi a, a ga m eji akaụntụ mgbọrọgwụ m.

Ụyọkọ ọnụ ọnụ 3 anyị ga-adị ka nke a:

Nwụnye nke ụyọkọ Kubernetes na Master-Node

Maka Kubernetes ka ọ rụọ ọrụ, ị ga-achọ igwe na-eme ihe. Maka nrụnye a, anyị ga-eji docker dịka ọ kachasị ewu ewu.

Usoro ndị a ga-agba ọsọ na Master-Node.

Na ọnụ nna ukwu gị, tọọ aha nnabata ma ọ bụrụ na ịnweghị sava DNS, wee melite faịlụ /etc/hosts gị.

# 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

Ị nwere ike ping worker-node-1 na worker-node-2 iji nwalee ma ọ bụrụ na nchekwa nchekwa gị emelitere dị mma site na iji iwu ping.

# ping 10.128.0.29
# ping 10.128.0.30

Na-esote, gbanyụọ SElinux ma melite iwu firewall gị.

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

Tọọ iwu firewall ndị a na ọdụ ụgbọ mmiri. Gbaa mbọ hụ na iwu firewall-cmd ọ bụla na-eweghachite nke ọma.

# 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

Ị ga-achọ ịgbakwunye Kubernetes repositories n'ihi na ha anaghị abịa na ndabara na 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

Site na ngwugwu repo dị ugbu a, ị nwere ike ịga n'ihu wee wụnye kubeadm na ngwugwu docker.

# yum install kubeadm docker -y 

Mgbe echichi mechara nke ọma, mee ma malite ọrụ abụọ ahụ.

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

Ugbu a, anyị adịla njikere ibido kubernetes master, mana tupu nke ahụ, ịkwesịrị gbanyụọ swap ka ị wee gbaa iwu \kubeadm init\ iwu.

# swapoff -a

Ịmalite Kubernetes master bụ usoro akpaaka zuru oke nke iwu \kubeadm init na-ejikwa nke ị ga-agba.

# kubeadm init

Ị nwere ike ịchọrọ idetu ahịrị ikpeazụ wee chekwaa ya ebe n'ihi na ị ga-achọ ịgbanye ya na ọnụ ọnụ ndị ọrụ.

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

NDỤMỌDỤ: Mgbe ụfọdụ iwu a nwere ike ime mkpesa maka arụmụka (args) gafere, yabụ dezie ya ka ịzenarị mperi ọ bụla. Yabụ, ị ga-ehichapụ mkpụrụedemede ’\’ na-eso --token na iwu ikpeazụ gị ga-adị ka nke a.

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

N'ịbụ onye ịmalitere Kubernetes nke ọma, ị ga-achọ ikwe ka onye ọrụ gị malite iji ụyọkọ ahụ. N'ọnọdụ anyị, anyị chọrọ ịme nrụnye a dị ka onye ọrụ mgbọrọgwụ, ya mere, anyị ga-aga n'ihu ma na-agba ọsọ iwu ndị a dị ka mgbọrọgwụ. Ị nwere ike ịgbanwe gaa na onye ọrụ sudo nyere aka masịrị gị wee jiri sudo mee ihe dị n'okpuru.

Iji jiri mgbọrọgwụ, gbanye:

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

Iji jiri onye ọrụ sudo nyeere, gbaa ọsọ:

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

Ugbu a lelee ma ọ bụrụ na agbanyere kubectl iwu.

# kubectl get nodes

N'oge a, ị ga-achọpụtakwa na ọkwa nke master-node bụ 'NotReady'. Nke a bụ n'ihi na anyị ka ga-ebuga netwọk pọd na ụyọkọ ahụ.

Netwọk pọd bụ netwọk mkpuchi maka ụyọkọ, nke etinyere n'elu netwọk ọnụ ugbu a. Emebere ya iji kwe ka njikọta n'ofe pọd.

Ịkwanye ụyọkọ netwọkụ bụ usoro mgbanwe dị ukwuu dabere na mkpa gị yana enwere ọtụtụ nhọrọ dịnụ. Ebe ọ bụ na anyị chọrọ ime ka nrụnye anyị dị mfe dị ka o kwere mee, anyị ga-eji ngwa mgbakwunye Weavenet nke na-adịghị achọ nhazi ọ bụla ma ọ bụ koodu mgbakwunye na ọ na-enye otu adreesị IP kwa pod nke dị mma maka anyị. Ọ bụrụ na ịchọrọ ịhụ nhọrọ ndị ọzọ, biko lelee ebe a.

Iwu ndị a ga-adị mkpa iji nweta ntọala netwọkụ pod.

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

Ugbu a ọ bụrụ na ịlele ọkwa nke onye nwe-ọnụ gị, ọ kwesịrị ịbụ 'Njikere'.

# kubectl get nodes

Ọzọ, anyị na-agbakwunye ọnụ ndị ọrụ na ụyọkọ.

Ịtọlite ọnụ ọnụ ndị ọrụ iji sonyere ụyọkọ Kubernetes

Usoro ndị a ga-agba ọsọ na ọnụ ndị ọrụ. Ekwesịrị ịme usoro ndị a n'ọnụ ọnụ onye ọrụ ọ bụla mgbe ị na-esonye na ụyọkọ Kubernetes.

Na onye ọrụ gị-node-1 na worker-node-2, tọọ aha nnabata na ọ bụrụ na ịnweghị sava DNS, melitekwa onye nwe gị na onye ọrụ na /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

Ị nwere ike ping master-node iji nwalee ma faịlụ hostfile emelitere dị mma.

Na-esote, gbanyụọ SElinux ma melite iwu firewall gị.

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

Tọọ iwu firewall ndị a na ọdụ ụgbọ mmiri. Gbaa mbọ hụ na iwu firewall-cmd niile, laghachite ihe ịga nke ọma.

# 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

Ị ga-eji aka tinye ebe nchekwa Kubernetes n'ihi na etinyeghị ya na 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

Site na ngwugwu repo dị ugbu a, ị nwere ike ịga n'ihu wee wụnye kubeadm na ngwugwu docker.

# yum install kubeadm docker -y 

Malite ma mee ma ọrụ abụọ ahụ.

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

Ugbu a, anyị chọrọ akara nke kubeadm init mepụtara, iji sonyere ụyọkọ ahụ. Ị nwere ike idetuo ma mado ya na node-1 na node-2 ma ọ bụrụ na i depụtala ya ebe.

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

Dị ka atụ aro na ahịrị ikpeazụ, laghachi na onye nwe-ọnụ gị wee lelee ma onye ọrụ node-1 na onye ọrụ node-2 abanyela na ụyọkọ ahụ site na iji iwu na-esonụ.

# kubectl get nodes

Ọ bụrụ na usoro niile na-aga nke ọma, mgbe ahụ, ị ga-ahụ node-1 na node-2 na ọnọdụ njikere na master-node.

Akwadoro Gụọ: Otu esi ebunye Nginx na ụyọkọ Kubernetes

N'oge a, anyị emechaala nrụnye nke ụyọkọ Kubernetes na Centos 7 ma anyị ejirila nke ọma banye n'ọnụ ọnụ ndị ọrụ abụọ. Ị nwere ike ịmalite ịmepụta pọd gị ma tinye ọrụ gị.