Einführung
Kleine virtuelle Umgebungen, sogenannte Container , sind für die Entwicklung und Verwaltung von Anwendungen unverzichtbar geworden.
Das Arbeiten an Anwendungen innerhalb eines isolierten Containers wirkt sich nicht auf das Hostbetriebssystem aus. Container sind effizienter als virtuelle Maschinen, da sie ihr Betriebssystem nicht benötigen.
Kubernetes ist eine Open-Source-Plattform, mit der Sie Ressourcen über mehrere Container hinweg bereitstellen, skalieren und verwalten können.
Folgen Sie dieser Anleitung und erfahren Sie, wie Sie Kubernetes auf einem CentOS 7-System installieren.

Voraussetzungen
- Mehrere Linux-Server mit CentOS 7 (1 Master-Knoten, mehrere Worker-Knoten)
- Ein Benutzerkonto auf jedem System mit sudo oder Root-Rechte
- Das leckere Paketmanager, standardmäßig enthalten
- Befehlszeilen-/Terminalfenster
Schritte zum Installieren von Kubernetes auf CentOS 7
Um Kubernetes zu verwenden, müssen Sie eine Containerisierungs-Engine installieren . Die derzeit beliebteste Containerlösung ist Docker . Docker muss auf CentOS installiert sein, beides auf dem Master-Knoten und den Worker-Knoten.
Schritt 1:Kubernetes-Repository konfigurieren
Kubernetes-Pakete sind nicht in offiziellen CentOS 7-Repositories verfügbar. Dieser Schritt muss auf dem Master-Knoten und jedem Worker-Knoten ausgeführt werden, den Sie für Ihr Container-Setup verwenden möchten. Geben Sie den folgenden Befehl ein, um die Kubernetes-Repositories abzurufen.
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
Schritt 2:Installieren Sie kubelet , kubeadm und kubectl
Diese 3 Basispakete werden benötigt, um Kubernetes nutzen zu können. Installieren Sie die folgenden Pakete auf jedem Knoten:
sudo yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
Sie haben Kubernetes jetzt erfolgreich installiert, einschließlich seiner Tools und Basispakete.

Stellen Sie vor der Bereitstellung eines Clusters sicher, dass Sie Hostnamen festlegen, die Firewall und die Kernel-Einstellungen konfigurieren.
Schritt 3:Hostnamen auf Knoten festlegen
Verwenden Sie diesen Befehl, um jedem Ihrer Knoten einen eindeutigen Hostnamen zuzuweisen:
sudo hostnamectl set-hostname master-node
oder
sudo hostnamectl set-hostname worker-node1
In diesem Beispiel heißt der Master-Knoten jetzt master-node, während ein Worker-Knoten worker-node1 heißt.
Erstellen Sie einen Hosteintrag oder DNS-Eintrag, um den Hostnamen für alle Knoten aufzulösen:
sudo vi /etc/hosts
Mit dem Eintrag:
192.168.1.10 master.phoenixnap.com master-node
192.168.1.20 node1. phoenixnap.com node1 worker-node
Schritt 4:Firewall konfigurieren
Die Knoten, Container und Pods müssen in der Lage sein, über den Cluster hinweg zu kommunizieren, um ihre Funktionen auszuführen. Firewalld ist in CentOS standardmäßig auf dem Frontend aktiviert. Fügen Sie die folgenden Ports hinzu, indem Sie die aufgelisteten Befehle eingeben.
Geben Sie auf dem Master-Knoten Folgendes ein:
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 --permanent --add-port=10255/tcp
sudo firewall-cmd --reload
Jedes Mal, wenn ein Port hinzugefügt wird, bestätigt das System mit einer Erfolgsmeldung.

Geben Sie die folgenden Befehle auf jedem Worker-Knoten ein:
sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd --reload
Schritt 5:Iptables-Einstellungen aktualisieren
Legen Sie die net.bridge.bridge-nf-call-iptables
fest auf '1' in Ihrer sysctl-Konfigurationsdatei. Dadurch wird sichergestellt, dass Pakete während der Filterung und Portweiterleitung ordnungsgemäß von IP-Tabellen verarbeitet werden.
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
Schritt 6:SELinux deaktivieren
Die Container müssen auf das Host-Dateisystem zugreifen. SELinux muss auf den Permissive-Modus eingestellt werden, der seine Sicherheitsfunktionen effektiv deaktiviert.
Verwenden Sie die folgenden Befehle, um SELinux zu deaktivieren:
sudo setenforce 0
sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config
Schritt 7:SWAP deaktivieren
Zuletzt müssen wir SWAP deaktivieren, damit das Kubelet ordnungsgemäß funktioniert:
sudo sed -i '/swap/d' /etc/fstab
sudo swapoff -a
So stellen Sie einen Kubernetes-Cluster bereit
Schritt 1:Cluster mit kubeadm erstellen
Initialisieren Sie einen Cluster, indem Sie den folgenden Befehl ausführen:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Je nach Netzwerkgeschwindigkeit kann der Vorgang einige Minuten dauern. Sobald dieser Befehl abgeschlossen ist, wird eine kubeadm-Join-Meldung angezeigt. Notieren Sie sich den Eintrag und verwenden Sie ihn, um zu einem späteren Zeitpunkt Worker-Knoten mit dem Cluster zu verbinden.
Schritt 2:Cluster als normaler Benutzer verwalten
Um den Cluster zu verwenden, müssen Sie ihn als normaler Benutzer ausführen, indem Sie Folgendes eingeben:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Schritt 3:Pod-Netzwerk einrichten
Ein Pod-Netzwerk ermöglicht Knoten innerhalb des Clusters zu kommunizieren. Es gibt mehrere verfügbare Kubernetes-Netzwerkoptionen. Verwenden Sie den folgenden Befehl, um das Flanell zu installieren Pod-Netzwerk-Add-on:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Wenn Sie sich für die Verwendung von Flanell entscheiden, bearbeiten Sie Ihre Firewall-Regeln, um Datenverkehr für den Flanell-Standardport 8285 zuzulassen .
Schritt 4:Status des Clusters prüfen
Überprüfen Sie den Status der Knoten, indem Sie auf dem Master-Server den folgenden Befehl eingeben:
sudo kubectl get nodes
Nachdem ein Pod-Netzwerk installiert wurde, können Sie bestätigen, dass es funktioniert, indem Sie überprüfen, ob der CoreDNS-Pod ausgeführt wird, indem Sie Folgendes eingeben:
sudo kubectl get pods --all-namespaces
Schritt 5:Worker-Knoten mit Cluster verbinden
Wie in Schritt 1 angegeben , können Sie den kubeadm join
verwenden Befehl auf jedem Worker-Knoten, um ihn mit dem Cluster zu verbinden.
kubeadm join --discovery-token cfgrty.1234567890jyrfgd --discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443
Ersetzen Sie die Codes durch die von Ihrem Masterserver. Wiederholen Sie diese Aktion für jeden Worker-Knoten in Ihrem Cluster.