Weboldal keresés

Kubernetes-fürt telepítése CentOS 7 rendszeren


A Google által az Opensource közösségnek adományozott Kubernetes mára a választott konténerkezelő eszközzé vált. Nemcsak a docker-futási időket, hanem a tárolók és az Rkt futási időket is képes kezelni és hangszerelni.

Egy tipikus Kubernetes-fürt általában tartalmaz egy főcsomópontot és több dolgozó-csomópontot vagy Minionokat. A dolgozó-csomópontok ezután a fő csomópontról kerülnek felügyeletre, így biztosítva, hogy a fürt egy központi pontról legyen felügyelve.

Fontos megemlíteni azt is, hogy telepíthet egy egycsomópontos Kubernetes-fürtöt is, amely általában nagyon könnyű, nem éles munkaterhelésekhez ajánlott. Ehhez használhatja a Minikube eszközt, amely egy egycsomópontos Kubernetes-fürtöt futtat a csomóponton lévő virtuális gépen.

Ajánlott olvasmány: Kubernetes-fürt telepítése CentOS 8 rendszeren

Ebben az oktatóanyagban egy többcsomópontos Kubernetes fürttelepítést mutatunk be CentOS 7 Linux rendszeren. Ez az oktatóanyag parancssori alapú, így hozzá kell férnie a terminál ablakához.

Előfeltételek

  1. Több Centos 7 rendszert futtató szerver (1 főcsomópont, 2 dolgozó csomópont). Javasoljuk, hogy a Master Node legalább 2 CPU-val rendelkezzen, bár ez nem szigorú követelmény.
  2. Internetkapcsolat az összes csomóponton. A Kubernetes és a docker csomagokat fogjuk letölteni a tárolóból. Ugyanígy meg kell győződnie arról, hogy a yum csomagkezelő alapértelmezés szerint telepítve van, és távolról is le tudja tölteni a csomagokat.
  3. Hozzá kell férnie egy sudo vagy root jogosultságokkal rendelkező fiókhoz is. Ebben az oktatóanyagban a root fiókomat fogom használni.

A 3 csomópontos fürtünk valahogy így fog kinézni:

A Kubernetes-fürt telepítése a Master-Node-on

A Kubernetes működéséhez konténerező motorra lesz szüksége. Ehhez a telepítéshez a dockert fogjuk használni, mivel ez a legnépszerűbb.

A következő lépések futnak a Master-Node-n.

1. lépés: Készítse elő a gazdagépnevet, a tűzfalat és a SELinuxot

A főcsomóponton állítsa be a gazdagép nevét, és ha nem rendelkezik DNS-kiszolgálóval, akkor frissítse az /etc/hosts fájlt is.

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

A worker-node-1 és worker-node-2 ping segítségével tesztelheti, hogy a frissített gazdagép megfelelő-e a ping paranccsal.

ping 10.128.0.29
ping 10.128.0.30

Ezután kapcsolja ki a SElinuxot, és frissítse a tűzfalszabályokat.

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

Állítsa be a következő tűzfalszabályokat a portokon. Győződjön meg arról, hogy minden firewall-cmd parancs sikeres lesz.

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

2. lépés: A Kubernetes Repo beállítása

A Kubernetes adattárakat manuálisan kell hozzáadnia, mivel ezek alapértelmezés szerint nincsenek telepítve a CentOS 7 rendszeren.

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

3. lépés: Telepítse a Kubeadm-et és a Dockert

Ha készen áll a csomagtárház, telepítheti a kubeadm és a docker csomagokat.

yum install kubeadm docker -y 

Ha a telepítés sikeresen befejeződött, engedélyezze és indítsa el mindkét szolgáltatást.

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

4. lépés: A Kubernetes mester inicializálása és az alapértelmezett felhasználó beállítása

Most már készen állunk a kubernetes master inicializálására, de előtte le kell tiltania a cserét a „kubeadm init” parancs futtatásához.

swapoff -a

A Kubernetes master inicializálása egy teljesen automatizált folyamat, amelyet a „kubeadm init” parancs kezel, amelyet Ön fog futtatni.

kubeadm init

Érdemes lehet másolni az utolsó sort, és elmenteni valahova, mert a munkavégző csomópontokon kell futtatnia.

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

Tipp: Néha ez a parancs panaszt tehet az átadott argumentumok (args) miatt, ezért szerkessze, hogy elkerülje hibákat. Tehát törli a --token-t kísérő '\' karaktert, és a végső parancs így fog kinézni.

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

