Hallo Technikfreaks, wie wir wissen, ist Kubernetes (k8s) ein kostenloses und Open-Source-Container-Orchestrierungssystem. Es wird zur Automatisierung der Bereitstellung und Verwaltung von containerisierten Anwendungen verwendet. In dieser Anleitung behandeln wir Schritt für Schritt, wie Sie den Kubernetes-Cluster auf Rocky Linux 8 mit kubeadm installieren.
Mindestsystemanforderung für Kubernetes
- 2 vCPUs oder mehr
- 2 GB RAM oder mehr
- Swap deaktiviert
- Mindestens NIC-Karte
- Stabile Internetverbindung
- Ein normaler Benutzer mit sudo-Berechtigungen.
Zur Demonstration verwende ich folgende Systeme
- Einmal Master Node / Control Plane (2 GB RAM, 2 vCPU, 1 NIC-Karte, Minimal Rocky Linux 8 OS)
- Zwei Worker-Knoten (2 GB RAM, 2 vCPU, 1 NIC-Karte, minimales Betriebssystem Rocky Linux 8)
- Hostname des Master-Knotens – Kontrollknoten (192.168.1.240)
- Hostname der Arbeitsknoten – worker-node1(192.168.1.241), worker-node2(192.168.1.242)
Lassen Sie uns ohne weiteres in die Kubernetes-Installationsschritte eintauchen.
Hinweis:Diese Schritte gelten auch für RHEL 8 und AlmaLinux OS.
Schritt 1) Hostnamen festlegen und Hostdatei aktualisieren
Verwenden Sie den Befehl hostnamectl, um den Hostnamen auf dem Steuerknoten und dem Worker-Knoten festzulegen.
Unterhalb des Befehls auf dem Kontrollknoten ausführen
$ sudo hostnamectl set-hostname "control-node"$ exec bash
Führen Sie den folgenden Befehl auf Worker-Knoten1
aus$ sudo hostnamectl set-hostname "worker-node1"$ exec bash
Worker-Knoten 2
$ sudo hostnamectl set-hostname "worker-node2"$ exec bash
Fügen Sie die folgenden Einträge in der Datei /etc/hosts jeweils auf Steuer- und Worker-Knoten hinzu.
192.168.1.240 Kontrollknoten192.168.1.241 Worker-Knoten1192.168.1.242 Worker-Knoten2
Schritt 2) Swap deaktivieren und SELinux in den zulässigen Modus versetzen
Deaktivieren Sie Swap, damit Kubelet ordnungsgemäß funktionieren kann. Führen Sie die folgenden Befehle auf allen Knoten aus, um sie zu deaktivieren,
$ sudo swapoff -a$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Führen Sie den Befehl „sed“ auf allen Knoten aus, um SELinux in den zulässigen Modus zu versetzen
$ sudo setenforce 0$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Schritt 3) Firewall-Regeln auf Master- und Worker-Knoten konfigurieren
Auf der Steuerungsebene müssen die folgenden Ports in der Firewall zugelassen werden.
Führen Sie
aus, um die obigen Ports in der Steuerungsebene zuzulassen$ sudo firewall-cmd --permanent --add-port=6443/tcp$ sudo firewall-cmd --permanent --add-port=2379-2380/tcp$ sudo firewall-cmd --permanent --add -port=10250/tcp$ sudo firewall-cmd --permanent --add-port=10251/tcp$ sudo firewall-cmd --permanent --add-port=10252/tcp$ sudo firewall-cmd --reload$ sudo modprobe br_netfilter$ sudo sh -c "echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables"$ sudo sh -c "echo '1'> /proc/sys/net/ipv4/ ip_forward"
Auf Worker-Knoten müssen die folgenden Ports in der Firewall zugelassen werden
$ sudo firewall-cmd --permanent --add-port=10250/tcp$ sudo firewall-cmd --permanent --add-port=30000-32767/tcp br_netfilter$ sudo sh -c "echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables"$ sudo sh -c "echo '1'> /proc/sys/net/ipv4/ip_forward "
Schritt 4) Docker auf Master- und Worker-Knoten installieren
Installieren Sie Docker auf Master- und Worker-Knoten. Hier stellt Docker die Containerlaufzeit (CRI) bereit. Um den neuesten Docker zu installieren, müssen wir zuerst sein Repository aktivieren, indem wir die folgenden Befehle ausführen.
$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Führen Sie nun den folgenden dnf-Befehl auf allen Knoten aus, um Docker-ce (Docker Community Edition) zu installieren
$ sudo dnf install docker-ce -y
Ausgabe
Sobald Docker und seine Abhängigkeiten installiert sind, starten und aktivieren Sie seinen Dienst, indem Sie die folgenden Befehle ausführen
$ sudo systemctl docker starten$ sudo systemctl docker aktivieren
Schritt 5) Kubelet, Kubeadm und kubectl installieren
Kubeadm ist das Dienstprogramm, mit dem wir den Kubernetes-Cluster installieren. Kubectl ist das Befehlszeilendienstprogramm, das für die Interaktion mit dem Kubernetes-Cluster verwendet wird. Kubelet ist die Komponente, die alle Knoten ausführt und Aufgaben wie das Starten und Stoppen von Pods oder Containern ausführt.
Um kubelet, kubeadm und kubectl auf allen Knoten zu installieren, müssen wir zuerst das Kubernetes-Repository aktivieren.
Führen Sie die folgenden Befehle auf Master- und Worker-Knoten aus.
$ cat <Aktivieren Sie nach der Installation der obigen Pakete den Kubelet-Dienst auf allen Knoten (Steuer- und Worker-Knoten), führen Sie
aus$ sudo systemctl enable --now kubeletSchritt 6) Kubernetes-Cluster mit Kubeadm installieren
Bei der Installation des Kubernetes-Clusters sollten wir sicherstellen, dass die cgroup der Containerlaufzeit (CRI) mit der cgroup von kubelet übereinstimmt. Normalerweise ist cgroup in Docker cgroupfs, also müssen wir Kubeadm anweisen, cgroupfs als cgroup von kubelet zu verwenden. Dies kann durch Übergabe eines yaml-in-Kubeadm-Befehls erfolgen,
Erstellen Sie die Datei kubeadm-config.yaml auf der Steuerungsebene mit folgendem Inhalt
$ vi kubeadm-config.yaml# kubeadm-config.yamlkind:ClusterConfigurationapiVersion:kubeadm.k8s.io/v1beta3kubernetesVersion:v1.23.4--kind:KubeletConfigurationapiVersion:kubelet.config.k8s.io/v1beta1cgroupDriver:cgroupfsHinweis:Ersetzen Sie die Kubernetes-Version gemäß Ihrer Einrichtung.
Jetzt sind wir bereit für die Installation (oder Initialisierung des Clusters) und führen den folgenden Kubeadm-Befehl vom Steuerknoten aus,
$ sudo kubeadm init --config kubeadm-config.yamlDie Ausgabe des obigen Befehls würde wie folgt aussehen,
Die obige Ausgabe bestätigt, dass der Cluster erfolgreich initialisiert wurde.
Führen Sie die folgenden Befehle aus, damit normale Benutzer mit dem Cluster interagieren können. Diese Befehle sind bereits in der Ausgabe vorhanden.
$ mkdir -p $HOME/.kube$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config$ sudo chown $(id -u):$(id -g) $HOME /.kube/config$ kubectl erhält Knoten
Um Knoten in den Bereitschaftszustand zu versetzen und den Cluster-DNS-Dienst (Coredns) zu aktivieren, installieren Sie das Pod-Netzwerk-Ad-On (CNI – Container Network Interface). Pods beginnen miteinander zu kommunizieren, sobald das Pod-Netzwerk-Ad-On installiert ist. In dieser Anleitung installiere ich Calico als Netzwerkad-On. Ausführen unter dem Befehl kubectl von der Steuerungsebene aus.
$ kubectl apply -f https://docs.projectcalico.org/v3.22/manifests/calico.yamlAusgabe
Nach der erfolgreichen Installation des Calico-Netzwerk-Add-Ons werden der Kontrollknoten und die Pods im Kube-System-Namespace bereit und verfügbar sein.
Der nächste Schritt besteht nun darin, Worker-Knoten mit dem Cluster zu verbinden.
Schritt 7) Verbinden Sie Worker-Knoten mit dem Cluster
Nach der erfolgreichen Initialisierung des Kubernetes-Clusters wird in der Ausgabe der Befehl zum Verbinden eines beliebigen Worker-Knotens mit dem Cluster angezeigt. Kopieren Sie also diesen Befehl und fügen Sie ihn auf Worker-Knoten ein. In meinem Fall lautet der Befehl also,
$ sudo kubeadm join 192.168.1.240:6443 --token jecxxg.ac3d3rpd4a7xbxx4 --discovery-token-ca-cert-hash sha256:1e4fbed060aafc564df75bc776c18f6787ab91685859e74d43449cf51 Führen Sie die obigen Befehle auf beiden Worker-Knoten aus.
Überprüfen Sie den Status beider Worker-Knoten von der Steuerungsebene aus, führen Sie
aus[[E-Mail geschützt] ~] $ kubectl Erhalten Sie NODESNAME Status Rollen AltersversionControl-Knoten READY CONTROL-Flugzeug, Master 49M V1.23.4Worker-Node1 READY5M18S V1.23.4Worker-Node2 Bereit 3M57S V1 .23.4[[email protected] ~]$ Großartig, die obige Ausgabe bestätigt, dass Worker-Knoten dem Cluster beigetreten sind. Das ist alles aus diesem Leitfaden. Ich hoffe, Sie fanden diesen Leitfaden informativ. Bitte teilen Sie Ihre Fragen und Ihr Feedback im Kommentarbereich unten.