Einrichtung eines Kubernetes Clusters auf Ubuntu 24.04 LTS

1. Voraussetzungen

  • Betriebssystem: Ubuntu 24.04 LTS
  • 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 apt update && sudo apt upgrade -y

3. Docker installieren

  1. Installiere benötigte Pakete:

    sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
  2. Docker GPG-Schlüssel hinzufügen:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  3. Docker-Repository hinzufügen:

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  4. Docker installieren:

    sudo apt update
    sudo apt install docker-ce -y

4. Kubernetes installieren

  1. Kubernetes-Pakete hinzufügen:

    sudo apt install -y apt-transport-https curl
  2. Google Cloud-Paket-Repository hinzufügen:

    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
  3. Kubernetes installieren:

    sudo apt update
    sudo apt install -y kubelet kubeadm kubectl
  4. Kubernetes-Dienste deaktivieren:

    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.