betelgeusebytes/INFRASTRUCTURE.md

1.9 KiB
Raw Blame History

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: Lets 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 onprem AI platform
  • Predictable performance
  • Low-latency data access
  • Independence from cloud providers