Lektion W1.1 hat entschieden: Die Kladde bleibt auf Container Apps. Dieser Kurs baut sie trotzdem auf Kubernetes auf, damit Sie wissen, was darunter
passiert, und damit die Entscheidung auf Kenntnis beruht. In dieser Lektion entstehen die Manifeste der Kladde, Dateien unter k8s/, auf denen alle
folgenden Lektionen aufbauen: ein Namespace kladde, zwei Deployments (kladde-web und kladde-worker), ein Service, eine ConfigMap, Probes und Grenzen.
Sie brauchen dafür keinen Azure-Cluster und keinen Cent. Ein lokaler Cluster genügt: Kubernetes in Docker Desktop oder ein anderer lokaler Cluster, den
kubectl erreicht. Prüfen Sie zuerst, ob Sie einen haben:
kubectl config get-contexts
kubectl get nodes
Zeigt get nodes einen Knoten mit dem Status Ready, sind Sie bereit. Meldet kubectl stattdessen, dass die Verbindung verweigert wird, läuft kein Cluster:
Schalten Sie in Docker Desktop unter den Einstellungen Kubernetes ein. Wer keinen lokalen Cluster hat, liest die Lektion und führt die Übungen in W1.3 auf
AKS aus; die Befehle sind dieselben.
Container und Images kennen Sie aus K1 und 3.1; wie die Kladde dazu läuft (Benutzer 1654, Port 8080, /health/live und /health/ready), steht in 3.0.1
und 3.5.5. Ein Wort zur Datenbank: W1 prüft den Weg zum Cluster, nicht die Daten. Die Web-App läuft in den Übungen wie in K2 mit ihrem Speicher im
Arbeitsspeicher.
Cluster, Knoten, Namespace
Ein Cluster ist die Steuerungsebene mit ihren Knoten (W1.1). kubectl ist das Werkzeug, das mit der API des Clusters spricht, und es weiß aus der Datei
kubeconfig, mit welchem Cluster es spricht. Ein Kontext ist ein Eintrag darin: Cluster, Benutzer und Namespace. kubectl config get-contexts listet
sie, und ein Stern markiert den aktuellen. Merken Sie sich diese Zeile: Die meisten Unfälle mit kubectl geschehen im falschen Kontext.
Ein Namespace teilt den Cluster logisch auf. Namen sind innerhalb eines Namespace eindeutig, nicht im Cluster. Folgende Namespaces gibt es nach der Dokumentation in jedem AKS-Cluster:
| Namespace | Wofür |
|---|---|
default |
zum sofortigen Loslegen ohne eigenen Namespace |
kube-system |
Kubernetes selbst, etwa coredns; keine eigenen Anwendungen hineinlegen |
kube-public |
selten genutzt; sichtbar für jeden Benutzer im Cluster |
kube-node-lease |
Knoten melden darüber der Steuerungsebene, dass sie leben |
Die Kladde bekommt einen eigenen Namespace: Rechte, Grenzen und Aufräumen gelten dann für alles, was darin liegt, und kubectl delete namespace kladde
entfernt die Anwendung vollständig.