A Kubernetes sikeres inicializálása után engedélyeznie kell a felhasználónak a fürt használatának megkezdését. Esetünkben ezt a telepítést root felhasználóként szeretnénk futtatni, ezért ezeket a parancsokat rootként fogjuk futtatni. Válthat egy sudo-képes felhasználóra, és futtassa az alábbiakat a sudo használatával.

A root használatához futtassa:

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

Sudo-kompatibilis felhasználó használatához futtassa:

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

Most ellenőrizze, hogy a kubectl parancs aktiválva van-e.

kubectl get nodes

Ezen a ponton azt is észre fogja venni, hogy a master-node állapota „Not Ready”. Ennek az az oka, hogy még nem telepítjük a pod-hálózatot a fürtre.

A pod hálózat a fürt átfedő hálózata, amely a jelenlegi csomóponti hálózat tetején van telepítve. Úgy tervezték, hogy lehetővé tegye a csatlakozást a podban.

5. lépés: Állítsa be a Pod hálózatát

A hálózati fürt telepítése rendkívül rugalmas folyamat az Ön igényeitől függően, és számos lehetőség áll rendelkezésre. Mivel azt szeretnénk, hogy a telepítés a lehető legegyszerűbb legyen, a Weavenet beépülő modult fogjuk használni, amely nem igényel semmilyen konfigurációt vagy extra kódot, és pod-onként egy IP-címet biztosít, ami nagyszerű számunkra. Ha további lehetőségeket szeretne látni, kérjük, ellenőrizze itt.

Ezek a parancsok fontosak lesznek a pod hálózat beállításához.

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

Ha most ellenőrzi a főcsomópont állapotát, akkor annak „Késznek” kell lennie.

kubectl get nodes

Ezután hozzáadjuk a munkavégző csomópontokat a fürthöz.

Munkavállalói csomópontok beállítása a Kubernetes Clusterhez való csatlakozáshoz

A következő lépések futnak a munkavégző csomópontokon. Ezeket a lépéseket minden munkavégző csomóponton le kell futtatni, amikor csatlakozik a Kubernetes-fürthöz.

1. lépés: Készítse elő a gazdagépnevet, a tűzfalat és a SELinuxot

A worker-node-1 és worker-node-2 oldalon állítsa be a gazdagép nevét, és ha nem rendelkezik DNS-kiszolgálóval, akkor frissítse a mestert és a dolgozót is. csomópontok az /etc/hosts fájlban.

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

A master-node pingelésével tesztelheti, hogy a frissített gazdagép megfelelő-e.

Ezután kapcsolja ki a SElinuxot, és frissítse a tűzfalszabályokat.

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

Állítsa be a következő tűzfalszabályokat a portokon. Győződjön meg arról, hogy az összes firewall-cmd parancs sikert ad.

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

2. lépés: A Kubernetes Repo beállítása

A Kubernetes adattárakat manuálisan kell hozzáadnia, mivel ezek nincsenek előre telepítve a CentOS 7 rendszeren.

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

3. lépés: Telepítse a Kubeadm-et és a Dockert

Ha készen áll a csomagtárház, telepítheti a kubeadm és a docker csomagokat.

yum install kubeadm docker -y 

Indítsa el és engedélyezze mindkét szolgáltatást.

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

4. lépés: Csatlakoztassa a Worker Node-ot a Kubernetes-fürthöz

A fürthöz való csatlakozáshoz most szükségünk van a kubeadm init által generált tokenre. Másolhatja és beillesztheti a node-1 és a node-2-be, ha másolta valahova.

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

Az utolsó sorban javasolt módon lépjen vissza a főcsomóponthoz, és ellenőrizze, hogy a 1. munkacsomópont és a 2. munkacsomópont csatlakozott-e a fürt a következő paranccsal.

kubectl get nodes

Ha az összes lépés sikeresen fut, akkor a node-1 és a node-2 kész állapotban kell lennie a master-node-n.

Ajánlott olvasmány: Az Nginx telepítése Kubernetes-fürtön

Ezen a ponton sikeresen befejeztük a Kubernetes fürt telepítését a Centos 7 rendszeren, és sikeresen beépítettünk két worker-node-t. Most megkezdheti a pod-ok létrehozását és a szolgáltatások üzembe helyezését.