Áttekintés
Előfeltételek
A dolgozó és a mester konfigurálása
Főcsomópont beállítása
Munkás csomópont
Becsomagolás
Áttekintés
Ennek a cikknek az a célja, hogy segítsen egy Kubernetes-fürtöt a kubeadm segítségével pillanatok alatt üzembe helyezni. Ez az útmutató két kiszolgáló, egy mester és egy dolgozó telepítésére vonatkozik, azonban tetszőleges számú kiszolgálót telepíthet.
Mi az a kubeadm?
A Kubeadm a Kubernetes által kifejlesztett eszköz, amely lehetővé teszi egy minimális életképes fürt létrehozását és futtatását a legjobb gyakorlatok követésével. Csak a fürtöt indítja el, a gépeket nem. Az olyan dolgok, mint a kiegészítők, a Kubernetes irányítópult, a megfigyelési megoldások és így tovább, a kubeadm nem fog tenni érte.
Előfeltételek
Van néhány követelmény az általunk telepített szerverekkel szemben. Egy vagy több deb/rpm-kompatibilis operációs rendszert futtató gép. CentOS-t fogunk használni.
- 2 GB vagy több RAM gépenként
- 2 vagy több CPU a mesteren
Teljes hálózati kapcsolat a fürt összes gépe között
Az ebben az útmutatóban telepített két szerver a következő: - 1 CPU 2 GB RAM CentOS 7 rendszerrel (Worker node) - 2 CPU 4 GB RAM CentOS 7 rendszerrel (Master node)
Ennyi RAM-mal mindkét szerveren a Kubernetesnek bőven lesz helye a levegőnek.
A dolgozó és a mester konfigurálása
Itt vannak azok a lépések, amelyeket mind a fő, mind a dolgozó csomóponton meg kell tennünk:
- Yum frissítés és csomagok
- Docker telepítése
- A selinux letiltása
- A csere letiltása
- Tűzfal letiltása
- Frissítse az IPTables-t
- Telepítse a kubelet/kubeadm/kubectl-t
Docker telepítése
1.14Ebben az oktatóanyagban a Kubernetes verzióját fogjuk használni . Ennél a verziónál a Kubernetes a Docker verzió futtatását javasolja 18.06.2. Feltétlenül ellenőrizze a Kuberenetes verziójához tartozó ajánlott Docker-verziót
Hozzáadjuk a Docker-tárat a yumhoz, és kifejezetten telepítjük 18.06.2. A Docker telepítése után a Docker démont a Kubernetes által javasolt beállításokra kell konfigurálnunk.
###Add yum-utils, if not installed already
yum install yum-utils
###Add Docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
###Install Docker CE.
yum update && yum install docker-ce-18.06.2.ce
###Create /etc/docker directory.
mkdir /etc/docker
###Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
###Restart Docker
systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker
A SELinux letiltása
Mivel CentOS-t használunk, le kell tiltanunk a SELinuxot. Ez azért szükséges, hogy a konténerek hozzáférjenek a gazdagép fájlrendszeréhez.
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disable/' /etc/selinux/config
Swap letiltása
A cserét le kell tiltani, hogy a kubelet megfelelően működjön.
sed -i '/swap/d' /etc/fstab
swapoff -a
Tűzfal letiltása
A Kubernetes IPTables segítségével kezeli a bejövő és kimenő forgalmat – ezért a problémák elkerülése érdekében letiltjuk a tűzfalat.
systemctl disable firewalld
systemctl stop firewalld
Frissítse az IPTables-t
A Kubernetes azt javasolja, hogy net.bridge.bridge-nf-call-iptablesaz 1-es értéket állítsuk be. Ennek oka az a probléma, hogy a REHL/CentOS 7 rendszerben az iptables megkerülése miatt a forgalom helytelen átirányításával kapcsolatos problémák merültek fel.
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
Telepítse a kubelet/kubeadm/kubectl-t
Hozzá kell adnunk a kubernetes repót a yumhoz. Miután ezt megtettük, csak le kell futtatnunk az install parancsot, és engedélyezni kell a kubeletet.
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
exclude=kube*
EOF
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
Most már teljesen beállítottuk a fő és a dolgozó csomópontunkat. Most már inicializálhatjuk főcsomópontunkat, és csatlakozhatunk a munkavégző csomópontokhoz a fő csomóponthoz!
Megjegyzés Ha több dolgozó csomópontot szeretne hozzáadni, a fenti folyamatot az összes csomóponton is el kell végezni.
Főcsomópont beállítása
A főcsomópontunkat a következő parancs futtatásával szeretnénk inicializálni. Az alábbi parancsban le kell cserélnie a fő csomópont IP-címét. Ezenkívül átadjuk a pod-network-cidr-t, hogy később megkönnyítsük a dolgunkat, amikor telepítjük a Flanel hálózati átfedést.
kubeadm init --apiserver-advertise-address=YOUR_IP_HERE --pod-network-cidr=10.244.0.0/16
Ennek befejezése eltarthat egy ideig, de miután elkészült, valami hasonlót fog látni a kimenet végén, például az alábbiakat.
kubeadm join YOUR_IP:6443 --token 4if8c2.pbqh82zxcg8rswui \
--discovery-token-ca-cert-hash sha256:a0b2bb2b31bf7b06bb5058540f02724240fc9447b0e457e049e59d2ce19fcba2
Ezt a parancsot kell végrehajtania a dolgozó csomópontjainak a fürthöz való csatlakozáshoz, ezért vegye figyelembe.
A következő a Flanel. A flanel az, ami lehetővé teszi a hüvelyek közötti kommunikációt. Számos más típusú hálózati átfedés is telepíthető, de az egyszerűség kedvéért ebben az útmutatóban a Flanelt használjuk.
Másolja át a kube/configfájlt a $Homesajátjára, hogy végrehajthassa a kubectlparancsokat.
mkdir $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
Az egyik utolsó lépés a főcsomóponton a Flanel telepítése. Futtassa a következő parancsot.
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Ha ezt a konfigurációt átmásolja, akkor futhat kubectl get csés választ kaphat.
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
A fő csomópont be van állítva, és használatra kész. Irány a dolgozó csomópont!
Munkás csomópont
Ezen a ponton nincs szükség többletmunkára a dolgozó csomóponton. Csak annyit kell tennünk, hogy lefuttatjuk a kubeadm joinparancsot, amelyet a kubeadm initkimenetünkből kaptunk .
Ha véletlenül rosszul helyezted el a kubeadm join parancsot, akkor generálhatsz egy másikat a főcsomóponton a futtatással
kubeadm token create --print-join-command
A kubeadm join parancs futtatása kubectl get nodesután , ha a masteren futtatja , a következőhöz hasonló kimenetet fog látni.
NAME STATUS ROLES AGE VERSION
k8-master Ready master 107m v1.14.2
k8-worker Ready <none> 45m v1.14.2
Becsomagolás
Ugyanúgy, mint ahogyan egy Kubernetes-fürtöt is elindított a kubeadm segítségével. Ezt privát hálózatokkal is megteheti. A Vultr, valamint más felhőszolgáltatók lehetővé teszik a privát hálózatokat. Továbbá, ha kubectl-parancsokat szeretne végrehajtani a helyi gépről a fürt ellen, ezt úgy érheti el, hogy a kubectl-t helyileg telepíti, és a .kube/configfájlt a fürtből a helyi gépre húzza le a -ban $HOME/.kube/config.
Remélhetőleg ez az útmutató segít áthaladni a kubeadm-en, és rövid időn belül játszani fog a kubernetes-szel!
Hasznos Linkek: