Zum Inhalt springen

Deine Apps betreiben

Diese Anleitungen zeigen, wie du eine App auf Kubernetes betreibst: sie deployen, über HTTPS ausliefern, ihr eine Datenbank geben, sie aus der CI deployen und skalieren. Sie sind anbieterneutral und funktionieren auf jedem konformen Cluster, auch auf einem PaaSbox-Cluster. Wo ein PaaSbox-Cluster anders ist, sagt es die Anleitung.

Für den Weg vom ersten PaaSbox-Cluster zu einer App mit ihrer Datenbank folge dem Lernpfad: Deinen ersten Cluster anlegen, dann Deine erste App deployen.

AnleitungWas sie tutAuf einem PaaSbox-Cluster
Ein Image mit kubectl deployenbetreibt ein Image als Deployment und Servicewie sie ist
Eine App mit Ingress und TLS veröffentlichenliefert eine App über HTTPS aus, mit einem Zertifikat von Let’s Encryptein eigener Abschnitt: Traefik ist da, cert-manager ist ein Add-on
Postgres mit CloudNativePG betreibenbetreibt Postgres mit Backups nach S3wie sie ist, mit Volumes standardmäßig auf der Platte des Servers; das Add-on PaaSbox Platform (im Labor gebaut, noch nicht veröffentlicht) installiert CloudNativePG selbst
Eine Django-SaaS deployendeployt Web, Worker, Scheduler, Postgres, Redis und Migrationen von Handmit den vier Änderungen, die die Anleitung nennt; auf dem Add-on PaaSbox Platform erledigt das eine SaaSApplication
Aus GitHub Actions deployendeployt aus der CI mit einem ServiceAccount für einen Namespacewie sie ist, von einem Runner innerhalb der Adressbereiche der API
Workloads skalieren und autoskalierenskaliert von Hand und mit einem HorizontalPodAutoscalerwie sie ist, bis auf das Verteilen über Nodes: Es gibt einen
  • Ein Node. Der Cluster ist ein Server. Jede Replica läuft darauf, und kein Cluster-Autoscaler fügt Server hinzu. Ein Upgrade startet ihn neu, und jeder Pod steht, bis er wieder da ist.
  • Traefik ist der Ingress-Controller. Der Traefik von k3s antwortet auf den Ports 80 und 443 des Servers, mit der IngressClass traefik. Der Cluster legt keine Hetzner Load Balancer an, also installiere keinen zweiten Ingress-Controller.
  • cert-manager ist ein Add-on, mit den ClusterIssuern letsencrypt-staging und letsencrypt-production. Das Add-on PaaSbox Platform bringt stattdessen sein eigenes mit.
  • Volumes liegen standardmäßig auf der eigenen Platte des Servers, in der Storage-Class local-lvm-thin. Hetzner-Volumes (hcloud-volumes), die einen verlorenen Server überdauern, aber mit dem Cluster gelöscht werden, sind ein Add-on.
  • metrics-server läuft von Anfang an, ein HorizontalPodAutoscaler funktioniert also ohne Einrichtung.
  • Die Kubeconfig für diese Anleitungen ist eine admin-Kubeconfig vom Reiter Access des Clusters; eine view-Kubeconfig ist nur lesend. Siehe Eine Kubeconfig holen.

Jedes Add-on mit Version und Speicherbedarf: der Add-on-Katalog.

  • Einen Kubernetes-Cluster und eine Kubeconfig, die Objekte anlegen darf.
  • kubectl auf deinem Rechner.
  • Ein Container-Image zum Deployen, dein eigenes oder ein öffentliches zum Mitmachen.

Weitere Anleitungen sind geplant. Wenn du dir ein Thema wünschst, sag mir Bescheid.