Einrichtung eines Kubernetes Clusters auf Rocky Linux
1. Voraussetzungen
- Betriebssystem: Rocky Linux 8
- CPU: Mindestens 2 Kerne
- RAM: Mindestens 2 GB (besser 4 GB)
- Disk Space: Mindestens 20 GB
- Netzwerk: Zugriff auf das Internet
2. Systempakete aktualisieren
sudo dnf update -y
3. Docker installieren
-
Docker installieren:
sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
Docker installieren:
sudo dnf install docker-ce docker-ce-cli containerd.io -y -
Docker starten und aktivieren:
sudo systemctl start docker sudo systemctl enable docker
4. Kubernetes installieren
-
Kubernetes-Pakete hinzufügen:
sudo dnf install -y epel-release -
Kubernetes-Repository hinzufügen:
cat <<EOF | sudo tee /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 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF -
Kubernetes installieren:
sudo dnf install -y kubelet kubeadm kubectl -
Kubernetes-Dienste aktivieren und starten:
sudo systemctl enable kubelet sudo systemctl start kubelet
5. Cluster initialisieren
-
Cluster initialisieren (Master-Knoten):
sudo kubeadm init -
Kubeconfig für kubectl einrichten:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config -
CNI (Container Network Interface) installieren (z.B. Calico):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
6. Worker-Knoten zum Cluster hinzufügen
- Auf dem Master-Knoten: Nach der Initialisierung erhältst du einen Befehl mit einem Token, um Worker-Knoten hinzuzufügen. Dieser sieht ungefähr so aus:
kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
7. Kubernetes Dashboard installieren (optional)
-
Dashboard installieren:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml -
Zugang zum Dashboard:
kubectl proxy
- Das Dashboard ist jetzt über
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/erreichbar.
Unterschiede zwischen Kubernetes, Docker, Podman und OpenShift
-
Kubernetes:
- Ist eine Open-Source-Plattform zur Orchestrierung von Container-Anwendungen über Cluster. Es verwaltet Container-Ressourcen und sorgt für Skalierbarkeit, Ausfallsicherheit und Load-Balancing.
-
Docker:
- Ist eine Plattform zur Containerisierung, die Entwicklern hilft, Anwendungen in Containern zu verpacken, die unabhängig von der Umgebung sind. Docker wird oft in Verbindung mit Kubernetes verwendet, um Container zu erstellen und zu verwalten.
-
Podman:
- Ist ein daemonloser Container-Engine, die die gleiche CLI-Syntax wie Docker verwendet. Podman benötigt keinen zentralen Daemon und ermöglicht eine benutzerfreundliche Verwaltung von Containern. Es bietet eine bessere Integration in Kubernetes.
-
OpenShift:
- Ist eine Kubernetes-Distribution von Red Hat, die zusätzliche Features wie integriertes CI/CD, einen eigenen Container-Registry-Service, erweiterte Sicherheitsfunktionen und ein benutzerfreundliches Web-Interface bietet. OpenShift verwendet Kubernetes als Grundlage, erweitert aber dessen Funktionen erheblich.