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?

  1. Kubernetes Installation
  2. Kubernetes Cluster-Initialisierung
  3. Hinzufügen von Knoten01 und Knoten02 zum Cluster
  4. 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

Swap deaktivieren

Und dann bearbeiten Sie die Datei’/etc/fstab‘.

vim /etc/fstab

Kommentieren Sie die UUID der Swap-Zeile wie folgt.

Edit /etc/fstab

– 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.

Docker installieren

– 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

Install Kubernetes

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.

Konfigure Kubernetes Cluster

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

Kubernetes Cluster-Initialisierung

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.

Die Kubernetes-Initialisierung ist abgeschlossen.

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

Kubernetes Join

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.

Check Kubernetes Node

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

Hinzufügen von Knoten01 und Knoten02 zum Cluster

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

Dockerknoten verbinden

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.

kubctl-Befehl

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

Erste Pod erstellen

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

Liste der Pods abrufen

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

Test mit Curl

curl node02:30691

Testknoten 2 mit Curl testen

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.

Seite auf Knoten 1

Auf dem node02-Server – http://10.0.15.11:30691/

Seite auf Knoten 2

Der Kubernetes-Cluster Installation und Konfiguration auf CentOS 7 wurde erfolgreich abgeschlossen.

Referenz

Das könnte Dich auch interessieren …