# Live Cluster Documentatie (`10.2.0.4`) Dit document beschrijft de actuele status, topologie, workloads en configuratie van het live Kubernetes cluster dat draait op host **`vmserver`** (`10.2.0.4`). --- ## 🖥️ 1. Node Specificaties & Host Details Het cluster draait momenteel als een gecombineerde single-node control-plane & worker: | Eigenschap | Waarde | | :--- | :--- | | **Node Naam** | `vmserver` | | **IP-Adres** | `10.2.0.4` *(gemigreerd vanaf `192.168.2.4` via [`migrate-k8s-node-ip.sh`](file:///home/bart/git/cluster/cluster-infra/migrate-k8s-node-ip.sh))* | | **Rollen** | `control-plane` (draait tevens workloads) | | **Kubernetes Versie** | `v1.37.0` | | **OS & Kernel** | Ubuntu 24.04.4 LTS / Linux `6.8.0-142-generic` (x86_64) | | **Container Runtime** | `containerd://2.2.1` | | **CPU Capaciteit** | 12 vCPU cores (~16% / 1.7 cores in gebruik) | | **Geheugencapaciteit** | 60.4 GiB RAM (~49% / 26.6 GiB in gebruik) | | **Lokale Opslag** | ~287 GB | --- ## 🌐 2. Cluster Networking & Ingress ### Networking & CNI * **CNI Provider**: **Calico** (`calico-node` en `calico-kube-controllers`). * **Pod CIDR**: `10.10.174.0/...` * **Service CIDR**: `10.96.0.0/12` * **DNS**: * **CoreDNS**: In-cluster DNS resolutie (`10.96.0.10`). * **Dnsmasq**: Draait op het hostnetwerk (`10.2.0.4:53`) voor lokale domeinen (`*.lan`). ### Gateway API & Ingress Routing De ingress-routering verloopt via **Envoy Gateway** met HTTPRoute configuraties: | Hostnames | Doelservice | Namespace | Doel | | :--- | :--- | :--- | :--- | | `thuus.bnhmeijer.nl` | `argocd-server:80` | `argocd` | ArgoCD Web UI & GitOps beheer | | `herms.bnhmeijer.nl`, `herms.lan` | `frontend:3000` | `herms` | HERMS Brouwinstallatie Web UI | | `login.bnhmeijer.nl` | `keycloak:8080` | `keycloak` | Keycloak Identity & Access Management | | `influx.bnhmeijer.nl`, `influx.lan` | `influxdb:8086` | `cluster-infra` | InfluxDB Time-Series API | | `influx-ui.bnhmeijer.nl`, `influx-ui.lan` | `influxdb-explorer:80` | `cluster-infra` | InfluxDB Web Explorer | | `infra.bnhmeijer.nl`, `infra.lan`, `dns.bnhmeijer.nl`, `dns.lan` | `infra-web:3000` | `cluster-infra` | Infra Web Dashboard & DNS beheer | | `gravitymon.lan` | `gravitymon-2-nats:8002` | `herms` | HTTP Ingress voor Gravitymon hydrometers | --- ## 💾 3. Opslag & Persistent Volumes (PVCs) Het cluster gebruikt Rancher's **`local-path-provisioner`** (`local-path-storage` namespace) als dynamische CSI provisioner: | Namespace | PVC Naam | Volume | Grootte | Toewijzing | Status | | :--- | :--- | :--- | :--- | :--- | :--- | | `cluster-infra` | `influxdb-storage-influxdb-0` | `pvc-6928459f-...` | 10 GiB | InfluxDB Data | **Bound** | | `cluster-infra` | `mongodb-data-mongodb-0` | `pvc-151480ce-...` | 10 GiB | MongoDB Data | **Bound** | | `cluster-infra` | `rabbitmq-data-rabbitmq-0` | `pvc-44ef79fe-...` | 5 GiB | RabbitMQ Queue Data | **Bound** | | `cluster-infra` | `influxdb-explorer-data` | `pvc-f03fb841-...` | 2 GiB | Explorer User State | **Bound** | | `cluster-infra` | `dnsmasq-data` | `pvc-1246f9a0-...` | 1 GiB | Dnsmasq Configuratie | **Bound** | | `keycloak` | `postgres-pvc` | `pvc-ad5f9b7d-...` | 1 GiB | Keycloak Database | **Bound** | --- ## 📦 4. Namespaces & Actieve Workloads ### `herms` (Bierbrouwsysteem) * **`frontend`**: Next.js UI (SevenGrid Aurora Dark Mode). * **`herms-controller`**: Rust microservice voor stappen, PID-berekening en timers. * **`herms-storage`**: Rust opslag- en databeheerservice. * **`gravitymon-2-nats`**: Rust hydrometer event ingress. * **`nats`**: NATS message bus voor microservices. * **`mosquitto`**: MQTT broker voor communicatie met firmware / sensoren. ### `cluster-infra` (Gedeelde Middleware) * **`influxdb-0`** & **`influxdb-explorer`**: Opslag en analyse van telemetriegegevens. * **`mongodb-0`**: NoSQL documentopslag. * **`rabbitmq-0`**: AMQP message broker. * **`dnsmasq`**: Lokale DNS server (HostPort 53). * **`email-service`**: Interne mailservice. * **`infra-web`**: Dashboard voor netwerk/infrastructuur. ### `argocd` (GitOps Engine) * Bevat `argocd-server`, `argocd-repo-server`, `argocd-application-controller`, `argocd-applicationset-controller`, `argocd-dex-server`, `argocd-redis` en `argocd-notifications-controller`. * **Actieve ArgoCD Applicaties**: * `cluster-infra-dnsmasq` (Healthy) * `cluster-infra-email-service` (Healthy) * `cluster-infra-influxdb` (Healthy) * `cluster-infra-infra-web` (Healthy) * `cluster-infra-mongodb` (Healthy) * `cluster-infra-rabbitmq` (Healthy) * `herms-suite` (Healthy) ### `keycloak` (Identiteit & Toegangsbeheer) * **`keycloak`**: Quarkus-based Keycloak Server bereikbaar via `login.bnhmeijer.nl`. * **`postgres`**: Dedicated PostgreSQL database voor Keycloak realm-data. ### `kube-system` & `envoy-gateway-system` * Control-plane componenten: `kube-apiserver`, `etcd`, `kube-controller-manager`, `kube-scheduler`, `kube-proxy`, `metrics-server`. * Data-plane en ingress proxies: `envoy-gateway` en `envoy-default-eg`.