CentOS 7-de Kubernetes klasterini nädip gurmaly


“Google” tarapyndan “Opensource” jemgyýetine bagyşlanan Kubernetes indi konteýner dolandyryş guralyna öwrüldi. Diňe dok iş wagty däl, eýsem Konteýnerler we Rkt iş wagtlaryny hem dolandyryp we düzüp biler.

Adaty Kubernetes toparynda, adatça, esasy düwün we birnäçe işçi düwünleri ýa-da Minionlar bolýar. Soňra işçi düwünleri esasy düwünden dolandyrylýar, şeýlelik bilen toparyň merkezi nokatdan dolandyrylmagyny üpjün edýär.

Şeýle hem, bir düwünli Kubernetes toparyny ýerleşdirip bilersiňiz, adatça gaty ýeňil, önümçilik däl iş ýükleri üçin maslahat berilýär. Munuň üçin düwüniňizdäki wirtual maşynda bir düwünli Kubernetes toparyny işleýän gural bolan Minikube ulanyp bilersiňiz.

Maslahat berilýän okaň: CentOS 8-de Kubernetes klasterini nädip gurmaly

Bu gollanma üçin CentOS 7 Linux-da köp düwünli Kubernetes klaster gurnamasynyň üstünden bararys. Bu gollanma buýruk setirine esaslanýar, şonuň üçin terminal penjiräňize girmeli bolarsyňyz.

  1. Centos 7-de işleýän birnäçe serwer (1 Master düwün, 2 işçi düwün). Master Node-da azyndan 2 CPU bolmagy maslahat berilýär, ýöne bu gaty talap däl.
  2. nhli düwünleriňizde internet birikmesi. Kubernetes we doker paketlerini ammardan alarys. Şonuň bilen birlikde, ýum paket dolandyryjysynyň deslapky gurnalandygyna we paketleri uzakdan alyp biljekdigine göz ýetirmeli.
  3. Şeýle hem, sudo ýa-da kök aýratynlyklary bolan hasaby açmaly bolarsyňyz. Bu gollanmada kök hasabymy ulanaryn.

3 düwünli toparymyz şuňa meňzeş bir zat görüner:

Master-düwünde Kubernetes klasterini gurmak

Kubernetesiň işlemegi üçin konteýnerizasiýa motory gerek bolar. Bu gurnama üçin, iň meşhur bolany üçin dokeri ulanarys.

Aşakdaky ädimler Master-düwünde işlär.

Baş düwüniňizde, host adyny belläň we DNS serweriňiz ýok bolsa,/etc/host faýlyňyzy hem täzeläň.

# 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

Ping buýrugy bilen täzelenen hostfaýlyňyzyň gowydygyny ýa-da ýokdugyny barlamak üçin işçi-node-1 we işçi-node-2-i basyp bilersiňiz.

# ping 10.128.0.29
# ping 10.128.0.30

Ondan soň, SElinux-y öçüriň we diwar gorag düzgünleriňizi täzeläň.

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

Portlarda aşakdaky diwar gorag düzgünlerini düzüň. Her firewall-cmd buýrugynyň üstünlik gazanýandygyna göz ýetiriň.

# 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

Kubernetes ammarlaryny el bilen goşmaly bolarsyňyz, sebäbi olar CentOS 7-de deslapky gurulmaýar.

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

Paket repo indi taýýar bolansoň, kubeadm we doker paketlerini gurup bilersiňiz.

# yum install kubeadm docker -y 

Gurmak üstünlikli tamamlananda, iki hyzmaty işlediň we başlaň.

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

Indi kubernetes ussady başlamaga taýyn, ýöne ondan ozal\kubeadm init\buýrugyny işletmek üçin swap-y öçürmeli.

# swapoff -a

Kubernetes ussady işe girizmek, işlejek\kubeadm init\buýrugy bilen dolandyrylýan doly awtomatlaşdyrylan prosesdir.

# kubeadm init

Iň soňky setiri göçürip, bir ýerde saklap bilersiňiz, sebäbi ony işçi düwünlerinde işletmeli bolarsyňyz.

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

Maslahat: Käwagt bu buýruk geçen argumentlerden (args) zeýrenip biler, şonuň üçin ýalňyşlyklardan gaça durmak üçin redaktirläň. Şeýlelik bilen, --token bilen bilelikde '\' nyşanyny pozarsyňyz we iň soňky buýrugyňyz şuňa meňzeýär.

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

