1.9 KiB
1.9 KiB
BetelgeuseBytes – Infrastructure & Cluster Configuration
Hosting Provider
- Provider: Hetzner
- Server Type: Dedicated servers
- Region: EU
- Network: Private LAN + WireGuard
Nodes
Current Nodes
| Node | Role | Notes |
|---|---|---|
| hetzner-1 | control-plane + worker | runs core workloads |
| hetzner-2 | worker + storage | hosts local SSD PVs |
Kubernetes Setup
- Kubernetes installed via kubeadm
- Single cluster
- Control plane is also schedulable
CNI
-
Cilium
- eBPF dataplane
- kube-proxy replacement
- Network policy support
Storage
Persistent Volumes
- Backed by local NVMe / SSD
- Manually provisioned PVs
- Bound via PVCs
Storage Layout
/mnt/local-ssd/
├── postgres/
├── neo4j/
├── elasticsearch/
├── prometheus/
├── loki/
├── tempo/
├── grafana/
├── minio/
└── qdrant/
Networking
-
Ingress Controller: nginx
-
External DNS records → ingress IP
-
TCP mappings for:
- PostgreSQL
- Neo4j Bolt
TLS & Certificates
- cert-manager
- ClusterIssuer: Let’s Encrypt
- Automatic renewal
Namespaces
| Namespace | Purpose |
|---|---|
| db | Databases (Postgres, Redis) |
| graph | Neo4j |
| broker | Kafka |
| ml | ML tooling (Jupyter, Argo, MLflow) |
| observability | Grafana, Prometheus, Loki, Tempo |
| automation | n8n |
| devops | Gitea, Argo CD |
What This Infra Enables
- Full on‑prem AI platform
- Predictable performance
- Low-latency data access
- Independence from cloud providers