So installieren Sie einen Kubernetes Docker Cluster auf CentOS 7
Kubernetes ist eine Open-Source-Plattform zur Verwaltung von containerisierten Anwendungen, die von Google entwickelt wurde. Es ermöglicht Ihnen die Verwaltung, Skalierung und automatische Bereitstellung Ihrer containerisierten Anwendungen in der Cluster-Umgebung. Mit Kubernetes können wir unsere Container über mehrere Hosts hinweg orchestrieren, die containerisierten Anwendungen mit allen Ressourcen on the fly skalieren und über eine zentralisierte Containerverwaltungsumgebung verfügen.
In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie Kubernetes auf CentOS 7 installieren und konfigurieren. Wir werden 1 Server ‚k8s-master‘ als Kubernetes Host Master und 2 Server als Kubernetes Knoten, ’node01′ und ’node02′ verwenden.
Voraussetzungen
- 3 CentOS 7 Server
- 10.0.15.10 k8s-Master
- 10.0.15.21 node01
- 10.0.15.22 node02
- Root-Rechte
Was werden wir tun?
- Kubernetes Installation
- Kubernetes Cluster-Initialisierung
- Hinzufügen von Knoten01 und Knoten02 zum Cluster
- Testen – Erste Pod erstellen
Schritt 1 – Kubernetes Installation
In diesem ersten Schritt werden wir diese 3 Server für die Kubernetes-Installation vorbereiten, also alle Befehle auf den Master- und Node-Servern ausführen.
Wir werden alle Server für die Kubernetes-Installation vorbereiten, indem wir die bestehende Konfiguration auf den Servern ändern und auch einige Pakete installieren, darunter docker-ce und kubernetes selbst.
– Hosts konfigurieren
Bearbeiten Sie die Hosts-Datei auf allen Servern mit dem vim-Editor.
vim /etc/hosts
Fügen Sie die Liste des Hosts unten ein.
10.0.15.10 k8s-master 10.0.15.21 node01 10.0.15.22 node02
Speichern und beenden.
– SELinux deaktivieren
In diesem Tutorial werden wir nicht über die SELinux-Konfiguration für Docker sprechen, also werden wir sie deaktivieren.
Führen Sie den folgenden Befehl aus, um SELinux zu deaktivieren.
setenforce 0 sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
– br_netfilter Kernel Modul aktivieren
Das br_netfiltermodul wird für die kubernetische Installation benötigt. Aktivieren Sie dieses Kernelmodul, damit die Pakete, die die Brücke durchqueren, von iptables zum Filtern und zur Port-Weiterleitung verarbeitet werden und die kubernetischen Pods im Cluster miteinander kommunizieren können.
Führen Sie den folgenden Befehl aus, um das Kernelmodul br_netfilter zu aktivieren.
modprobe br_netfilter echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
– SWAP deaktivieren
Deaktivieren Sie SWAP für die Installation von Kubernetes, indem Sie die folgenden Befehle ausführen.
swapoff -a
Und dann bearbeiten Sie die Datei’/etc/fstab‘.
vim /etc/fstab
Kommentieren Sie die UUID der Swap-Zeile wie folgt.
– Docker CE installieren
Installieren Sie die neueste Version von Docker-ce aus dem Docker-Repository.
Installieren Sie die Paketabhängigkeiten für docker-ce.
yum install -y yum-utils device-mapper-persistent-data lvm2
Fügen Sie das Docker-Repository dem System hinzu und installieren Sie Docker-ce mit dem Befehl yum.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce
Warten Sie auf die Docker-ce-Installation.
– Kubernetes installieren
Fügen Sie das kubernetes Repository zum centos 7-System hinzu, indem Sie den folgenden Befehl ausführen.
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
Installieren Sie nun die kubernetes-Pakete kubeadm, kubelet und kubectl mit dem Befehl yum unten.
yum install -y kubelet kubeadm kubectl
Nachdem die Installation abgeschlossen ist, starten Sie alle diese Server neu.
sudo reboot
Melden Sie sich erneut am Server an und starten Sie die Dienste, Docker und Kubelet.
systemctl start docker && systemctl enable docker systemctl start kubelet && systemctl enable kubelet
– Ändern des cgroup-Treibers
Wir müssen sicherstellen, dass Docker-ce und Kubernetes die gleiche „cgroup“ verwenden.
Überprüfen Sie Docker cgroup mit dem Befehl docker info.
docker info | grep -i cgroup
Und du siehst, dass der Docker ‚cgroupfs‚ als cgroup-Treiber verwendet.
Führen Sie nun den folgenden Befehl aus, um den kuberetes cgroup-Treiber auf’cgroupfs‘ zu ändern.
sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Laden Sie das System neu und starten Sie den Kubelet-Dienst neu.
systemctl daemon-reload systemctl restart kubelet
Jetzt sind wir bereit, den Kubernetes-Cluster zu konfigurieren.
Schritt 2 – Kubernetes Cluster-Initialisierung
In diesem Schritt werden wir die Konfiguration des kubernetischen Masterclusters initialisieren.
Verschieben Sie die Shell auf den Master-Server’k8s-master‘ und führen Sie den folgenden Befehl aus, um den kubernetes-Master einzurichten.
kubeadm init --apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16
Hinweis:
–apiserver-advertise-address = bestimmt, auf welcher IP-Adresse Kubernetes seinen API-Server bewerben soll.
–pod-network-cidr = Geben Sie den Bereich der IP-Adressen für das Pod-Netzwerk an. Wir nutzen das virtuelle Netzwerk „Flanell“. Wenn Sie ein anderes Pod-Netzwerk wie z.B. Web-Netz oder Kattun verwenden möchten, ändern Sie den IP-Adressbereich.
Wenn die Kubernetes-Initialisierung abgeschlossen ist, erhalten Sie das Ergebnis wie folgt.
Hinweis:
Kopieren Sie den Befehl‘kubeadm join …. ………………………………………kubeadm join in Ihren Texteditor. Der Befehl wird verwendet, um neue Knoten im Kubernetes-Cluster zu registrieren.
Um Kubernetes nutzen zu können, müssen wir nun einige Befehle wie auf dem Ergebnis ausführen.
Erstellen Sie ein neues Konfigurationsverzeichnis für .k’ube‘ und kopieren Sie die Konfiguration ‚admin.conf‘.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Als nächstes stellen Sie das Flanellnetzwerk mit dem Befehl kubectl auf dem Kubernetes-Cluster bereit.
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Das Flanellnetz wurde im Cluster Kubernetes eingesetzt.
Warten Sie eine Minute und überprüfen Sie dann die kubernetischen Knoten und Hülsen mit den folgenden Befehlen.
kubectl get nodes kubectl get pods --all-namespaces
Und Sie erhalten den Knoten’k8s-master‘, der als’master‘ Cluster mit dem Status’bereit‘ läuft, und Sie erhalten alle Pods, die für den Cluster benötigt werden, einschließlich der’kube-flannel-ds‘ für die Konfiguration von Netzwerk-Pods.
Stellen Sie sicher, dass alle kube-system Pods den Status „running“ haben.
Die Initialisierung und Konfiguration des Kubernetes-Cluster-Masters ist abgeschlossen.
Schritt 3 – Hinzufügen von Knoten01 und Knoten02 zum Cluster
In diesem Schritt werden wir Knoten01 und Knoten02 hinzufügen, um dem Cluster’k8s‘ beizutreten.
Verbinden Sie sich mit dem node01-Server und führen Sie den Befehl kubeadm join aus, wie wir ihn oben kopiert haben.
kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e
Verbinden Sie sich mit dem node02-Server und führen Sie den Befehl kubeadm join aus, wie wir ihn oben kopiert haben.
kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e
Warten Sie einige Minuten und kehren Sie zum Master-Cluster-Server’k8s-master‘ zurück, um die Knoten und Pods mit dem folgenden Befehl zu überprüfen.
kubectl get nodes kubectl get pods --all-namespaces
Nun erhalten Sie Knoten01 und Knoten02 wurde dem Cluster mit dem Status „bereit“ hinzugefügt.
node01 und node02 wurden dem kubernetes cluster hinzugefügt.
Schritt 4 – Test der Erstellung der ersten Pod
In diesem Schritt werden wir einen Test durchführen, indem wir den Nginx-Pod im Kubernetes-Cluster einsetzen. Ein Pod ist eine Gruppe von einem oder mehreren Containern mit gemeinsamem Speicher und Netzwerk, die unter Kubernetes läuft. Ein Pod enthält einen oder mehrere Container, wie z.B. Docker-Container.
Melden Sie sich am k8s-master-Server an und erstellen Sie mit dem Befehl kubectl eine neue Bereitstellung mit dem Namen „nginx“.
kubectl create deployment nginx --image=nginx
Um Details zur Trennung der Bereitstellung von’nginx‘ zu sehen, führen Sie den folgenden Befehl aus.
kubectl describe deployment nginx
Und Sie erhalten die nginx pod Deployment-Spezifikation.
Als nächstes stellen wir den nginx pod vor, der über das Internet zugänglich ist. Und dafür müssen wir den neuen Dienst NodePort anlegen.
Führen Sie den folgenden Befehl kubectl aus.
kubectl create service nodeport nginx --tcp=80:80
Stellen Sie sicher, dass kein Fehler vorliegt. Überprüfen Sie nun den nginx-Dienst nodeport und IP mit dem Befehl kubectl unten.
kubectl get pods kubectl get svc
Nun erhalten Sie den nginx pod läuft nun unter der Cluster-IP-Adresse 10.160.60.38′ Port 80 und die Knoten-Haupt-IP-Adresse 10.0.15.x‘ auf Port 30691′.
Führen Sie vom k8s-master-Server aus den folgenden Curl-Befehl aus.
curl node01:30691
curl node02:30691
Der Nginx Pod wurde nun unter dem Kubernetes-Cluster eingesetzt und ist über das Internet zugänglich.
Greifen Sie nun über den Webbrowser zu.
http://10.0.15.10:30691/
Und Sie erhalten die Nginx-Standardseite.
Auf dem node02-Server – http://10.0.15.11:30691/
Der Kubernetes-Cluster Installation und Konfiguration auf CentOS 7 wurde erfolgreich abgeschlossen.