Kubernetes-i üstünlikli başlanyňyzdan soň, ulanyjynyňyza klaster ulanyp başlamagyna rugsat bermeli bolarsyňyz. Biziň ýagdaýymyzda, bu gurnamany kök ulanyjy hökmünde işletmek isleýäris, şonuň üçin bu buýruklary kök hökmünde işlederis. Islän sudo mümkinçilikli ulanyjyňyzy üýtgedip bilersiňiz we sudo ulanyp aşakda işledip bilersiňiz.

Kök ulanmak üçin işlediň:

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

Sudo açyk ulanyjyny ulanmak üçin işlediň:

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

Indi kubectl buýrugynyň işjeňdigini ýa-da ýokdugyny barlaň.

# kubectl get nodes

Bu pursatda baş düwüniň ýagdaýynyň “NotReady” bolandygyny görersiňiz. Munuň sebäbi entek pod toruny klasterde ýerleşdirmeli däl.

Pod Network, häzirki düwün torunyň üstünde ýerleşdirilen klaster üçin örtük torudyr. Ol podwodka birikmäge mümkinçilik berýär.

Tor toparyny ýerleşdirmek, zerurlyklaryňyza baglylykda ýokary çeýe prosesdir we köp wariant bar. Gurluşymyzy mümkin boldugyça ýönekeý saklamak isleýänimiz üçin, hiç hili konfigurasiýa ýa-da goşmaça kod talap etmeýän Weavenet pluginini ulanarys we bu pod üçin bir IP adresi üpjün edýär. Has köp wariant görmek isleseňiz, şu ýere göz aýlaň.

Bu buýruklar pod toruny gurmak üçin möhümdir.

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

Indi baş düwüniňiziň ýagdaýyny barlasaňyz, “Taýýar” bolmaly.

# kubectl get nodes

Soň bolsa, topara işçi düwünlerini goşýarys.

Kubernetes toparyna goşulmak üçin işçi düwünlerini düzmek

Aşakdaky ädimler işçi düwünlerinde işlär. Kubernetes toparyna goşulanda bu ädimler her işçi düwüninde işlemeli.

Işçi-düwün-1 we işçi-düwün-2-de host adyny belläň we DNS serweriňiz ýok bolsa, baş we işçi düwünleriňizi/etc/host faýlynda täzeläň.

# 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

Täzelenen hostfaýlyňyzyň gowydygyny ýa-da ýokdugyny barlamak üçin master-node düwmesini basyp bilersiňiz.

Ondan soň, SElinux-y öçüriň we diwar gorag düzgünleriňizi täzeläň.

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

Portlarda aşakdaky diwar gorag düzgünlerini düzüň. Firewall-cmd buýruklarynyň hemmesine üstünlik gazanyň.

# 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

Kubernetes ammarlaryny CentOS 7-de öňünden gurulmandygy sebäpli el bilen goşmaly bolarsyňyz.

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

Paket repo indi taýýar bolansoň, kubeadm we doker paketlerini gurup bilersiňiz.

# yum install kubeadm docker -y 

Iki hyzmaty başlaň we işlediň.

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

Indi, topara goşulmak üçin kubeadm initiň döreden nyşanyny talap edýäris. Bir ýerden göçüren bolsaňyz, düwün-1 we düwün-2-ä göçürip alyp bilersiňiz.

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

Iň soňky setirde görkezilişi ýaly, baş düwüniňize gaýdyp, işçi düwün-1 we işçi düwün-2 aşakdaky buýrugy ulanyp topara goşulandygyny ýa-da ýokdugyny barlaň.

# kubectl get nodes

Thehli ädimler üstünlikli işleýän bolsa, baş düwünde düwün-1 we düwün-2-ni taýýar ýagdaýda görmeli.

Maslahat berilýän okaň: Kubernetes toparynda Nginx-i nädip ýerleşdirmeli

Bu pursatda, Centos 7-de Kubernetes klasterini gurnamagy üstünlikli tamamladyk we iki işçi düwünine üstünlikli çykdyk. Indi podwodkalary döredip we hyzmatlaryňyzy ýerleşdirip bilersiňiz.