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

  1. Docker installieren:

    sudo dnf install -y dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  2. Docker installieren:

    sudo dnf install docker-ce docker-ce-cli containerd.io -y
  3. Docker starten und aktivieren:

    sudo systemctl start docker
    sudo systemctl enable docker

4. Kubernetes installieren

  1. Kubernetes-Pakete hinzufügen:

    sudo dnf install -y epel-release
  2. 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
  3. Kubernetes installieren:

    sudo dnf install -y kubelet kubeadm kubectl
  4. Kubernetes-Dienste aktivieren und starten:

    sudo systemctl enable kubelet
    sudo systemctl start kubelet

5. Cluster initialisieren

  1. Cluster initialisieren (Master-Knoten):

    sudo kubeadm init
  2. 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
  3. 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)

  1. Dashboard installieren:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
  2. 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.