Files
cluster/docs/cluster-status.md
T

101 lines
4.9 KiB
Markdown

# 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`.